Well, well, Ludum Dare 30 has just taken place a week ago and by now you probably heard about it, but I took part in it.
I made a small little game about planets. And missiles. And love.
And most importantly, it is called Universal Love.
You can play it now right here. Go on, try it, I’ll wait here until you are done.
Done?, good!, I hope you enjoyed it as much as I enjoyed making it.
What is it?, you wan’t to know how on earth did I came up with such an idea and how it came to exist?
Oh!, you flatter me!, I’ll do just that with pleasure, keep reading! 😀
In the beginning
The Ludum Dare this time turned out to be Connected Worlds. Since I live in Europe I had two choices, either a) wait until 3AM to learn about the theme at the same time as everybody else or b) sleep like there is no tomorrow and just wake up on saturday whenever I felt like and start from there.
Guess which one did I chose?. Yep, it was b.
So I woke up on saturday morning already being 6 hours behind everybody else. But this was not going to be a problem. The problem came up with the theme itself. I started brainstorming around the theme and everything I could think of where the same things everybody else would be: parallel worlds where your actions have an effect on them, different dimensions and teleporters, etc etc.
I then chose to take the theme in a more literal way. Maybe way too literal. My first idea consisted of a super evil space station that devoured planets. To do this it had this incredibly long chain as a tongue that it would fire against its target planet and then pull it back in order to eat the planet. The gameplay consisted on you controlling this grappling hook dodging asteroids and fighting your way towards the target planet.
As soon as I started thinking about gameplay details and implementation I became bored. Really bored. I didn’t want to make that game. It would probably suck hard.
So I decided to go back to the brainstorming session (this meant I had already wasted another 2 hours doing nothing).
After a lot of thinking and deciding I set up on a simple idea: you would control a planet inside a solar system where other planets like you exist. Each planet can fire missiles to each other, but they can also send love. Each action has a counter-action and you must complete a set of objectives on every scenario to win. On top of that, your enemies are somewhat intelligent and will react to your actions accordingly. This means that if you love a planet they will love you back, but if you attack them they will also retaliate, so you had to plan your strategy to win.
I kind of liked the idea of making a semi turn-based strategy game mixed up with a console RPG battle system (at least for the looks). I also thought of trying to replicate the graphics of games like StarFox on the SNES, so I swiftly set up a plan and started coding as fast as a I could.
The coding begins
This time I was using HaxeFlixel, which for I hold a dear place in my heart (as everybody knows by now). I have been using it for a while but I hadn’t completed any game with it unitl now. I was a bit scared as well because I wanted to do some things I hadn’t tried before but hey, that’s what game jams are all about!
Amazingly it was extremely pleasant to work with it. I started from the ground up coding classes for planets, missiles, player control and so on. I somehow had a rough time figuring out how to make the trajectory system work but after some time diving into the wonderful API documentation I managed to get it working in no time.
The most interesting part of it all has to be the enemy AI. I wanted to have different kinds of enemies, like a pacifist planet which would only send love or an evil rock that would hate everybody and throw missiles without hesitation. I also wanted to have it adapt in a intelligent and coherent way to others planets actions, so it would feel like a thinking entity instead of a brainless rock that just sits there waiting for you to blow up.
In the end I didn’t have the time to implement the hippie/aggressive variants of it, but I made a common AI that works the same for everybody and that behaves in those ways depending on the situation. I thought about it on a few minutes and I implemented it in a hour or so.
Then I ran the code expecting something completely boring and dreadful. Amazingly it wasn’t anything like that. It turned out to be quite unpredictable, which was nice, but it also felt human in some ways. If you loved a planet enough they would love you back, even if you stopped loving them after a while. If you attacked them they would probably retaliate as soon as they could, trying to destroy you like there is no tomorrow. Between those limits they could do lots of things, making them feel really interesting in my opinion.
With this done I felt really motivated to go through the end and I set up to work on graphics and audio as fast as I could.
Them graphics and noize
As I said, my main inspiration came from games like Star Fox on the SNES, and that’s where I turned to in order to learn how to draw proper 16bit-like planets. I started out making some backgrounds, which luckily were done in no time. The planets though took more time, mainly because I wanted to have 4 scenarios which different planets so I ended up having to make 13 different planets. You can tell I was a bit tired of drawing them because of the looks of them, and out of my boredom some things like the planet DOGON where born. Luckily this kind of things have been very well received by fans and other fellow LD contestants.
My current setup
I must also say that since I finally got a digital drawing tablet my life has been a completely different experience (at least on what concerns drawing 2D graphics). This is the first time I’ve used it extensively and I have loved every second of it, I’m quite sure I couldn’t have made it that fast without it, so, if anyone is wondering if they are worth it my answer is a bold and solid YES.
Lastly, we have the sound department. In here it’s a bit of a mixed bag. I am very pleased with the sound effects I put on the game (thanks a lot BFXR!), missiles sound they way I wanted them to, explosions do as well, and those lovely hearts make a sound that almost feels like a tender kiss <3
On the other hand, I could not make any music for the game on time, considering I spent the last 3 hours I had on sunday night making the game work on every OS I could (thanks a lot HaxeFlixel!) and uploading the source code for the game, so in the end the game feels a bit empty without it. I would have had an ominous but light background music that would have matched the calmed and slow visuals but there was just no time for it. I guess this has to be the only black spot I can thing of about this LD30 entry of mine. Which considering how the last one went I’m fairly happy how everything turned out.
Star Fox 2 was a big help (even though it never saw the light of day!)
As you probably realized by now I’m quite happy with my LD30 entry. I managed to finish it on time, and I made something I had never made before. On top of it the few comments I have received about it are very positive, with most of them reflecting that the game is simply fun. That fills me with joy and motivates me even further to continue making games that I want to play become a reality.
It’s been a wonderful experience and I’ll be back on the next edition as sure as the sun rises from the east every morning 🙂
Thanks for reading and playing!
P.S- At the moment the Ludum Dare voting is taking place, so if you just happen to be a registered user please don’t hesitate to try my game out and cast a vote on it right here. Thanks!