Here is my post mortem entry. It’s a bit long so click the read more thingie to view it.
Platform: Win32 (XP Home SP3)
Libraries: OpenGL, GLEW (to handle OpenGL extensions), SDL (for initialization and keyboard/mouse input) and DevIL (for image loading)
Tools: Visual C++ Express 2005, Cinema 4D (with a custom export plugin) and Photoshop CS2
The many things that went wrong:
- Rustiness: The last time I finished a LD48 game was more than 3 years ago (with 2 additional very unmotivated attempts in the next year that I gave up quickly) and since then I have done no game development, some work related OpenGL though but not recently. So I was really rusty!
- Lack of preparation: Aware of the aforementioned rustiness, I knew I should prepare myself but I didn’t do much. I didn’t try to code a warm-up game, I barely tested that my previous entry still compiled and concluded that I had the libraries I needed installed and that was all.
- Doing everything from scratch: I spent the first day just to get the graphics working. I really need to have a kind of library to avoid going through that again. I want to have fun making a game not write a Vector class or an object loader. And I gave in to temptation and got one or two tricky but boring things from my previous entry (only very basic stuff though like the timer class to get a good quality timer on windows since SDL_GetTicks sucks, I think I’m still OK with the compo rules considering some people use engine and physics libraries)
- Export plugin not ready: During the compo I couldn’t find a compiled version of my Cinema 4D export plug-in. And it wasn’t compiling anymore due to changes in the application’s SDK. Fortunately I was able to solve those problems relatively quickly but I should really have tested it before the competition.
- Visual C++ bugs: I was really surprised because I had never had any problems with it before but it kept bugging and I had to quit VC++, reopen it and then I had to put back all the windows in their place again. How annoying.
- Things I wasted time on: I wasted a lot of time on adding fog to my shader and getting it to look just right before finally deciding it didn’t look good. Also I wasted time doing the Mario64-style camera which didn’t turn out quite alright and is not activated by default in the final game.
- No time for animated characters: My biggest disappointment. It doesn’t take a lot of time, in my previous entry Lightstream48, I had made some cool characters in just a few hours and I wanted to do the same.
- No sounds: I had Propellerhead Reason ready to make a small music and my microphone connected to sample a few noises but I didn’t have the time.
- Not enough gameplay elements: I had lots of ideas to make a more interesting game but instead had to try to make levels with only a few of them implemented. So most of the levels are based on jumping skills rather than puzzles like I originally wanted.
- Bugs: There are lots of little bugs in the gameplay like you can walk off the border of the map in some places and jumping isn’t implemented correctly so sometimes it’s difficult to control the character.
The gray area of things OK
- Is C++ the right language for a LD? I used to be quite happy with it, but this time I was annoyed by the extra typing it requires. Header files are such an annoyance. Maybe I should try an alternative next time?
- Time management: I worked a total of about 32 hours. That’s a bit below what I could have done. My plan was to start at 8am on Saturday morning, I slept past 10 and watched the Olympics. But it could have been worse.
- A bit slow on slow PCs: The minimum requirements for this game are a bit higher, but considering that some years have passed since my previous game that’s normal. Off course it’s mostly slow because it’s badly coded but still… it’s time to upgrade people! 😉
The few things that went right:
- Per-pixel lighting: it looks real nice so I’m happy about that.
- More 3-dimensional gameplay: In my previous games it was really only 2D gameplay with 3D graphics so that’s an improvement.
- Save points: I’m really glad I included them, it was tempting to code some other gameplay elements and leave that for later but without them the game would have been too hard.
I’m not entirely satisfied. I wish I could have had more time to finish my game. Now what I want to do is start a library with all the basic stuff I need for a LD48 game and publish it soon enough so that next time I can use that for my game and be able to concentrate on gameplay and content.