RSS
 

Archive for the ‘Development’ Category

More on Diablo 3…

24 May

Hey all!

Mini-review of Diablo 3: It’s just like Diablo 2, but with extremely good graphics, loads of polish and annoying always on DRM…

The DRM part has run a lot of ink in the gaming press… For me, I was annoyed by it twice (on the launch, since I had to wait 45 minutes to get online), and on last Sunday (when the service was down for 6 hours or so).

I understand why people are angry, but I also understand why Blizzard went this route (and had the problems they had)…

Anyway, I’m guessing this will be the future on the PC gaming market, as annoying as it is…

Other than that, the game is loads of fun, the perfect implementation of a Skinnerbox, polished to perfection… You just need “one more level”, “one more zone”, and do it again and again and again and again… Smile

Good lessons there, for game designers…

I’m giving it a 8/10 (loses 1 point due for the DRM and 1 point for half-assed story). But again, I can’t stress this enough… It’s really really really really a lot of fun!

On the game development front, XCOM-Enemy Unknown is looking great:

The base gameplay might shape up to be awesome! Open-mouthed smile

Finally, head on down to the Spellcaster Studios website, we have a new blog post with what we’ve been doing lately!

 
 

Post-Compo thoughts

23 Apr

This was the second time in a row I gave up on a 48-hour compo… This time I couldn’t think of a game for the theme, last time I just wasn’t having fun making the game I thought up…

I’m wondering if the joy of doing 48-Hour compos has faded for me…

Before, the 48-Hour compo was a learning experience (mostly time management), then it became about finishing a game…

But now, I think my feeling about them evolved… Now it’s the thought of creating something actually good… The last 3 games I’ve done in the compos that were finished (“Cursed”, “Conquest” and “An Old Man And His Quest”) came out really nice (for my standards in this sort of thing), and I think that kind of made me raise the bar…

So now, each time I don’t have a “great idea” (“Conquest”) or some “great 48-hour tech” (“Cursed” and “An Old Man And His Quest”) to work on, I get demotivated, start thinking about my awesome couch+tv+computer combo, and I loose interest…

Is this a flaw on my part? Or is it just a sign that I’ve made enough compos to have transcended the need for them, for purposes of self-validation? The compos for me were never about the competition itself, as I said above, it was about learning and finishing something, but nowadays I just don’t have the will for it, unless the idea I have really appeals to me…

No answer for any of these questions, but I just wanted to share, ‘cos that’s the kind of person I am! Open-mouthed smile

Hopefully the next compo I’ll be more motivated and can actually think of something good… and finish it for good measure! Open-mouthed smile

 

Throwing the towel…

22 Apr

I’m ashamed to say that for the second time in a row, I’m giving up…

There’s 15 hours to go, and all I have is a voxel engine and no idea on what to do with it… And because I have that voxel engine, I’m having even more difficulty having ideas that fit the theme…

I’m more of a “huge thinker”, not a “tiny thinker”… And just making a normal game but set it on a tiny world doesn’t appeal to me, since my idea is that a game with the theme “Tiny World” couldn’t be done in a big world (the “Tiny World” has to be part of the gameplay, not just a setting).

Why couldn’t “procedural generated” have won?! Smile

building_stuff

Anyway, good luck everyone!

 

Raycasting working, woot!

21 Apr

Contrary to my expectations, I got raycasting working… It’s not perfect, and I still need to identify which face the cursor intersected with, but it works nevertheless!

raycasting

Next step, finding which face it has intersected, and actually create blocks (updating the voxel representation)…

I might have to call it a day in an hour or so, since there’s a concert tonight that I wanted to see… Ah, the difficulties of juggling game development and a real life! Open-mouthed smile

 

Camera controls done…

21 Apr

Finished the material system for the voxel world and added some camera controls…

voxel03

voxel04

Not that happy with the camera controls; they don’t seem that intuitive, but they’re the same as the editor on my out-of-hours project, and while it works fine with an editor tool, it doesn’t seem suitable for a game… But after I get some game in this I’ll revisit it….

Anyway, now for the harder part in this project: finding out in which cube the player clicked and in which face, so I can build a new block there…

 

Voxel engine

21 Apr

Just finished implementing a simple voxel engine…

Was complicated getting all the conditions working properly, specially because I was trying to get some subdivision code working properly in the process, as you can see below… For the record, the image below should only be a plane at the bottom… Smile

voxel01

The full rebuild process is a bit slow yet (at least in debug mode), but I’ll optimize it later if it warrants.

Anyway, it works now:

voxel02

That’s just a random “height-field”.

Now I need to add different materials…

Still hoping inspiration hits me… Open-mouthed smile

 

The theme is what?!!!

21 Apr

Damn, woke about one hour ago and saw the theme… “Tiny World”…

Been thinking about an idea for one hour now, and I still have nothing concrete…

Until now, only two things come to mind:

  1. Generate a procedural world for a side-scroller kind of game, with a very small character… This is what I feel like programming, but I have no game for this… Just a guy moving about in a procedurally generated world, in a Metroidvania style… Doesn’t have anything to do with the theme and it might push my resources a bit too far…
  2. A tower defense kind of game: generate a procedural small planet and the player can build stuff on top of it (mines, cannons, power-plants, farms, cities, etc). He has to sustain and evolve the planet, defending it from stuff that comes from space (aliens, meteors, etc).
    The ideia is to do this in 3d, but that has the big problem of spatial perception: the player would be hard pressed to prepare against incoming threats, since they could come from everywhere.
    Going 2d on this idea might be more feasible from a gameplay perspective. Still, I think on this idea and there’s not actually much the player can achieve: he places some stuff around and then waits for an outcome, which sounds pretty boring.

 

