48-hour Game Development Competition Post Mortem
Intro
I've been a casual student of game development since around 1995. Around 96-97 I wrote an incomplete Galaga/Space Invaders thing with stolen graphics in C using Allegro (DOS), and to this day (before the contest) that is the extent of my game programming experience. Since then I've only read and thought about it. I entered this contest with two goals: 1) jump-start a re-entry into game programming and 2) force myself to complete something.
What went right
Delphi I'd considered using C++ or even C# but I decided to go with what I know. I've been using Delphi almost exclusively for years now. It was the one thing I could rely on. I could screw up any number of other things but I lost no time because of something I didn't understand about my language or IDE.
SDL (JEDI-SDL) I'd seen enough SDL code to know that it was fairly simple and that it would handle everything I needed it to do. I also knew that the Delphi conversion was complete and it seemed to be stable. I had no experience with it, but that's true of any game dev library I could've chosen.
The Idea The idea for my game was not ground-breaking or spectacular but it fit the theme and the implementation was straightforward. I thought it could be fun, and though it's not fully realized in my entry (by a long shot) the basics are there and it's not too bad.
The graphics There are lots of improvements I didn't have time to make in the graphics department but I'm happy with what's in there.
The Code Considering that a 48-hour contest leaves little, if any, time to sit in "code design" mode, I think my code ended up being pretty well organized and elegant. I rarely resorted to ugly hacks and I kept everything pretty well within the class structure.
What went wrong
Preparation My lack of familiarity with SDL cost me a significant amount of time, and so did my lack of experience with basic game coding like collision detection and animation. I should've done some coding before the competition just to get into the swing of things. I could've even done a template and saved even more time.
Priorities The first thing I did was start drawing graphics. I spent quite a long time on them, sketching and trying different ways of creating them. I ended up painstakingly painting every pixel with a single-pixel-width pencil tool in Photoshop (this is for the characters - the tiles were quick and I used filters). I'm happy with the results but I should've started with placeholder graphics so I could get more gameplay in there first.
Sleep I did get two full nights of sleep in there. I could've at least slept slightly less and got more done. Oh well.
Winning You can't win my game, you can only lose round after round until you get tired of playing. I planned on putting a simple timer in there so if you held off the enemy for a certain amount of time you would win. In the last hour or so of the contest I decided instead to concentrate on making it as fun as possible while it lasts by balancing the enemy counts, brick damage numbers, etc.
Bugs There are a few bugs left in, mostly relating to collision response and picking of the nearest brick based on foot position.
What didn't happen at all
Sound and music I was soooo looking forward to putting in great sound and music. This is the category where I could really compete but alas, I ran out of time and didn't get a single sound in there.
Weapons The plan called for projectile weapons like grenades or catapults (I considered water ballons) that you could lob over the wall to take out bad guys. Some melee combat should've also been included so you could do something about guys that made it through the wall.
Conclusion
In the end, I got exactly what I wanted out of the contest and I'm happy with what I accomplished, all things considered. Kudos to Geoff for a well-run competition and to all the competitors - I've seen some good stuff already (particularly Orbital Sniper - I'm thoroughly addicted). Can't wait for the next one!