Skip to content
Joe Bryant

The workshop · Games / personal

Vowmarsh

A dark comedy RPG about a South London wedding and a town that has done this before. It started as a wedding present and turned into thirteen months of learning an entire engine.

Status
concept
Year
2025–
Role
Everything
Team
Solo
Timeline
Thirteen months and counting
Engine
Godot 4.6
Stack
Godot 4.6, GDScript, Aseprite
Fig 01 · Vowmarsh, a town that has done this before
Fig 01 · Vowmarsh, a town that has done this before
Scripts
107
Dialogue files
393
Endings so far
3
Core NPCs
15

It was supposed to be a card

Two friends were getting married. I thought I would make them something better than a card: a small game, a few jokes, their faces in pixels, done in a fortnight.

Thirteen months later there are 107 scripts, 393 dialogue files and three endings.

The premise stayed the same the whole way through. You arrive in Vowmarsh the day before a wedding. The town has done this before, many times, and has opinions about how it should go. You have a day to get through it, and everyone you meet wants something from you first.

What made it grow

  • The jokes need a system. A one-liner in a card is free. A one-liner that fires only if you already met Glenn, and only before the speeches, needs a dialogue tree, a flag, and somewhere to keep both.
  • A town needs a shape. Once there is a square, people expect a shop, a station and a pub. Each one is a scene, and each scene wants to remember what happened in it.
  • Three endings is really three games. Everything you touch has to survive being reached from three directions.

Learning the whole pipeline

I had never opened Godot. The list of things I did not know turned out to be the actual project: tilemaps, a hub-and-scene structure, autoloads for shared state, dialogue as data rather than code, save games, input locking so a cutscene cannot be walked out of, and how to make flat pixels look lit.

The village noticeboard in the square, pinned with cards reading Yoga Tues 6pm, Plant Swap Sat, Lost Goose (again), Litter Hurts, Quiet Please and Cake Sale.

The parts I am happiest with are the boring ones. A single SignalBus autoload means a scene never has to know which other scene is listening. Errands live in their own manager, so a quest is a data file and not a special case buried in a scene. The dialogue is JSON, which is why there can be 393 files of it and why I can still find anything.

A dialogue box over the square with a hand-drawn portrait of Glenn, who says: the scoreboard appears to be malfunctioning, those aren't the numbers I called.

Where it is

Unfinished, honestly. The town is built, the systems hold, the three endings exist and the wedding it was made for has been and gone. It is the project I keep going back to, which is roughly the opposite of how a wedding present is supposed to work.

The same job as the paid work

Nobody commissioned this and nobody is paying for it, which makes it the clearest example of the thing I actually do: somebody says a sentence, and then comes the long boring part where it has to be finished.

The ending card on a station platform strewn with confetti: THE LAST TRAIN. Joey Marsh left on the Sunday train, which stopped specially. Somewhere past the marshes, your phone buzzed once. Horrible hour. New town. That's traditional.

The web work is the same shape with a deadline attached.

Keep looking

01

Leo Catering

Leo grew from a small Sydenham cafe into an events caterer. I built one page where real plates carry the weight, four kinds of event share one voice, and the only route out is an enquiry with a date and a guest count.

Year
2026
Sector
Hospitality / catering