Well I finished my entry for Ludum Dare early in the morning today, and have now had a sleep to refresh myself, so it is a good time to write a post about my experience.
The idea for BioBattle comes from an old game I played many years ago that has dropped off the planet, called Battlethingz. Feel free to search that name, you’re not likely to find much about it, believe me, I’ve tried. Battlethingz was a pretty small multiplayer game where you and your opponent each had a monster that you battled against each other with. That monster was something of your own creation out of various parts. Each of those parts gave your monster a different skill to use in battle. It was a very different take on strategy and battle games like Pokemon.
For BioBattle, I decided to do something along the likes of Battlethingz, except to make it fit within the theme of Tiny World, I changed the monsters to bacteria, and the parts to different bacteria parts. Each part gives your bacteria some stats and a skill it can use in battle.
When planning for this competition, I was wanting to use Java and LWJGL on their own. A few days beforehand I threw together a test applet using LWJGL to test the build process and make sure everything would be working for the weekend, and everything was fine. Come time for the actual game, and I quickly ran into problems with the lack of support methods that come with LWJGL. There is no real handling of textures or image loading, which meant I would have to write all of that myself.
Due to the time constraint I decided to skip that, and just use the slick2d library, taking advantage of the image loading and rendering that the library has, as well as text rendering. This allowed me to get into the actual game programming fairly quickly, and I had the first title screen up and running within an hour or two. Next up was the actual battle screen.
For the battle screen I started out with getting the basic bacteria stats and moves drawn on the screen. However, after I had completed the code for drawing this text, I realised that I had no code to define what those stats and skills were. Two hours later, I had managed to write most of the game framework just for those bits of text to test that my rendering was working properly. I spent a bit of time fleshing out the bacteria, adding different moves and different parts that would be later used when the user created their own bacteria.
By the end of my first day, I had basic battles up and running, with win/lose conditions and an AI consisting of a carefully placed RNG. The start of day two put me on to the bulk of the game – customization. The “Create Game” screen is where the main part of the game comes into play, the ability to create your own bacteria out of different parts.
I found when making this part that it is something very boring to do in terms of coding. The UI isn’t a real GUI, and there wasn’t really any gameplay elements going in at this time, so it took me quite a while to force myself to complete it instead of just burning out and leaving it there. I managed to get it done though, fuelled by energy drinks, and it turned out rather well.
A few hours spent on graphics after that, then adding in some more parts and tweaking different things and I had a finished game.
Here is the 48 hours of my development condensed to 2 minutes:
Now that I have finished this game, I want to remake it. Preferably not with a 48 hour constraint, and hopefully with someone who isn’t as horrible an artist as I am. I still love the gameplay that Battlethingz had, and I feel that BioBattle doesn’t quite do it justice. So that will be my next project to chip away at in my spare time, hopefully I can manage to make it multiplayer like Battlethingz was.
BioBattle Entry Page: http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&uid=3280