Was hoping that writing this blog post would help come up with something else, but no success there…

Hum… Now for some web-searches on “Tiny World”…

Bah, no help there too…

Ok, let me try a different approach… just throwing some random ideas and see if any of them can be combined into something cool:

  1. The world is tiny
  2. The character is tiny (breaks the theme, I think)
  3. We build the world, having to manage its growth so that it becomes viable for something…
  4. We defend a tiny world
  5. We fight to conquer a tiny world
  6. The world grows/transforms from your actions
  7. Our tiny world is dying, need to find a new one (breaks the theme, I think)
  8. Our tiny world is dying, need to fix it (breaks the theme, I think)

 

Not many ideas… Most of my ideas are usually of bigger scope, so tending to “huge world”, more than “tiny”.

Can’t shake the feeling that there’s some grid-based small idea of a game that could be built, using the fact that the playing field is small and lending itself to fast playing sessions, but for the life of me, I can’t come up with anything…

……

Been brainstorming with my wife for a bit, and an idea came up… It’s not a “game idea”, but it gives me a starting point, and maybe a game will evolve from there…

I’m going to do a “voxel”-based construction kit, in which the player can put different color blocks in the world and then there will be some creatures that react in some way to the blocks…

But just making the construction kit will take some time, so I’ll start by that…

 

Throwing my hat in…

20 Apr

Once more into the breach (or something to that effect…)!

Taking part on the Ludum Dare 48-Hour competition this weekend, and I’ll be cross-blogging the whole time (on the Ludum Dare site and here), so if you want to follow the development, just follow this website!

Anyway, I’m using the same framework as last time, done by me, just added some stuff to generate simple geometry (quad, cube, spheroid, caps and cylinders). Since my art sucks, better suck in big style going beyond programmer drawn art and going directly to programmer-programmed art! Smile

Framework01

You can download the framework here, if you want to use it (it has three sample applications that show most if not all the features):

  • D3D9 initialization and some helpers
  • FMOD interface for sound
  • 2d Sprites (with sprite caching, etc)
  • 2d Particle System
  • Text
  • 3ds file loading (only tested with 3ds generated by 3d Studio Max). Loads lights, meshes and cameras.
  • Small simple math library (vectors and quaternions)
  • Simple 3d camera handling system (just with a “look at” operation)
  • XML loading/saving (might come in handy for configuration files, load/saves, etc. The XML loader was created by Frank Berghen, not me… the writer is all me, although the loader also has save functions, but I’m too lazy to figure out how they work)
  • 3d particle system (based on the 2d one, so very rudimentary)
  • 3d sprite system (quads that always face the camera)
  • LUA library support (it’s actually ripped from my engine, so it’s a good support system for LUA)… Last time I used cutscenes and scripting, and loads of the game code was much simpler because of that…
  • DDS image loading for an offscreen buffer (just supports A8R8G8B8 images). Might be useful for some level design stuff, although I’ll probably go back to my old days of text files.
  • 3d Tilemap (Kind of a blocky heightmap with an automatic texture atlas generation and partition of the map in chunks for possible culling (not implemented)).
  • Simple geometry generation (quad, cube, spheroid, caps and cylinders)

On the tools side:

  • Visual Studio 2010
  • Photoshop CS5 (for 2d graphics and textures if I decide to adventure into 3d, and for map creation, etc)
  • 3d Studio Max (for modelling if I go 3d, or for title screens and such otherwise)
  • sfxr (or Bfxr) (for audio effects)
  • Wolfram Tones (for the music creation – fun tool, saves loads of time) and MIDI Converter Free (to convert the MIDI generated by Wolfram Tones to OGG)
  • Live Writer for blogging
  • Chronolapse for time-lapse.
  • Everything I get my hands on…

Hopefully this will go better than the last one (in which I got totally bored halfway through and quit)… Smile

Probably going for my usual 48-Hour compo drill… Go to bed at normal hours, wake up at 3am to see the theme and go back to bed… then start working early in the morning!

Good luck if you’re participating (and you totally should, it’s great fun!)

 

Nothing of note to say…

16 Apr

Most of my free time nowadays is dedicated to “Grey” (and I post on that blog more often than I do here because of that), so I don’t have much to write about… I’m not playing any games lately (except for SWTOR, leveling another character) so it’s quiet on that front too (looking forward for Diablo 3 and losing myself in it for some days).

So, here’s a screenshot of what I’ve been working on in Grey!

forest01

Will have more stuff posted this week, since I’m taking part in the Ludum Dare’s 48-Hour Competition next weekend, and I’ll be blogging throughout!

 

Going Native 2012

05 Mar

I’ve been watching the videos from the Going Native 2012 conference, and they’re extremely interesting.

I recommend everyone that’s interesting in native coding (and the new C++ 2011 standard) to take a look…

The new C++ 2011 standard has really neat things..

For example, on my favorite things is being able to write code like:

Speed speed=9.8m/1s;

This is actually possible with the new user-defined literals.

The new “auto” keyword also looks very good:

auto i=10; // i is an integer
auto it=some_vector.begin(); // it is an iterator to the beginning of some_vector.begin()

The last example is a very good one, since I hate always having to write:

SomeVectorType::iterator it=some_vector.begin();

The Bjarne Stroustrup is very good because it really raises some interesting concepts and ideas… After I finished watching the talk, I felt like refactoring Spellbook as a whole… Smile

Anyway, as soon as we can start trusting the compilers with C++ 2011 (most of the usual ones already have support for some stuff, but there’s not a fully compliant yet), I intend to start a step by step refactoring of the engine.