For my second Global Game Jam I was once again second-string programmer on a Unity project, this time on a team of 4 (2 coders, 1 artist, 1 musician). We made a 2D musical puzzle game called Love Nest.
I had a fantastic time, really enjoyed my team and am proud of what we accomplished, especially considering none of us are what you’d call veteran jammers. So if you are my teammate and reading this, please don’t feel bad about anything I say here! It was great! You were great! But there’s value in thinking through specific ways to improve next time (#GGJ20!).
NB: I am still extremely sleep-deprived as I write this.
What went well?
- We ended with a playable prototype! I would call this “winning the jam.”
- We came up with an interesting concept/core mechanic: you are a bird, and the bird you are trying to woo is singing a song composed of the things they want in their nest. You fly around the forest and pick up bits and bobs that each play a different piece of a song. Put all the pieces that are part of the goal song into the nest to win!
- This was only my second time to do anything in Unity, the first being the previous Global Game Jam (where I really just provided algorithm support for the scripts). I was able to come up to speed fast enough and well enough to make meaningful contributions to the game.
- The art! I love the art. This had nothing to do with me, I’m just happy it happened.
- We were chill and humane with each other. Everyone had a say in the creative process, contributed equally as far as I could tell, and worked their dang butts off. Everyone encouraged everyone else to take breaks, sleep, and eat. One of my teammates brought homemade cookies.
- I think I now know what “crunch” is like. This is good because it will help me never ever accept a job anywhere that practices it.
- Bringing my own gear from home, even though it was a huge pain to transport and definitely caused problems, was still way more comfortable than trying to use a rando machine in the computer lab.
What went poorly?
- This was totally out of my control, but I want to talk about it anyway: the theme really threw me for a loop. I came in fully expecting to make a funny game. But then they handed us “What Home Means To You” and… ok. I lost my spouse in 2014, so for me thinking of “home” brought up a lot of really dark feelings of loss, false security, unattainability… I was totally unprepared to have those feelings and I certainly didn’t want to make a game where others experience them! And once I was in that headspace it was really hard to climb back out in order to brainstorm the kind of game I did want to make. Even aside from my weird issues, the theme seemed awfully tonally constrictive. It practically demanded something cozy, earnest, or meaningful and I just wanted to make something frivolous and bizarre. I mean, I’m proud of the idea we came up with! But that was more due to my teammates than myself.
- We picked a game idea that didn’t mesh with our team’s availability. We got this idea for a music-centric game, and we all loved it so much we didn’t really through how our musician would be unavailable most of Saturday. Ultimately it meant we were late into Sunday morning before we had any of the musical assets in game, which didn’t give us time to evaluate (and thus tune or pivot) the core mechanic.
- We picked the wrong engine (Unity) for the kind of game we wanted to develop (2D, pixel-art, simple physics). I mean, we couldn’t have made this in Pico8, but it would have been a great project for Phaser. Using Unity overcomplicated a lot of things (looking at you, sprite animations) that burned up valuable time.
- Technical difficulties: my Windows machine doesn’t have a WiFi card, and the venue didn’t have ethernet access; even though we’d set up a git repository ahead of time, I had no access to it. And passing a Unity project back and forth on a flash drive? Yeah, we (the programmers) wasted a LOT of time trying to merge our changes.
What do I want to do differently next time?
- I want to be lead programmer/architect, especially if my co-programmer is less experienced in software development. I feel like a jerk saying this, because it sounds like “gosh, my fellow programmer sure sucked” and that’s not true at ALL, he made the whole thing possible. But I have the chops to make the technical decisions and I just keep taking the backseat because… because I’m still unlearning that women are only allowed to take support roles, probably.
- I want to work in a code-first engine (Phaser, Love2D, Haxe?), because it’s more fun and I’m better at it.
- More storyboards! We had storyboards for our cutscenes and they were SO USEFUL I wish I’d had them for the rest of the game! Next go-round, before we even boot up, I want storyboards for the core elements–and I mean, there might only be one or two, but that will get us all on the same page of “What does the screen look like? What is the core mechanic? What happens when the player does X?”
- More process. Not much more, because 2 days, but I do want (a) a post-it kanban board and (b) micro-standups, maybe twice a day, or whenever someone comes back from a nap. With everyone working around the clock but bowing out at random intervals, it would be nice to just look at the wall and see our status. If there’s only one programmer on the team it’s not nearly as important, granted; on the other hand, sleep deprivation destroys your memory, so writing down ideas and sticking them to the wall is a lot easier than trying to keep them all in your head.
- More pre-setup of the development environment. Have a backup workflow figured out in case of internet outage.
- Rather than haul in my whole stupid tower, just bring my laptop, keyboard, and monitor. This constrains us to using tools available for Linux, so, see previous bullet.
What still puzzles me?
- Is this game fun? Or does it at least have the potential to be fun with some fine-tuning? I haven’t actually gotten to play it yet!
- What kind of game IS Unity well-suited for? Or am I just drawing false conclusions about its usability because I just don’t like it?
- How can I help coders who aren’t used to sharing a codebase learn the rhythms and idioms I take for granted?