Invasion of the Giant Bacteria – Our GGJ 2011 game!

Invasion

Actually the full title of the game is “Invasion of the Giant Planet Eating Bacteria From Outer Space” but I thought that would be a little bit too long for a blog post title :-)

What is the Global Game Jam?

So last weekend I took part in the Global Game Jam which is a 48 hour game jam where you form a team with some other “jammers” to make a game that is constrained by a theme. The theme this year was “Extinction”.

We came up with our idea whilst brainstorming by a funny turn of events: I suggested “bacteria” as a possible theme for extinction and Steven (one of the team members) said “well I feel like something bigger than that”, which I found hilarious due to its unintentional humour (get it?) – so one of us suggested giant bacteria big enough to eat a planet and thus the idea was born!

Our Team

The teams formed somewhat randomly and so we ended up with 4 programmers (one of which is also an artist) and one artist (Khadija Ghazi). Also the 4 programmers were Indie developers and the artist was a student. Most of the people at the GGJ seemed to be students so it was interesting to have 4 Indies on the team. The artist/programmer combo guy (Sam Raski) decided to just make art and that was our first challenge: matching up his preferred choice of 3D rendered art with the other artist’s 2D hand drawn style. In the end the 3D art was toon-rendered which helped a lot to make things more coherent.

Programming Language

As for tech, the 3 remaining programmers (myself, Alex Vostrov, and Steven Pugh) made a list of what languages we all knew and the one commonality was Flash, although none of us was hugely experienced in it. For example I could have been a lot more productive in BlitzMax, but we needed a common language so that we could all code different parts of the game.

We had a brief look into using SVN, but decided to use DropBox in the end. It was actually was pretty hard to keep our folders in sync due to various reasons, and having no ability to merge code probably resulted in quite a lot of wasted time because we often wanted to work on the same source files simultaneously to add different things. It was slightly chaotic to say the least especially at the end when we went into crazy crunch overdrive to get it done on time.

We also used the excellent Flashpunk engine for Flash. To get it going on our Macs meant we had to download the Adobe Flash Builder 4 trial, and the Flash SDK and the Flashpunk engine, so all that took quite a while. Also the creator of Flashpunk, Chevy Ray, was at the jam and he gave us loads of help, which was cool, plus I found some bugs in the engine ;-)

Music and Sound

Steven also did the music for the game and I did the sounds effects. I discovered that Flash can’t import .wav files so I had to find a program for my Macbook to convert them to mp3 (I used Audacity with a “LAME” plug-in.)

Design

At the beginning we rapidly thrashed out different design ideas. I could tell Alex wanted to add more depth to the game (he is programming a strategy game full-time after all) but I wanted to keep it simple because I knew how little time we had. In the end we compromised and managed to get quite a lot of depth in (compared to some simpler games at the GGJ) and also left just enough time to add some polish.

The design changed a lot as we went along and tried things out, and some aspects of the game were actually mistakes that turned out pretty good so we kept them. We didn’t do any play testing outside of our group until after the deadline, mainly because we were so focussed on getting something, anything ready in time!

The playtesting of course showed up a few things, some of which we knew about, and some new things. I tweaked the game a tiny bit when I got home to address some of the issues.

Takeaways/Post-mortem

At the end of the jam, the top 5 games were selected by judges and got to demo their games to everyone. The winning game (Dino Fling) was excellent and the team contained 3 of my friends. We weren’t in the top 5, perhaps for these reasons:

- One was that we were at the far end of the hall and so when the judges got to us they had no time left. One judge didn’t even see our game, one just took a quick look at it (but didn’t play), and we had to persuade the 3rd judge to play it for a minute or so because he was running out of time. The game has to be played to be enjoyed, you can’t get the full experience by watching. Those other jammers who did play it found it great fun and kept on playing it because it’s addictive and there’s some fun emergent gameplay that you begin to experience as you get better at the game.
- We didn’t have anything to show for a long time. We had crappy placeholder art and were hammering away at the code until Sunday lunchtime when suddenly it all came together and people started taking notice in the game. Some other teams did a great job of getting an early payable build with decent graphics and that helped a lot to get the word out and build hype. In some ways the game jam is like a microcosm of the real world where marketing your game early can really help.
- Our game concept wasn’t totally simple and obvious. Some other games at the jam had one really obvious mechanic. Also we didn’t have time to make a tutorial, or even an instruction screen (but who reads those anyway?).
- Some art styles do better than others at catching people’s attention. Not all the winning games had great graphics, some had great concepts, but I believe it definitely helps to have fun well-made graphics married with a simple concept. Graphics are your first impression and if they are good, less-than-stellar gameplay may not be obvious right away.
- Another big thing is that we didn’t add scoring. I wanted to but there was some debate over it. During the play testing people really wanted to gauge how well they had done and because there was no timer or scoring they couldn’t. Adding that may have helped the hype factor a lot as people wanted to compete like they did with some of the other games.

I didn’t stay awake the whole 48 hours, I went home to sleep each night, although not a full night’s sleep. Also I generally ate half-decent meals. I believe the other team members did the same. We may have got more done if we had all worked continuously but I think that quality would have rapidly declined and (more) mistakes would have been made.

I’ve mentioned how hard it was to properly share code already so it’s probably a lot easier to have just one programmer on the team (who is using their best language) or decent source control. Also having mismatched artist styles is tricky to resolve, so maybe screening the artists before they join your team could be wise. Plus there was some trouble getting the animated art into the game which slowed things up. There weren’t enough sound people at the jam, so most teams did their own sound. I’m sure the other teams also had numerous problems to overcome, such as learning a brand new language or tool, so for sure the gamejam teaches you to adapt and find a solution quickly.

Conclusion

Overall the event was well organized, good fun, and a learning exercise. We really pulled together in the last day and got it done on time and we are proud of the result – it’s a fun game! Perhaps we will do something more with the game in the future once my non-compete with BFG expires.

I’m now left with a feeling that I want to do another game jam, but solo this time, and so I may do that over the next few days, even though I should really be working on stuff that makes money to feed my family. However, great things can come from gamejams, and they teach you a lot about design and scope, so I think I’ll just do one anyway :-)

Play the Game

I’ve put the game online for you to try out. Bear in mind that it was made in 48-hours and so lots of the things we’d have liked to add are still on a to do list.

Instructions:

- Fly the spaceship around with the mouse (buttons do nothing).
- Protect your 3 planets from the Giant Space Bacteria. When you lose all 3 the game is over.
- Pickup the 3 different coloured powerups and fly over the bacteria to use them. The powerups only last for 3 seconds so you need to keep refilling them.
- Each different powerup has a different effect.
- Beware that the bacteria are immune to power ups of the same colour!

You can play it here. Enjoy!

Comments are closed.