I’ve seen a few other developers write a post-mortem, and it seems like the cool thing to do some I’m going to write one about my first Ludum Dare experience that will never get read:
I watched some of Notch’s live stream of him making Prelude of The Chambered, his entry for LD21′s escape theme. This was the first time I’d ever heard of it, and I thought it was a pretty cool idea but didn’t think any more of it until his next entry, Minicraft, four months later. While watching his live stream I decided that next time I was going to enter. I’m a fairly adequete programmer, and enjoy making games. In my four years of programming games though I think I’ve only ever completely finished one, because I either get bored with the project or the code base becomes too big and messy and I end up throwing it into the dusty corner where all mu other abandoned projects lay.
48 hours didn’t sound like a lot of time to make a game though, and I was afraid that I would be extremelystressed trying to meet the deadline and turn in some heap of garbage. I was wrong though. 48 hours is a really long time to be focused on one thing, like making a game. Sure, the weekend goes by in the blink of an eye when you’re having fun partying/sleeping/playing bf3, but when you’ve been working solo on your game for over 30 straight hours time seems to slow down and you realise that it’s not as difficult as you thought to produce something half-decent in just one weekend. By the middle of Sunday I could feel exhaustion setting in, I was ready to ditch this game. Had it not been for the looming deadline, had I made this game outside of the competition, it would be lying incomplete in its grave on my hard drive somewhere right now, where I would stumble upon it a few months down the line and be like, “Oh yeah, I remember this. Pity I’ll never finish it”.
And that’s what I think is so great about the competition. Working as a solo game dev is extremely lonely. There is no one to talk to about your progress, your losses, your triumphs, your clever work around to a bug that’s been making you cry for three solid hours. Ludum Dare changes that. You get to work along side another 1000 individuals who are all making games and will end up playing and rating yours. The deadline also helps to keep you motivated. Without the deadline I’m sure fewer than 5% of those games would be completed. Also, the closer you are to the deadline, the more you seem to get done. In the last hour I was making menu screens, a intro song and trying to code some levels into my game. I literally finished with 3 minutes to spare. I did not know about the hour to submit though, and I was very stressed because I thought I had 3 minutes to submit my game or miss out on the competition, wasting the 30 hours of effort I had just put in.
I slept through the first 5 hours. The competition starts at 3am for me, so I thought I’d try and get a good night’s sleep and start in the morning. I got up at 8, saw the theme and came up with the idea within a few minutes. An hour or two later, I had a working prototype. I had a little guy running around on the surface of a small planet. I was very excited to see it coming together.
I had a lot of frustration with the math. Whenever you run around the planet, everything in the game needs to rotate as well. The planet is easy, it just rotates on the spot. Everything else needs to be translated around the planet to keep the
illusion of you running around the planet and not the planet rotating under you. I still don’t think the math for the arrows is 100% correct, but it works and is playable and that’s all that matters, right?
The rest of the first day I spent animating sprites. I’ve never really relied on my art skills for games before. I can draw, but don’t own a tablet. Drawing on paper, scanning and tracing with the mouse is a pain and wasted time. So I settled with placing pixels in Photoshop. I surprised myself, the result is rather nice.
I made sprites for the character to aim his bow in three different directions. You cannot run and shoot, it would have been a nice feature, but I would have to animate his legs moving while aiming. Or come up with some clever solution like overlaying two halves of the same sprite. I decided to leave that, not worth the headache. I also just flip the sprite horizontally when you run left and right. This is incorrect though because the character is not symmetrical. He has something on his right wrist that moves to his left whenever you change direction. I did think about making another set of sprites to fix this, but also, that would have been wasted effort because you hardly notice it in game.
I worked right through the night, adding wasps and getting them to shoot at the player. I added particle effects for when arrows hit and the goo balls that wasps shoot explode at the player’s feet. I was tired of programming now and decided to work on sound effects. I used the useful tool sfxr to create some 8-bit sounds. I feel they worked well. Flashpunk only plays mp3 sounds though, and sfx only exports wav, so I ended up converting them in FL Studio. Then they would make horrible crackling sounds in game whenever they started or stopped playing. So I eventually downloaded as3sfxr, which plays sfxr sounds based on a premade String. Useful, and there was no more crackling sound.
I also managed to do a little work on the GUI. I had the idea for a mini-map so you can see where the enemies are in relation to yourself. It is very useful when protecting your planet. It was not too hard to get right. I spent a lot of wasted time trying to draw pixels on the fly though, after I couldn’t get that to work I thought screw it and made sprites for that too.
At about 7am I went upstairs for breakfast, but everyone was still asleep. I thought I’d take a quick nap until they were awake. I slept until 1pm.
This left me just over 12 hours left to complete everything. I made GUI elements for your health, gold and arrows. I added turrets that shoot at enemies. These were hard to get right. I had to calculate the angle to shoot, taking the current angle of the turret and the enemy into the equation. I also drew and animated those guys with trunks that suck your planet. I wanted to add a whole lot more creatures to fight, but there simply wasn’t enough time. Pretty soon, it was 9pm. 6 hours left.
I added a shop, so you can buy these turrets. Also added the option to buy health and arrows. I added text to let you know when you couldn’t do something. I was happy that most of the math was done and that all the features were starting to come together.
I came up with the idea for the teleporters near the beginning but thought it was too difficult to get done in time. I decided to go for it anyway, made a quick sprite and added it to the game. Getting the actual teleporting was difficult. Rotating everything was alright, I already had the code for that. Calculating the angles between the teleporters were a bit of a headache but I got it right eventually. They are probably my favourite feature, but everyone seems to be able to beat the game before buying them, making them the less viewed feature.
My sister suggested that you get hurt by your own arrows. Good idea I put that in. I also needed menu screens, that easily took two hours. I was really stuck on what to do for the title screen. I tried doing some enlarged pixel art but it wouldn’t work out. I eventually settled on a water drop on a leaf with some sun rays. Making the buttons where a challenge in themselves. I had to make sprites for those too, which changed when you rolled over the button. With the menu screens finally done, I had about an hour left and realised that I still didn’t have any levels.
I hastily coded in some levels. You start with ten mobs on level 1, every 500 ticks, add as many mobs as the level you are on. So 1 mob every 500 ticks on level 1, 2 mobs on level 2, so on. When the mobs run out, increase the level and make the number of mobs 10 * level. Every fifth mob spawned a guy that sucked your planet. When you reach the end of level 5, you win.
It was at this point that I realised in horror that your planet had no health. No health! How had I overlooked that? That made those guys that suck your planet useless! So I coded in some health for the planet, made it regenerate over time and made some sprites for the GUI of the planet draining over time. I made the planet flash when it was being drained, but sometimes would not notice it until too late. To fix that I decided to add an alarm sound in, so you knew when your planet was in danger no matter what was going on.
30 minutes left on the clock. I needed to finish it off. I made some quick bushes in Photoshop, and a moon. I added them randomly to the game on every start up. 10 minutes left. I quickly plugged in my keyboard and started holding down keys, I had the intro song recorded a few minutes later. 5 minutes. I found the flashpunk code for playing mp3′s and added the intro song to the title screen.
Boom! I was done, with 3 minutes to spare. Crazy rush near the end, but I managed to complete it in time.
Over the weekend, I learned how to work quickly and focus my thoughts. I learned how to stay motivated and finish a project. My pixel art skills improved tremendously. I made sound and music for the first time. I am extremely proud of my game and I thank all of those who have left positive comments and criticism. I’m also having a blast discovering other people’s creations. I cannot wait for the next competition, I am getting my friends to enter as well.
No one has commented on my game title yet though. Miniscule, get it?