Paternoster: My 2025 game jam game

I took part in the GMTK Game Jam 2025.

The GMTK Game Jam is an annual game making marathon, where individuals and teams try to make a game that fits a theme, in a super short time period.

I had four days to build the whole game. But since I also had work and other commitments, it was really more like one evening and two full days of coding, modeling, and composing.

Play the game

About the game

A paternoster is similar to an elevator, but the cabins don’t stop at specific floors, they just slowly loop around in circles.

In this small game, it is your job to help the passengers safely enter and exit the paternoster cabins. This might grow into a bigger challenge as more passengers want to ride the paternoster.

itch.io page

About the journey

I started with brainstorming some ideas. The theme was “Loop”, and the first thing I thought about was time loops. But then I thought: “that’s probably the thing everyone is gonna make”.

So I went back to brainstorming. Here’s a glimpse of my thought process:

  • what are other things that loop?
  • trains!
  • what about a metro network
  • a pidgeon riding the metro and fulfilling quests
  • no, that’s not good
  • a murder mystery on the metro?
  • probably too hard to make
  • are there other transport vehicles that go in circles?
  • paternosters!

After that, everything else came together. I sketched what I want the game to look like:

Open notebook lying on a wooden desk next to a keyboard and a pen, showing brainstorming sketches and notes for the game jam. The left page has rough UI sketches with labels like "2D Block Riddle", "2D Sidescroller", and "3D mit Filter". The right page is labeled "Game Jam" with a list of ideas including Captcha Game, Deduction, and Paternoster, along with a detailed sketch of the paternoster lobby scene.

You can see that I wanted to add a cutscene at the beginning, where the grandfather-elevator tells its grandchildren about his grandfather who was a paternoster, but that didn’t make the cut. Four days is just not enough time.

The prototype

After the idea was done, I started Godot and built a prototype of my idea.

Screenshot of the Godot editor showing the early paternoster prototype: a 3D scene with a single cabin loop visible in the viewport, and the scene tree panel on the left showing nodes for the Paternoster Chain, Channels, DirectionalLight3D, and Camera3D.

The textures are really rough, the lighting is bad, and the buttons control all passengers at once. But the paternoster cabins were loopin’, so that’s something.

Debug build of the game showing the lobby interior with two paternoster shafts side by side. Three blue stick-figure passengers stand in the room, each with a small thought bubble above their head. The white things hovering over the heads are “thinking bubbles”, which later became the key hints when a passenger is ready to jump.

The models are quite simple, just a cylinder and a sphere for the human, and an extruded cube for the paternoster. I planned to replace the human model later with something more realistic, but then I felt like it fits into the game quite well and only tweaked its size a bit.

Blender 4.5.1 LTS showing the passenger character model in orthographic front view: a simple purple cylinder body topped with a sphere head, labeled "Human" in the scene collection.

Day 2

On the next day, I had some time to update the textures, tweak the passenger sizes, and the jump physics. It already looks promising: Debug build showing the lobby after adding updated textures and lighting. The room has tiled ceiling panels and a wooden floor, and many blue passenger figures are queued along both sides waiting for the two paternoster shafts. Unless you keep the game running for some time… Debug build showing a passenger spawning bug: the lobby floor is completely covered by a massive pile of hundreds of blue passenger spheres, nearly filling the room up to the ceiling.

Apart from the obvious problem, I noticed that the game is not that colorful. So I took the last two hours of the day to add some colors, textures, shaders and a wall clock. Debug build after adding colors and decorations: the passengers are now rendered in various colors (red, green, blue, purple, teal). On-screen key hints show "[A] to enter / [D] to exit" on the left and "[J] to enter / [L] to exit" on the right. A wall clock is visible in the background.

Day 3

After a good night’s sleep, and finally a full day with nothing else to do but develop, I started implementing the details.

I added a state machine (you can see the debug state on the right side), which allowed me to build a tutorial. It advances to the next text when it detects that you did the action successfully. Debug build showing the in-game tutorial text overlay: "Press [A] if you think it's time to hop into the paternoster." The state machine debug label "STATE: TUTORIAL_A" is visible in the top-right corner. This was also the day where I created the soundtrack. It was quite obvious to go for elevator music, slightly jazzy but distorted by the subpar speakers.

I used FL Studio for this, which I got in a Humble Bundle sale for a good price.

FL Studio 64 showing the Paternoster soundtrack project: the playlist editor with multiple instrument tracks (Piano, Fluffy Flute, and several others) and the piano roll editor open at the bottom with green MIDI notes.

For the sound effects, I used sfxr, which can generate cool retro sounds, and some samples from freesound for the mechanical noise.

The final day

This was the day for bug fixing and polishing. Perfectionism? You’ll need to put this aside for a game jam. The code and architecture are fine, but not how I would do it if I had more time.

The first thing I did was overhauling the GUI, and adding a small intro.

The game's intro screen: a dark lobby background with the title "PATERNOSTER" in large letters, the byline "by vigonotion", and the flavor text "Before the elevator was invented, people used the Paternoster to travel vertically. The cabins travel around in a loop all day long. Some say it was dangerous, but surely you would have done just fine." followed by "Press A to start the game."

Some bug fixing later, I had a couple of hours left before I had to turn the game in. This was the time to add some decorations: I modeled a quick plant, made some signs, and added a painting. Final polished game screenshot: the lobby now has a potted plant in the corner, office signs and a painting on the wall, and a wall clock above the paternoster shafts. A tutorial prompt reads "Press [A] if you think it's time to hop into the paternoster."

Then, it was time to publish the game. That means no more editing, no tweaking, nothing anymore. The game was done. That’s something what was surprisingly hard and yet refreshing for a side project. Other projects never get the “done stamp” and stay in progress forever.

It was a really cool experience, and having something that I can show others now feels really good.

Rating and placement

After the jam, the rating period started. It was time to rate other games, and read the comments of other people rating my game. They were really nice to read and gave me a real sense that it was all ‘worth it’.

In the end, my game did not win in any category, but for my first solo game jam game, in a jam with 9,605 entries, I feel like I did quite well:

GMTK Game Jam 2025 results table on itch.io for Paternoster: Creativity #847 (4.059), Enjoyment #1718 (3.471), Audio #2452 (3.118), Narrative #3038 (2.529), Artwork #4212 (2.941). Ranked from 17 ratings.

See you next year?

I hope you enjoyed reading about my journey, and maybe motivated you to build your own game or take part in a game jam. I think I’ll take part in the next jam again. It was a fun experience, and the four-day timeframe felt long enough to avoid stress, even with a full-time job.