Game Jam Postmortem - Part 1 - The story


Hi! Neil here.

I had a lot more fun at this game jam then I expected. I went with a number of co-workers and fully expected them all to choose their own teams of projects. I was pleasantly surprised that a few decided to join me in making something. While they were not able to dedicate the entire weekend to the project, I believe a good time was had by all.

What is this post? It is a part of a whole that includes a story of what we did, a tech-breakdown and a bit of an outlet for what could have gone better. I'll start with a timeline of the events in this post, follow it in another with a bit about the tech choices made and wrap up with the sad stuff. Strap in!

It started on Friday night with meeting a few of my co-workers outside the venue. We quickly decided that a team up was likely and that none of us really wanted to lead, which is hilarious in my mind. The theme was announced and we got straight to work with ridiculous ideas. Someone mentioned pigeons from I have no idea what part of their mind. I jumped on it since I have actually been talking about making a pigeon pooping game for YEARS. Fast forward an hour and we had set up all of our tools: a Trello board, GitHud repo, Unity project and even started on assigning tasks. Dylan and I started prototyping the Minimum Viable Product (MVP) while Nick start on Unity tutorials. A couple of hours in and we called it a night. At that point we had ground movement, the flapping portion of the flight physics, a basic camera controller and a low poly pigeon modelled and animated.

Saturday rolled around and I started to work on integrating our prototype movement code into a single quick and dirty controller. Nick wrapped up his Unity tutorials and was ready to help with mechanics. Sienna had finished the last of the animations and built some vehicles and a balloon. I guess at this point I should explain WHAT we were building. We had decided on a deliberately low poly and low resolution game where you controlled a fat pigeon who struggled to fly. The pigeon would have two primary interactions, pooping and dashing. You would fly into balloons to pop them and cause mischief. Now, onwards with the timeline.

Nick wrote up a couple of simple components to cause the balloons to bob up and down and to allow the bird to fly into them and pop them. Afterwards he got to work on making the pigeon be able to poop on things. Meanwhile I wrapped up the integration of the controller, gave it some forward momentum while flying, and finished up the animation controller and it's triggers. By midday we had the skeleton of a game and it was hilariously fun to fly around this fat, barely airborne pigeon. Nick finished up the interaction components while I built a really basic street with buildings. We had chosen to use Kenney.nl for art and downloaded the Modular Building pack. It made for a simple but compelling environment in our low-res scene. By the end of Saturday we had all the core parts, but no game yet. We figured we would leave that until Sunday.

Sunday came and I was presented with a choice. After cleaning up the various bits we had thrown together I could either: build the core loops of a game OR polish what we had and leave it as a free-form sim/playground. I really wanted the bird pooping to be better and had some ideas so I chose the second option. I spent Sunday morning building out the basic street with more balloons and putting in the rest of the cars that Sienna had made. After that I built a decal system to allow for a much more complex and compelling splat visual. Once the particle system was overhauled it really started to come together and look great. 

On a whim I made the 'dash' action stretch the pigeon out on the z-axis. It looked... ok. Then I remembered the basic animation theory of squash and stretch. That was what was wrong, the stretch alone wasn't enough. After shrinking a bit on the x/y axis as well as stretching it looked great! Once Dylan saw it he had the brilliant idea that I should add automatic pooping to the dash action. That took almost no time and was immediately awesome.

To wrap up Sunday I added more to the level, created a 'jewel' pickup just because, and built a spawner to recreate the balloons and such so that there would always be something to do. I rounded everything out with an NPC pigeon who did random actions, an 'attract' idle state for the player pigeon, and a limited 'ammo' clip that recharged. I was done by 6:30 pm Jam night and ready to create final builds. I was so surprised by how well it translated to a WebGL build and how well it played.

With that, it was done! Come back for the next one where I'll talk about some of the choices we made while writing the code, and what interesting bits there are to see.

Leave a comment

Log in with itch.io to leave a comment.