Ludum Dare 27, libgdx and you
What is Ludum Dare?
Ludum Dare 27 is near, time to prepare for this weekends battle. Ludum Dare is a tri-annual game development challenge which comes in two flavors: the compo, where you have 48 hours to complete a game alone, or the jam, where you have 72 hours to create a game as a team.
Each Ludum Dare has a theme, decided on by the community through voting. This LD’s voting is still in progress. Register over at the LD site, then cast your vote here.
Once the voting is over, the real fun begins. There’s a little counter on the LD site which shows you exactly when the actual challenge starts.
Once this counter reaches zero, it’s time to start coding, arting and ideaing for 48 or 72 hours straight! You have to submit your game on time, on the Ludum Dare site in an executable form as well as in source form, so others can learn from it.
After the development period, voting begins. Every participant of Ludum Dare can vote on other people’s games. The more you vote, the higher your own entry will get ranked for others to vote on.
How do i participate?
Easy, just follow these simple steps:
- Register at the Ludum Dare site.
- Vote on the theme
- Introduce yourself on the Ludum Dare site. The site is a WordPress installation.
- Start developing when the timer hits 0
- Submit on time, the counter on the site shows you how much time is left
- Play other people’s games and vote after the competition. The more you vote, the better the visibility of your own game
- Write a post mortem after the competition
Before diving into a Ludum Dare, you should have everything in place. This includes your development environment, any tools necessary to create art and so on. Here’s a little checklist when using libgdx:
- Stick to desktop development. You can publish for other OS’ after the competition
- Setup the prerequisits (Java, Eclipse, …)
- Create an empty libgdx project, practive code hotswapping and debugging so you can iterate fast. Use the nightlies!
- Add any thirdparty libraries like Tween Engine or box2dlights (use our build), Artemis or a libgdx extension to the empty project. Add the jar files to the libs/ folder of your core project, then go to your core projects Properties -> Java Build Path -> Libraries and add the jars
- Learn how to deploy your app for the desktop, you’ll need it for submission
As per the rules, you have to create the graphics and audio for your game by yourself. Here are a couple of tools you may want to get familiar with:
- Gimp, an open-source image editing application, which tries to be an alternative to Photoshop
- Paint.NET, another image editor, Windows only. I prefer this over Gimp
- Blender, a 3D creation tool with a super steep learning curve. Just mentioning it for completeness
- Wings 3D, a low-poly modelling tool for static 3D models (read: no animations). My preference
- Tiled, a popular tile editor with first class support in libgdx
- Bfxr, a clone of Sfxr, for creating chiptune like sound effects extremely easily
Sadly, there’s still a lack of good music generation tools for musically impaired people. INudge comes close, but doesn’t let you export. Maybe i’ll write something like this in the near future
It may also make sense to use screenrecording software to create a timelapse of your development process. This is interesting for others, and may be of help for you to see where you got stuck, and where you may improve next time.
During the Compo
There’s no real silver bullet for how to approach the 48 hours you have to create a game for the theme. Here’s what i usually do:
Design your game with pen & paper: seriously, get away from the computer. Try to layout the screens you want to have, and for each screen its basic functionality. Details can be filled in later. Make sure you have the gameplay itself nailed down. The goal is to get a crasp for the feature set you want to have, and be able to set a scope that’s doable in 48 hours. Kill anything that seems to complex or time consuming.
Implement the game mechanics: Based on your design, start iterating on the game mechanics. If you create a platformer, that would mean getting the controls to feel good, implementing collision detection and so on. Once you got the basics down, add the more advanced, optional mechanics (enemies, platforms, etc.). Use placeholder art until you got the feature down, then create the art for the feature if necessary.
Create your art, one piece at a time: I mix implementing game mechanics with creating the art. E.g. if i implemented an enemy character, i’d use placeholder art until i nailed it’s behaviour. Once that’s done, i’ll create the graphics and audio necessary for the character, wire it up and move on to the next feature.
Finishing touches: This is where i usually create the intro screen, game over screens and credits screen. If you run out of time, you at least have the game mechanics implemented. Any left over time can be spent on tweaking the mechanics or level design.
Make sure to keep track of your progress during the development process and don’t let your scope explode. When in doubt, remove a feature instead of working on it for hours.
Since you are just a punny little human, you should also make sure your body isn’t going to crack. Have breaks, make sure you drink a lot and eat somewhat healthy food. Your brain will thank you.
After the Compo
Once the compo is over, it’s time to vote on other folks’ games. The more your vote on other games, the higher the visibility of your own game for others.
It also helps immensely to document your development process in form of a post mortem. Write down what went wright and what went wrong. Publish your post mortem on the Ludum Dare blog, for extra exposure and feedback.
Goody, now go write games, preferably with libgdx. Like last year’s winner, Mono, by timtipgames!