Over the weekend of the 23rd/24th August, I participated in one of the best known and respected game jams, called Ludum Dare. Currently in it's 12th year, Ludum Dare (latin for "to give a game") is a two-part event, the compo (solo 48hrs) and the jam (solo/team 72hrs) to create a game based around a theme, which was announced on the weekend - Connected Worlds.
I decided, since this was my first time, I would do the more relaxed jam due to the extra 24 hours. Even though I didn't have Monday off work, I'll planned that I would still get an extra 4 hours to do something during the big finish.
Anyway, I was at my son's karate lesson when I saw the theme announced and promptly began thinking of ideas, jotting them down on my iPhone. I had already said to myself, I was going to make a 2D platformer. So, I knew the style, but that's only half the battle.
I’m thinking inter-dimensional time travel or multiverse jumping for Connected Worlds. #LD48— sikosis (@sikosis) August 23, 2014
I have my main character and backstory sorted … I just hope I can pull it off. #LD48— sikosis (@sikosis) August 23, 2014
I was also using a recently unfamiliar toolset called Haxeflixel, which is Haxe (open source ActionScript) + Flixel (Flash Game Library) and is pretty damn cool for making games. I had dabbled with it in the week leading up to Ludum Dare, but I was certainly no expert -- however I did learn alot about it over the course of the weekend.
I started off alright, creating the various scenes or states as haxeflixel calls them, along with some placeholder graphics with 809 lines of code and 9% progress overall. How did I come to that figure ?
Well, prior to Ludum Dare, I made a dashing Dashboard for the event with a countdown timer and these stats. The stats are populated by a script, which I have set to annoy/run every hour. This prompts me to a) try and get as much work done before the hour deadline and b) a way to show my results from my iMac and see how I'm doing.
It was also around this time that I hit a snag. My plan was to have multiple worlds that the player would visit and those worlds would be made from different tilesets. I thought a futuristic city, an ice world, a forest planet and I had tilesets to compliment these, just whenever I made a new world using the Tiled Map Editor and then trying to use it in haxeflixel -- the game would crash. I tried googling for the error with no success and spent many wasted hours on building worlds I couldn't use and also trying to figure out why I couldn't use them.
Bugger the tiles in one of my tilesets is causing the game to crash :( Having a pre-dinner break. #LD48— sikosis (@sikosis) August 23, 2014
It was getting close to 9PM on Saturday and so it was time to break out my power pill for the night's coding ahead:-
As I mentioned, I lost a fair bit of time on the tilesets issue, so today I planned to do Enemy AI as a main goal, however, I was having an issue with the animation. It was playing backwards and on the opposite side ie. left animation when pressing right arrow. But eventually I cracked it !
By 9PM Sunday night, I had scaled back the design of my game. No extra worlds with tilesets, but the theme is Connected Worlds, I had to have some -- so I decided to just colour tint the background a different colour and call each world a different world. I used the same tileset with a few additional ones and set about making 5 levels.
The first one was already made and was pretty basic. It was meant to be the tutorial level ie. jump over the pit or die / get the component and the exit appears. I stayed up til midnight (work tomorrow) and managed to flesh out 3 out of the 5 levels. I went to work Monday and tried not to think about my game.
On the train ride in, I basically worked out what I needed to do to finish - 2 levels including the final level, which I wanted to do some special puzzle mini-game, music and sound effects and basic polish.
At lunch time, I fired up my laptop and used Tiled to make level 4. I just had to wire up the code, I figured I'd do that when I got home, which I did. I also did the sound effects in cfxr and got some music by chip via Jamendo.
Then this happened ...
Yay and Nay. Flash is playing the bg music and sfx, but showing incorrect gfx for pickups. neko shows otherwise. #LD48— sikosis (@sikosis) August 25, 2014