This past weekend I took part in my first ever Ludum Dare, a competition to complete a game in 48 hours. There is no prize for first place, there are no long lists of lawyer requirements to sign, and there are no restrictions on tools, platform, languages, or ever what counts as a "game". The Ludum Dare is hardcore indie, and people do it for the love of creating games. How many people? This weekend saw over 2300 games created, 1600 of which entered into the competition and the rest into what is called the "Jam".
The competition rules are few and straight forward. Work solo, create all code, art, and sound for your game in 48 hours. You can use any tool, but any code libraries must be available to all (if you want to use your own code library then you must post it publicly for anyone to use before the competition starts). You must also share your code for review though this is just incase any questions come up about the other rules, you retain all rights. If you want to break one of the rules and also take an extra day you can enter the jam which is judged separately. Judging is done by those who submit games.
For the LD48 (short hand for the competition) I decided to use Unity. I need to move away from my beloved XNA since Microsoft already has. Unity allows scripting with C# and Mono plus it supports every major platform and has a free version. To get ready I worked though a 3D Buzz Unity video tutorial and if you’re really curious you can see the result here.
I also spent time getting to know the LD48 process. A week before the contest people submit ideas for the theme, which then get collected and voted on. During the voting, one of the suggestions became very divisive: "potato". Some felt that this was a joke theme that should have never made it to the final list. Others felt this was a great theme. Someone made a comic. Someone made another comic. Someone made a video. Things escalated on twitter. I made a decision to take a side. I don’t claim it was a wise decision, but I stand by it.
My first snag what the theme. Potato didn’t make the top 50 and "minimalism" was the theme. I don’t feel the game I created, a simple action RPG inspired by the classic Adventure on Atari 2600, meets the theme well. Yes, I can say it’s a minimal RPG stripped to its core, but guess what? All games in the LD48 are stripped to the core! If you have only 48 hours you are not going to make a very deep and complex game.
I spent an hour brainstorming ideas and then decided I didn’t have more time to waste and went with the idea for "Quest".
What Went Right
I finished the game! It has about 15 minutes of gameplay, sounds, music, special effects even! This may not sound like much but this was my true goal. LD48 is filled with tales of designers who start but didn’t finish. I had only two weeks of experience with Unity but luckily didn’t get stuck too bad at any one spot.
I made all the 3D models in Unity from either the basic cube or sphere. This saved a lot of time as I’m not experienced with Blender and don’t have access to any pro level 3D modeling tools.
No tutorial. I only put the keys used on the start screen, and had the player face the castle. If you entered the castle, a message said "Retrieve the Chalice" giving you your quest and letting you know to come back here when done. This may sound like a small thing but to a game developer it’s a very big thing. Tutorials talk down to the player, but a player who discovers the game goals and rules feels a sense of accomplishment. I had my wife and two oldest daughters play the game with no guidance from me and they all got the goal, so I put this in the win column. (My wife and oldest also beat the game with no guidance too).
The music – I’m pretty happy with the theme song. I mean, it basic song writing 101 and I’m not going to win a Grammy or even get work as a freelance composer from it, but 6 years of band plus 1 year of music theory paid off! I posted the song to my soundcloud account:
What Went Wrong
This is the interesting part, right?
Collision detection – I have no idea how this really works in Unity. Three different times I had to stop and completely rewrite all my collision detection because a door wouldn’t work or the player would walk over a monster. To make matters worse, there have been changes to Unity regarding collision detection so many times I found Google gave me a link to an old article and there was a new, better method.
Sound effects – I used BFXR to generate all my sound effects, which is an excellent tool. The problem is it generates mostly 8-bit era sounds and none of these fit well with the sound I wanted. If it wasn’t against the rules I could have busted out my collection of purchased effects, but since it is against the rules I found sounds I could tolerate and moved on.
No mouse look – yea, wtf was I thinking? A first person game with no mouse look? Really!? Honestly, until I got comments about it I never noticed this. Since I’m also the one who made the decision to swap the common use of thumbsticks (move/look) on Incablocks I think there is a pattern here.
Difficulty – the game isn’t hard, but it’s not clear that the best way to fight enemies is to hit them, then step back before they can hit you. If you stand in place they will tear you apart. This is the main reason most people don’t finish and I probably should have come up with a way to let the player know to move back after attacking.
Overall I really enjoyed taking part in LD48 and will try to do again in the next one. I’ve learned I really like Unity even though it means I cannot deploy to my favorite platform Xbox (Unity supports Xbox, but not Xbox Live Indie Games which only allow XNA titles).
So if you’ve read all this and have 15 minutes, why not play Quest?