The Day After Dev Report #1

I was reading Tales of the Rampant Coyote the other day (great blog for indie game devs, by the way). They had ten tips for indie devs, which were all sensible suggestions, although not too surprising. But the point of those articles is to remind you of aspects of the job.

One that stuck out for me was to post periodic updates about your progress. I tend to mention obliquely my progress on my game The Day After every so often, but I think it’s time to change that. I find myself talking to friends about current progress but being vague about it. That needs to change.

In parallel I’ve gotten a bit fed up of working sporadically on the game, or focussing on particular elements for far too long. To attack both these problems, I’ve drawn up a game plan to get to the first playable prototype. This was always my goal, but I’ve actually enumerated the steps and am working through them. Each step is pretty dumb, but the way you walk a mile is step by step.

So I’m committing to writing bimonthly (every two weeks) updates. If I’m late for the latest one, call me on it. I’ll happily send a little Steam game your way for a well-timed kick up the butt.

This month I’ve been working on getting a GUI library working. I have had Ogre3d graphics working (with unit tests) for some time now, and was moving towards CEGUI for GUI interfaces because the two libraries worked well together. Unfortunately CEGUI needs to be compiled per platform. I do a lot of Linux development so I love gcc. I develop The Day After on a Windows box, so MinGW was a nice way to have gcc and Windows together. Too bad most libraries at best tolerated MinGW. The CEGUI devs didn’t support MinGW (fair enough). Looking at other libraries I want to integrate later (RakNet for multiplayer, Irrklang for sound), my choice to stick with MinGW was gonna cost me even more heartache in the future. When I look at the Linux version, I’ll use native gcc which apparently is fine. It’s the half-measures of gcc-on-Windows that apparently causes the issues.

(As a side rant, I don’t know why in this day and age choice of compiler matters. I’d have thought you could write things without touching the idiosyncrasies of a compiler but clearly I’m not a cross-platform library writer, so maybe I should shut up 🙂 )

So I quit wrestling with CEGUI temporarily to look into changing compilers. Visual C++ Studio’s compiler is well-regarded and of course has excellent support on Windows. I wasn’t committed to moving to the Visual Studio IDE (I have an elite-level Emacs setup that integrates seamlessly with my design work), but the compiler should be easy to use. My build environment is SCons which is pretty savvy to various compilers and easy to modify.

After a few minor hiccups, my game’s object files are compiling fine. It’s not linking at the moment because I need to build the Ogre3d libraries and read up on translating gcc linking to vc linking (5 minutes of work, probably). I’m now feeling confident about the compiler switch, even though I railed against it for the longest time. Some software engineer and game programmer buddies convinced me to make the switch.

So that’s the skinny on what I’ve been doing. For a while there’ll be “yep, still programming the engine” updates but I have some nice artwork to show off in the meantime, and after that, I’ll be able to show prototype screenshots.

The short and sweet

I’m currently working on:

  • Getting the Visual Studio linking working.
  • Compiling Ogre3d with vc
  • Compiling CEGUI with vc
  • Writing a tiny bit of glue code so changing platforms in SCons chooses the right compiler and sets things up appropriately.
  • Finishing the WordPress design for this blog because I have grown to hate the current theme.
  • Writing scenes between different pairs of characters.

Recent completed tasks:

  • Attempted to compile CEGUI with MinGW (with various modifications to the configure script and using the beta 0.8.0 version of the library – no dice)
  • Modified my build environment to use SCons.
  • Talked to some great artists about future work.
  • Cleaned up some unit tests.