Game Jamming in 2022
Here's my report on doing a 2-week game jam that started on the first day of the year.
Let me summarizing by saying I loved the team, had a great time, learned a ton, and would love to work with any/all of them again. So if any notes here seem critical, it's from a perspective of appreciation and self-improvement. Game jams are fast-paced and it's not fair to judge every decision while relaxing in an armchair weeks later. However, I hope some insights from that armchair can improve my suggestions next time around.
January 1 & 2: Opening Weekend
The team introduced me to great tools for concept design, and we put in a lot of details to a Miro board. This is a great tool that is the equivalent of a whiteboard where everyone gets a marker and nobody gets elbowed out of the way.
One thing that was a drag for me at this point is that we spent over 3 hours each day, but actually didn't discuss development tooling at all. In my opinion, we should have worked more technical discussions in early, either in the first day's meeting or even prior to the jam.
I think the "kind" of game we were going to make (framework, engine, etc) was essentially disconnected from the jam's theme, so we could have put together "Hello World" and got the toolchain building at any time.
January 3 - 7: Working Week While Jamming
it seems appropriate to treat the weekdays as equal to a weekend, especially since I kept working my usual schedule for my day job.
Thanks to the miracles of Git, I can rewind the app and easily show the appearance of the app at the start of the week:
and at the end:
The game really took shape quickly, I think: the initial concept for the interface stuck entirely.
Some of the features aren't visible: The global state, that allows tabs to have effects that show up on others, ended up as A decision we would come to regret. In terms of game content, almost every piece of data is stored in a single gigantic file. We had originally broken it out into modules, but this is verbose and didn't feel very game-jammy. Just a week later, though, we would be feeling the clutter of a single global store.
At the end of Friday, our project had 24 commits.
January 8 & 9: Midpoint Weekend
I had family visiting, and the team was very accommodating, with contributions being pretty unscheduled and "as available". This is one thing our team did right, at least for our circumstances: while I feel our team had lots of emphasis on the professional portfolio value of a completed project, it still had the severity of a hobby project. I truly did try to put every free minute towards the jam, but I never felt any guilt when baby or chores kept me away from the project, even during the few precious hours when our timezones all aligned.
I got to work on some cool backend-ish stuff, like consistent formatting functions for large numbers (which filled me with ire, at first) and the data-munging behaviors of the game logic.
When we met this weekend, I felt like the conversation was between the "developers" and the "designers" on the team. To some degree, I felt like we were reassuring the designers that at least most of the features we planned would be done in the next week. There seems to be a lot of "plumbing and wiring" at the start of the project, which can make it seem like not much is happening. With the right initial setup, features can pop up quite quickly, which matches my experience in the week that followed.
End of weekend:
We ended the weekend at 50 commits.
January 10 - 14: Jamming and Working While Mother-in-Law Visits
This sounds like a much more dramatic setup than it realistically was. Our kid was (and still is) quite young, and having an extra adult around, especially one who was so happy to pick up and hug the baby, was a great help. Mostly I am an awkward bystander when my wife and her mom are hanging out, so the game jam was a great reason to excuse myself from awkward non-socializing.
Thanks to the team's accommodating contribution policies, I never declined to take the baby: game jam dev could always wait for baby's next nap.
Our lead developer continued extensively tutoring and assisting me. I made some Vue components myself, wrote game logic, and got my vengeance on the number formatting that vexxed me.
It stayed in our released game, past me.
On more than one occasion we were interrupted by my kid, or I felt the embarrassment of being unable to finish an obvious line of code while screen sharing. Between my job and my family, I was pretty exhausted. I'm happy with the contributions I was able to make, but in hindsight I was definitely burning the candle at both ends.
We submitted on the 14th, with some hours to spare, since timezones basically prevented any of us from working straight up to the deadline.
We ended with 111 commits to the repo.
The only changes to the repo so far are licensing, so we can release our code publicly.
We have open issues, which the team put together a few weeks after the jam.
I'm also incredibly interested in reusing the codebase, to cement the skills I learned during the jam and jazz up my rather blocky and bland web applications, like this spartan, functional app I use in my own house:
I had a blast using Vue, Nuxt, and Tailwind. As a programmer that's most comfortable at a shell or console, I will probably look into some more simplified frameworks, since I don't have the designer's eye to make use of all the firepower these tools gave me.