Ludum Dare is an international game jam hosted every 4 months and attracts hundreds of entries. LD38 was it’s 15th year anniversary, and we put together an Open WIndow team to participate.
The theme was revealed: “A Small World” at 03h00. My wife, best mate Jacques, and I arrived at Open Window at 06h00. We awaited the arrival of some of the students as well as the other 2 lecturers then began spitballing ideas. We eventually landed on the idea of balancing the increasing human population with the effects on the planet’s health through the use of natural disasters as a culling method.
With you being the planet itself, we needed a nice controller to make it feel natural and intuitive. I hooked up Rewired to take advantage of multiple inputs with ease, allowing keyboard and mouse as well as gamepad. The idea was perfect for a couch type game or mobile style game. The mechanics were relatively simple and included allowing you to rotate the planet then place one of the 4 natural disasters (earthquake, tornado, flood, or volcano) on the planet.
We had a nice balanced team of devs and artists of 11 people, that could really put together a good looking and functional game. There were a few challenges and stages of hair-pulling as is always the case in game development. Here were the major complications:
We thought we could take advantage of the particle system as a way of distributing the human population as well as a method of killing them off, leaving the placement and collision physics up to them. What we learnt though is that the particle system is not friendly and does not play well with custom systems! We needed the particles to adhere to our spherical gravity which was tricky business but Walter managed to figure it out by calculating the vector towards the planet’s centre and apply a constant force to the particles. So we had gravity sorted out but the next problem was trying to get the particles to collide and die with specific surfaces, which we probably could have got sorted but there was a lot of weridness going on with the particles and gravity in certain locations. Particles would be attracted sometimes, others would fly off the planet. There was also a lot of lag once the particles reached their peak.
It looked like a mess and fixing it was going to take a lot longer than we had so we switched out the system. Rather than having “people” (the particles) on the surface, we decided to go with using cubes as buildings to represent a number of the population allowing us to use less resources and no weird physics issues. The cubes adhered to the surface and self-replicated using a short raycast to test if there were any neighbours. Buildings would also grow over time and increase their health, making them harder to kill off and increasing the difficulty of the game.
We had no idea if the game would be fun or not until Monday afternoon, only a few hours before hand in. We had an idea and created a game around it but hadn’t been able to get the major game mechanics in quick enough to allow for rigorous game testing. This meant that by deadline we had only had around 3 hours of balancing.
Following the initial hand in, I reworked the gameplay to a better state. You now had to rid the planet of the humans entirely. There’s a tipping point however that if you don’t take out the enough of the major population in the early game, it spirals and you lose. The next state is if you manage to kill enough of them off, you win which then displays how long you took to destroy them creating a competitive state of trying to beat your highscore. I had initially implemented a system to store the scores online on our own server but could only get it receiving scores and not posting. I do plan to re-look at this but for a mobile environment, it’s much easier to implement leaderboards.
We had a great bunch of people dedicated to creating an awesome game in a mere 72 hours and I think we can all be proud of what we achieved despite some hiccups. We will continue to develop this game and hopefully release it for all to play =).
So here’s the team who made it all possible: