Red Legion: A post-mortem

 

RED LEGION was the fifth time i’ve entered this competition, and the fourth time i’ve come away with a completed game. However, many things were different this time around:

  1. This was the first time i’ve done a game jam with RSI. This has been plaguing me since the end of summer, and consists of chronic pain after long sessions of sitting down typing at a computer. You can imagine why this is such a problem for competitions like these.
  2. This was the first time i’ve left my comfort zone and tried a new engine. Whilst C++ is my primary language, and i’ve made many games using HGE (Haaf’s Game Engine), I decided to work in Lua, using the newly created MOAI engine. This allowed me to prototype faster in a more high level language, as well as have the option to port to other platforms (I have a complete version of this entry on my Android device :D).
  3. This was the first game i’ve made which followed a storyline, and didn’t all take place in one large space. My other entries to LD are purely an arcade affair.
  4. This was also the first jam i’ve done using a standing desk.

Point (1) was a big mental block to get over. How was I supposed to do anything awesome in 48 hours if it would likely damage my hands in the process? Besides, I was banking on “end of the world” being the theme and had trouble thinking of something cool.

So the first four-five hours of day 1 was spent in the nearby park, feeding squirrels. It was there that I had the idea for a double-agent attempting to extract information from a companion, and decided to at least give it a go. So I put on some wrist braces, and started to type.

 

It’s so easy to prototype in Lua. Within hours I had a basic walk animaton (the one that is in the final game), as well as the ability to seperate the game logic into rooms. Each room had it’s own list of events that were processed one by one in a seperate thread (NOTE: i’d barely done any multithreading before, yet I used it extensively in this!). This allowed all of the logic to be compartmentalized into lots of small components.

Very soon I had dialogue working, and the ability to give commands to actors, such as “walk there, then turn around and say something, then put your combat face on and attack X…”.

These fundamental systems made up the majority of the game. All I needed next was an idea for a combat system. The one I settled on is quite simple, but gives a sense of urgency to the player. With that done, I could simply use the event system to randomly spawn enemies at set points in the game, and I had a full framework to work from.

However, the dawdling at the start and some arrangements for Sunday evening meant I was beginning to run out of time. I had about five rooms done, and no sound. I had spent too much time trying to get the rooms looking nice (they didn’t turn out so well, but they are quite detailed for someone with my lack of artistic expertise) that I hadn’t enough time to implement all the features I had planned. I was gunning for ~20 rooms, and ended up with only 10. I had only two instances of working doors, and one button (which was meant to be a tutorial, but turned out to be the only button in the game). So scope was a big issue for me in the project.

 

For how short a time it was made, the music and its underlying systems turned out well. The bassy beat gives a sense of emergency, whilst pulling in a bit of a solo and some drums when combat kicks in made it feel even more actiony. However, I kind of rushed the last part of the lead track, and it makes me twitch when I listen to it (it just sounds horrible to me). I also didn’t want to experiment using compressed sound files in case they didn’t work, so I ended up with two wavs, effectively doubling the zip size!

I also failed to include sound effects, which I believe could have made it feel a lot better to run and punch.

My initial plan to work in windows and port to OS/X and Chrome NaCl ALMOST worked. There are reports that the OS/X version has trouble with dialogue, and the Chrome version didn’t run at all. However, as I said earlier it appears to work a treat on Android (apart from the combat system, as it’s impossible to “press X” when you don’t have a keyboard!).

So in closing, good project, just need to scope better next time. And I know there will DEFINITELY be a next time, as i’ve now proved that it takes more than typing ridiculously fast to come out with a good game.