Ludum Dare April 2005, Lightstream 48 Post Mortem
- Microsoft Visual C++ 2005 Express beta
- Libraries: SDL, DevIL, OpenGL
- Maxon Cinema 4D 9.1 (with the BodyPaint3D 2 module)
- Adobe Photoshop CS
- ZBrush 2
- Pentium IV 3GHz, 1GB Ram, GeForce FX5700
- Wacom Intuos3 Tablet
For my 4th participation in a Ludum Dare contest the theme was "Light&Darkness". My goal was to make a puzzle game that would be fun to play using 3D graphics and a tile-based "engine".
What went wrong
- Sleep: I made a big mistake with my sleep schedule, my plan was to go to bed early on Friday and to sleep through the beginning of the competition (4am in my timezone) and to start early on Saturday morning after a good night's sleep. But I couldn't resist and still had things to do to be ready before the start so instead I stayed up all night. I started the competition already tired. My productivity wasn't very good most of the time and I needed more sleep during the competition (about 11-12 hours wasted in total).
- Preparedness: A bit better than last compo, this time I had all my libraries ready and basically knew how to use them. Also I had taken the time to make sure I had bookmarks to all the docs I was going to need so I wouldn't lose time finding them.
But I had not done any game programming since last time with the exception of a few hours of work on a 72hours competition entry that I didn't finish. I wanted to create a "warm-up" game during the week before the competition but I was too lazy to do it. So I was rusty and if you add that to the lack of sleep I was very slow in the begining.
- Theme: Due to time constraints I had to simplify my game and the "Darkness" part of the idea was left out. I had originally planed to have the levels dynamically lighted based on the light rays and have the monsters roam in the dark parts where they would have been stronger
- No sounds: I was really disappointed not to have the time to add sound effects or music. Adding sound is one my favorite things in this compo, as it means things are going well, with the game nearly finished and I can relax making funny noises.
- Not enough levels: I was making levels until the last minute but I had not enough time.
- No time for polishing the entry, menus: I never have time for that kind of thing, maybe I should try doing the menu at the beginning?
What went right
- Gameplay: I like it. I think this time I have managed to do a game that is fun to play (that was my goal). It's not very original but it works. I had a lot of fun designing my levels. I'm sure there is still a lot of potential for interesting levels with just the current gameplay elements.
- Monster model: I got a bit carried away while making the model for the monster and spent some time on it but it was worth it I think. It was the first time I made my own animated 3d character for one of my games and considering that I'm really pleased with the result. Cinema 4D was really great for that task, its BodyPaint module allowed me to relatively quickly edit the UV coordinates and to texture the little guy by directly painting on the 3D object. The hero character isn't as great but I only spent about 1 hour on it. I used ZBrush ZSphere tool for the base, adjusted the result in C4D, quickly put some bones in it and tried to animate a walk cycle in 20 minutes. Since I had never done a walk cycle before the result is a bit strange
- Level Editor: While I lost a few hours on it, it was worth it. Without it I wouldn't have been able to make interesting levels at all. I just wish I hadn't wasted time by being too dumb to use gluUnproject() correctly.
I managed to finish my game even though for a while I thought that was going to be impossible. If I compare with my previous ld48 game (Ring48: a racer in a ring shaped track), I've done a better gameplay and I have managed animated characters. While Ring48 had a "wow factor" due to the lucky idea of the ring its gameplay didn't work well). However this time I didn't have time for sound. Still I think it's an improvement.
I had a lot of fun doing this compo and I'm looking forward to the next time.