Another Ludum Dare has come and gone, and I’ve managed to cobble together something that resembles a game. This time the theme was “You are the monster”.
Friday – Concept
I had some trouble coming up with a concept at first and started writing down as many ideas as I could. The idea of an old black and white monster movie came coming up. I was thinking about old monster movies like Godzilla which reminded me of Rampage so I played the NES version for a bit to help come up with ideas. The funnest part about Rampage is climbing on buildings and breaking them down, so I decided to concentrate on mostly that. At the time I wasn’t very confident on my idea though and was afraid to get moving very fast because I was hoping that a better idea would come up. I ended up wasting about a few hours adding some random feature to my game engine that wasn’t even used on this project.
The only real bit of development I did on Friday was to quickly block out what a scene might look like using the tile editor in my game engine. This screenshot shows about as far as I got the first night…
Saturday – Building Physics & Platforming Mechanics
I tried to hit the ground running on Saturday and worked through most of the afternoon getting the building simulation working. It’s a pretty simple concept. Buildings are made out of square blocks and connected to neighboring blocks in a grid. Blocks apply a force to their neighbor to keep them connected, and break if they get pulled too far apart. It took a lot longer then I hoped to get the physics tweaked out properly. It’s like if you apply too little force the the buildings just fall apart, but if you apply too much they freak out and explode. So getting that working took most of the day and I was discouraged at many times because I thought the idea would not pan out for technical reasons. One problem throughout development was that the physical simulation is fairly taxing and does not run at full speed in debug mode.
I also added some simple platforming mechanics and the ability to grab onto buildings. First tried using a distance joint for grabbing but threw that out in favor of just manually applying an acceleration to the grip point. Spent probably way too much time working on the player sprite and went through many variations. I started with my sprite from LD31, morphed it into something like Frankenstein, then went greyscale, and finally back to color with a more surreal looking sprite. I thought glowing red eyes would look cool, but it wasn’t visible enough and I wanted to draw more attention to the player so I switched it to be a glowing sprite with black eyes. There were a few revisions in between that I lost, and research into other ideas for characters.
I wasted much of the night on Saturday. Took many breaks include a several hours long dinner with a friend. By the end of the night I was still not sold on my concept and it didn’t really come together until the next day.
Sunday – Fire, Enemies, Random Levels
I worked pretty hard on Sunday in an attempt to make up lost ground. Adding the fire spreading across the buildings was a major improvement in making the simulation interesting to watch. I also added a kind of electricity simulation that turns window lights on/off randomly if they are connected to the ground.
One major thing still missing was any kind of enemies that attack the player. I ended up with only enough time to add one enemy type, planes that fly around shooting the player with a machine gun when they are in range. The flight patterns took more time then I expected because I wanted them to fly somewhat realistically to match with the realistic physics on the buildings. Since the game wasn’t much of a challenge with only this one enemy type I ended up making the fires damage the player, still not sure if that was the right decision because it can detract from the joy of destruction.
I spent about an hour on Sunday adding sound effects. I’m not very happy with the results, but it’s better then nothing. There was a lot of other features that I probably could have skipped. For example there is an intro section where the player starts small and transforms. It was a cool idea but I didn’t polish it enough to call it out and it will probably be overlooked by most players. Also the little tiny humans are kind of hard spot, and their physics/AI is wonky but I wanted them to give a better sense of scale.
The last thing I added was the random city generation which I banged out in less then 30 minutes. It was a risky thing to add at the end, but I didn’t know what else to do after you destroy the city. There wasn’t time to add any randomization on the trees or little humans, so they always in the same places from the editor. I would have liked to add a lot more variety in building type and stuff but there wasn’t enough time for such luxuries.
What Went Right
- Visually looks pretty cool and is fun to watch.
- Physics destruction sim is pretty cool.
- Gameplay demonstrates that this could be a decent game if polished.
What Went Wrong
- Building physics is a performance hog. Does not run well in debug mode.
- Sound effects are horrible.
- Got discouraged, didn’t trust my idea, and wasted a good portion of the weekend.
- Visual Studio keeps freezing up and I have to manually shut it down in task manager. This happened at least 10 times and throws off my forward momentum because I forget what I was working on and lose my place in the code.
- Wasted too much time working on stuff that got thrown away or didn’t matter.
- Needed to spend more time polishing jump physics.
I’m glad that I participated in this Ludum Dare, though it’s not my best entry. I took a chance on a technically risky idea and it payed off pretty well. Also, I think this is probably my strongest in visual imagery in a Ludum Dare. I will continue working on it and release an enhanced version with 2 player support soon.