A “Safe or Sorry” Postmortem
This past weekend I did something I’d never done before. I entered a game jam. Specifically I entered Ludum Dare 34. For those of you unfamiliar with Ludum Dare, it works a little like this. Friday night at 9 o’clock they announced the theme, then on Sunday at 9 o’clock they took in submissions. In that 48 hours you have to create a game from scratch that matches the theme. All code, art assets, sounds, and designs have to be created in that 48 hour period, and you have to do it all by yourself.
I’ve been aware of Ludum Dare for sometime, but it was never something I saw myself doing. game jams always seemed insane to me. It’s so much work shoved into such a small amount of time. I looked at it much the way I look at members of the Polar Bear Club, great for them that they found something they enjoy, but those people are insane. At least that’s how I looked at game jams until recently. As I mentioned in a previous post I’ve started meeting with a local group of game developers, specifically a game jam group. I sat out last Ludum Dare – as I said I thought the idea was ridiculous – but after I did I regretted my decision. The first meeting after that event, the group met and showed off each of their games. Seeing what they were able to accomplish, I was blown away. I wanted to be able to do that! So I did.
The theme for this Ludum Dare was split between two options: “Growing” or “Two Button Controls”. I decided to go with the two button controls prompt, but instead of limiting the player to two button controls, I created a game where the player controls a character that has to choose between two buttons to press. One is labeled SAFE, and the other is labeled SORRY. The rules are pretty simple:
- Pressing the SORRY button
- Transports the player to a different spot on the map
- Drops a monster into the main room containing the buttons
- Awards the player a chunk of points
- Points are earned by staying alive with a monster present, and points are earned faster depending on the amount of monsters on the map
- Pressing the “Safe” button ended the game and banked all of the points the player had gotten
- Getting eaten by a monster takes away all of the player’s points
- Monsters wander the map aimlessly and has a light attached to their heads
- If the light touched you the monster would charge
So the game basically becomes a cat and mouse game where the player tries to get to the SORRY button as many times as possible without being seen by the monster. When they decide it’s too hard, they have to get to the SAFE button to bank all their points.
I sat Friday night at my computer nervous as hell, and while I was going to try to compete, I wasn’t expecting to be done in time. Once the theme was announced, it took me about forty minutes of pacing my room and talking to myself before I had the premise that would drive the game-play and from then to about 7 o’clock on Sunday, I worked. I started with code, and when my brain got tired I moved to art, then when my hand got tired, I moved back to code. I took a break on Saturday to try to meet my parents who were in town, but decided the traffic was too bad and turned around and went back to work. I slept about 5 hours per night. All of my code was done in Blueprints because it was fast. I did my modeling in Zbrush, my UV mapping in 3D-Coat, my character texturing in Substance Painter, and my texture generation in Substance Designer. I created my music in Bosca Ceoil and my sound effects with my mouth and Adobe Audition.
I officially put the pen down and stopped working on my game around 4 o’clock Sunday, leaving myself with what I thought was plenty of time to build my game and upload it to the site. Unfortunately that’s when things started to go wrong. My build would not build. Neither the 64 bit nor the 32 windows builds would build. To make matters worse the actual bug was hidden deep in the stack trace. I tried publishing to HTML5 and it worked… kinda. The build that came out functionally worked, but even on my pretty hefty rig I was getting three to four frames per second and all of them were ugly. Eventually I figured out how to fix my bug and got a build out the door, but the panic was intense. And then of course when I went to show everyone my game, I had Direct X driver issues on my laptop…. 😯
What went well
I finished on time! Despite my fears I actually turned something in. And you know what? It wasn’t as bad as I thought it would be. It wasn’t easy, but it wasn’t impossible. I really played toward my strengths on this one and avoided my weaknesses. I toyed with the idea of using a simpler game engine or trying to do this in 2-D for the sake of saving time, but I know Unreal Engine pretty well, and I’ve never done anything in 2-D. I think If I had tried to learn a new engine or learn how to make a game in 2-D, the time spent learning would have exceeded the time I would have saved by going an easier route.
I also chose a monster that made my life a lot easier. I based my monster off of an anglerfish which really saved my butt in two ways. First, it meant I could get away without needing to animate the model. If I had chosen a monster with legs, I would have needed to animate the legs, but a floating fish-creature can just float. I’m not good at animating or rigging, so being able to skip that part was very useful to me. I tried animating the monster a little – just so he wasn’t so static – but my attempts bore no fruit and I eventually scrapped that idea.
Secondly, an anglerfish has a glowing illicium, or “fishing rod”, that extends from its head. That meant I could use the light on its head to show exactly where the monster was looking as it wandered, and give the player a little information on how to avoid being detected. It was intuitive and looked really cool, which was an easy win.
What did not go well
I got really bogged down in art assets. I could probably have saved time by going for less detailed meshes and textures, but I got caught up in the details and probably took it a bit too far for a game jam game. That being said, I did enjoy it.
I definitely waited too long before I did any level design. In fact, there really wasn’t any design exactly, I just kept adding on to the main room until I ran out of time. I would have liked to have made the map more interesting. I tried to give each spawn location a little something special. One had an open roof, one was in a pseudo-maze area and the third was in a forest of pillars that enemies could hide in. That being said, the only area in which players really seem to encounter the monster is the main chamber. I would have liked to have made the map larger and to have made more distinct areas.
I seem to really like the color red. Everything seems to get colored red whenever I need to design something. Unfortunately, in this case I made the walls the same shade of red as the monster, meaning that the monster is now really hard to see. I probably could have designed that better. I would have really liked to have created a few different monsters, but time just did not allow.
I also made the game a bit too heavy. In any machine without a dedicated graphics card the game gets very few frames per second. Having never published a game before I was uncertain how the game would perform on weaker machines. I’ve got a feeling this mistake is going to cost me in the judging. I could have tried to go back and make the game more efficient, but there just wasn’t enough time in that 48-hour period. I feel I probably have a lot to learn about game optimization.
I was also unable to get a build out there for anyone other than Windows machines. I would have liked to have had a web playable build seeing as that would probably be the easiest for judging, but unfortunately that just wasn’t possible for this game.
Because I had never published a game, I was also not ready for the bugs I would face when it came time to make the final build. That caught me off guard and had I not finished with enough time, it could have cost me everything.
This was worth it. When people used to ask if I made games, I’d have to say “kinda ?” because I’ve never really finished anything or had anything to put my name on. At least now I have something to point to and say “look at that! I did that!” It feels pretty good. I learned a lot about developing games this past weekend, and I got a lot of experience out of the time I spent. I’m not sure I want to do this again any time soon, but I’m not going to rule it out in the future. Right now I think I’ll go take a nap.