Well, I clamped my bowie knife between my teeth and dove back into the C++ game project I'm working on entitled "Ten Nights of Killing and Mayhem". Chief among my updates of this legacy code is so that it can be played at any screen resolution (the legacy version of this game was written for DOS using Borland's BGI libraries and only supported 320x200 at 256 colours). I haven't done any work on it since June 2004 so I'm a little rusty and still trying to get my bearings.

As is typical of my habits, I had decided to do some refactoring of the code after reading "Design Patterns" by the Gang of Four and was moving the code into following a State Pattern, at the same time also striving to make it a little more data-driven. As usual, I've bitten off quite a bit to do so I've been working at it state by state (i.e. Title Screen, Main Menu, Character Creation, etc) and now I'm moving into the actual "Start Game" state...

Prior to this refactoring, my philosophy behind updating this game had been to do incremental improvements on the C code and release "fully functional" builds as quickly as possible. Unfortunately this latest refactoring extravaganza has halted the progress of this project from an external standpoint, though now that I plan to actively start taking this up again I hope to get a couple more builds out there.

I considered reverting back to my original philosophy, but it would require stepping back several versions in the code (I have to admit the title screen, menu, and character creation/viewing look fantastic now). Another problem with stepping back that many versions (apart from throwing away my hard-written code) is that, due to my hard drive crash late last year, I have lost my Perforce installation and I have not the strength to re-install and try to recover the repository/depot. I've got the depot and code backed up on CD, but it would require extra effort and I'd rather spend my energy on more coding. (Side Note. I'll have to figure out how I want to continue archiving my work: reinstall Perforce or try CVS or move up to the new kid on the block, Subversion?)

And so, I forge ahead down the river...what did I do last night? Mostly got my bearings, restructured the location of some of the data files (player icons), verified that my SdlGui::ImageButton class actually works and fixed a few bugs in it. Next, I plan to convert all the old teacher graphics from their native, binary format by blowing them up and saving them as bmp files and then display the teacher icons on the "Kill Sheet" clipboard. Then work on the "View Teacher" state...

I have also noticed a disturbing trend in this blog: Every time I think I'll make a quick one-paragraph entry I end up babbling on, then re-editing my babbles, then searching google and adding some external links, until I end up with these entries that easily could go on for several pages. I guess I'm the online equivalent of a guy who likes to hear the sound of his own voice? Hopefully it's not time completely wasted...

§11 · January 13, 2005 · Software, Technology · · [Print]

Leave a Comment to “Wrestling Crocodiles”

  1. Rob says:

    Quit yer refactoring and get to work 😛 Try subversion and let me know how it goes.

  2. […] Nonetheless, I can definitely see merit in the idea behind agile development and “scrum” for many industries (like web development, desktop applications and games) because I’ve had personal experience in this on my hobby projects. See, I have a day job that takes up a good deal of my weekly day time and a family that takes up a good deal of the rest of my time. This leaves precious little time for my hobbies (like game development and web projects). As a result, maybe two years ago I started migrating from “big projects that never get done” to smaller projects with incremental updates that can be released “fully functional” and as often as possible. I first blogged about this here. This is exactly what people are calling “agile development” and the “scrum” management methodology but with the team size reduced to a size of one. It gives me a sense of validation that I stumbled upon this process on my own, but I guess this falls out of the fact that scrum/agile development just makes common sense in a lot of cases. So I’m proud to have common sense, I guess […]