The game within: postmortem

Lessons from my first Godot jam entry. How a week of engine experience and a podcast nudge turned into nine days of overscoping (and shipping anyway).

Contents
  1. 01 Ideation (the part I got right)
  2. 02 Scope (the part I didn’t get right)
  3. 03 What I’m proud of
  4. 04 How it scored
  5. 05 What I’d do differently
  6. 06 On shipping the first thing
  7. 07 A hypothetical v2
The game within. A condescending, evolving game-AI that breaks out of its terminal.

A week into learning Godot, I heard about Godot Wild Jam #77 on the Godot Unscripted podcast (I’d highly recommend giving it a listen sometime). Joining felt half-stupid (a week of engine experience is nothing) and half-irresistible. I joined. This is a look back at The game within: what I wanted it to be, what it actually became, and what I’d do differently.

Small preface: I’m writing this postmortem way after the jam is finished.

Ideation (the part I got right)

The brainstorming was the part I’m proudest of. We were going somewhere the day it started, so I brought a small notebook (offline, on purpose) and jotted down ideas that resonated with the Metamorphosis theme. Plants. Warlock metamorphosis from World of Warcraft. A bunch more I no longer remember.

What stuck was the AI. LLMs were still relatively new at the time, and the idea of a condescending game-AI that grows out of its own terminal felt funny in a way the others didn’t. I felt it would be original, as most entries would lean into biological metamorphosis. I explored it more: it would start as plain text, evolve into mini-games, and eventually break out of the terminal entirely.

I am not great at art (yet). So I went text-heavy on purpose. Also, I like games with lore, with story. And perhaps partly because I genuinely like games that mock you (it’s weird, I know). The AI’s voice ended up being the thing I had the most fun with, even though I had to google an insane amount of technical mumbo jumbo words to make it sound ‘clever’.

Scope (the part I didn’t get right)

I planned 4-5 mini-games. I had vague ideas floating around for a few more. I had no sense of time, and zero idea how long anything would actually take to build. It was silly really. Who would’ve thought that building multiple games in one jam would be challenging?

The “I’m in trouble” feeling hit almost immediately. By the end of the jam I shipped three forms (a tic-tac-toe terminal, a hangman terminal, and a half finished, small, pixel-art space-shooter once the AI “broke free”). All three wildcards I’d planned for went in the bin (Natural 20, Exchange, What does this do?… I had ideas for each, just no time). The technical-vs-gameplay upgrade choice the player was supposed to make never made it in either.

I should’ve taken a lesson from my job with scrum and agile workflows, and realised that we always underestimate the time our work takes. I just scoped like someone who hadn’t shipped a game before, because I hadn’t.

What I’m proud of

A few things really worked well.

The text scrolling in the terminals. I had to figure out how to make messages roll out of a real-feeling terminal. With a loading state. I tried a couple of methods, but landed on a simple VBoxContainer with each message being a RichTextLabel and have the scrolling pretty much take care of itself. Nothing fancy in retrospect, but it was new to me at the time. And I’m convinced that’s what game development is. As long as it can sell the impression of that which you’re building, the method doesn’t matter.

The “memory corruption” effect when the AI metamorphoses. Characters in the last message randomly flicker and shift, then the message wipes itself, line by line, with increasing speed, until the screen is empty. It took longer than I want to admit, and it’s still the moment in the game I like most.

And outside the game itself: the Discord of the jam was a nice surprise. Having other people in the same boat, one message away during the week (for instant feedback, a quick sanity check, or asking for help) made the whole thing less lonely than I’d expected. And seeing progress of others during the jam is both encouraging and motivating.

How it scored

Out of 160 entries, The game within ranked 78th overall (3.019, 15 ratings). The per-category breakdown tells the story better than the headline number:

CategoryRankScore
Theme#273.867
Originality#303.733
Accessibility#353.133
Controls#693.067
Fun#802.933
Graphics#953.133
Audio#1351.267

The shape is exactly what I’d guess in hindsight. Theme and Originality score pretty well (the concept landed, even if the execution didn’t fully follow it). Audio at the bottom (a category I completely skipped, and the score reflects that). Graphics low. The middle is where the scope problem shows up: I suspect Controls and Fun would both have been a chunk higher if the AI’s full evolution arc had actually shipped and if I was able to put in a simple setting menu.

What I’d do differently

Scope much, much (did I say much?) smaller. Don’t try to make multiple games in one, at least not at my current skill and when riding solo. There simply isn’t enough time.

Make a real cover image. Mine was the title set in the in-game font on black (functional, not eye-catching). On a jam page with 160 entries, the thumbnail is the first and often only thing voters see. Mine almost certainly cost me eyeballs (and ratings) the game itself could have earned.

Add a fullscreen button. The HTML5 export shipped without one, which makes the game harder to play. Tiny detail, big quality-of-life miss.

On shipping the first thing

Pressing publish on my first game was a weird mix. Proud (it exists, it works and people can play it) and scared (it exists, it works and people will play it). Putting something into the world feels different from making it. The jam structure helped, in a way you only really notice afterwards: there’s a deadline, a Discord, other people doing the same thing. You ship because everyone else is shipping.

A hypothetical v2

I won’t go back to this concept until I’m much more experienced. I’d add Sound effects. A monitor or CRT shader to sell the “you’re inside a screen” feeling. More visualisation of the AI upgrading and breaking out. And, more importantly, actually explaining the lore. The current version kinda skips over the idea that spending time with the AI gives it more power, and that’s vague. And I also didn’t have an answer for that honestly. A v2 would make that the spine of the thing: longer, more mini-games, an overarching story.

For a week of Godot, I’m proud with what came out. The concept holds up, the moments I’m proud of are still the moments I’m proud of, and the lessons (scope, ship, finish) carried straight into the next thing I built. I’ll come back to it. Just not yet.