Over the weekend, I completed my first Game Jam Hackathon – Games For Our Future Game Jam
Another programmer and I, with the help of an artist, created Climate Pirate! It’s a 2D action game where you control pirates that capture oil tankers to reduce the carbon footprint of mankind and save the world from climate catastrophes.
Since I had so much fun, I decided my experience could help some others. Here are some tips.
Tips before the jam:
- Prepare to go full-out. Get rest the night before it starts. Prep wherever you’re going to sleep before you leave so you can come back and get straight into bed.
- Bring light snacks in case you get hungry but don’t want to leave.
- Get your laptop ready with the latest version of your game engine and whatever art/sound design programs you would use.
- Create a git (or other) repository before the jam so you are ready to start ASAP.
Tips during the initial phase:
- Arrive early to meet other people. The people you meet could turn into partners or friends.
- At this particular game jam, there was a series of presentations to get people motivated on climate change. I suggest having a notebook handy, taking down any notes or ideas you have. Remember the presenters that inspired you so you can talk to them later and thank them in your final presentation.
- Often at jams, you’ll be able to pitch ideas so that people without teams can find a team they’re interested in. If you have an idea, pitch it confidently and eloquently. Look up how to do elevator pitches. If you don’t have an idea, listen to others, write down your favorites, and go talk to the main one that interests you after all pitches are done.
- Commit to a project and once committed, stick with it. I failed at this early on. We spent about 30-60 min debating on whether we should change our idea to something else. When I realized how long it had been, I decided to just commit to the project and find a way to mitigate my concerns about it not relating to the theme of the jam later (which was smart).
- Don’t get carried away in the idea phase. Start with something simple, find the core mechanic. More ideas will come later – more than you can possibly implement. Start coding quickly.
Tips during coding:
- Start with the core mechanic and make it fun.
- Create a core game loop as fast as possible: i.e. make a “complete” game with start -> core mechanic -> win/lose condition. After that, iterate on it.
- Get your code base to a point where you can parallelize work as fast as possible.
- In our case, I made the simple movement script first. Then, while I worked on the core game loop, my partner worked on making the simple movement script closer to what we wanted.
- In Unity, split things into prefabs. People can work on separate prefabs without conflicting with each other.
- Start with fake “programmer” art to get mechanics down. Have the artist work on the most important things first. As they come in, put them in the game so they can see it in action and know what to improve.
- Focus on your goal and mechanics/art/sound that will complement that. For us, I wanted to be able to have a good presentation of a fun game relating to climate change. So, we knew exactly what to work on: create fun mechanics + polishing/juicing + adding climate mechanics.
- Because we knew others wouldn’t be playing it themselves, we didn’t need a tutorial and we didn’t add multiplayer. Because we knew our presentation was only 5 min, we didn’t spend time adding content that wouldn’t be seen (like more levels).
- Build early. Give yourself at least 3 hours before the end to build so you can make sure there aren’t any bugs in the built version.
Here’s how we created our game:
- End of Day 1 – Camera following the player and a dead simple movement script- no physics-based movement
- 10 AM Day 2 – Be able to defeat an enemy: Enemy boarding – have to make contact with a static enemy for 3 seconds to board. This was our core game loop. You would start, move to the enemy, board it, then a screen would pop up saying Success! Replay?
- Improve movement script to do physics-based movement
- Simple Enemy movement AI – to make the core loop a little harder.
- Enemy attacking player.
- A Config script for the enemy that allowed us to make multiple enemies with different properties (movement away/toward player; how many turrets on their ship, where should they go when they’re idle)
- We really wanted land in our game but was concerned it would be a lot of work making AI avoid it and making it look pretty. Here we decided to just do it and Unity’s Tilemap editor was simpler than we expected and my partner made a great script for AI to avoid running into islands!
- End of Day 2 – Ship moving around a tile-based map, able to find one of the tankers in the field (that had different configurations) and defeat one before restarting.
- Beginning of Final Day – the artist sent us a boss tanker! So we quickly put it in the game (I just used the Enemy prefab, changed the sprite to the new boss, and added a couple more turrets to it. Because of the Enemy Configuration, I had made the previous night, it was easy to set the AI to target the player.)
- My partner worked on polishing the core mechanics – getting the movement to feel better, difficulty to feel fair,
- I worked on lengthening the game: making winning require killing all enemies, adding rewards for killing enemies, and relating the game to climate change (by saying the faster you destroy the oil tankers, the lower the global avg temp will be in the end.)
- End of Final day – Defeat the 5 tankers on the map (including a boss) as fast as you can so the global average temperature doesn’t rise too high.
Overall, I had a lot of fun! It was invigorating to know I could make a game in such little time and I met some great people! I highly recommend trying a game jam in your area.