Dear Reader,
Alcohol is a hell of a drug.
It’s night. I’m sitting and drinking my Jura. Relaxing with an episode of “Narrow Escapes“, a show life on Britain’s inland canals.
Tonight’s feature is about a pair of young canal boaters: Amy is a game streamer and Wes is a game level designer.
Everything is going swimmingly until Wes says1:


So I goes PFFFFFFTTT I BET ITS GOING TO BE A GRITTY CANAL BOAT GAME!!!!
And… and then…
And then in my addled state I go
🧠 Pff ff ff t, I bet… it’s going to be a… gritty… canal boat game. 🧠
Days later, the idea stuck and wouldn’t leave… so I went and made the game!
I’ll tell you all about it. But first you gotta play the game. Crank the volume up. Go on. I’ll wait until you finish:
Now, you can’t judge the game harshly because it is a prototype.2 For the full epic story of making the game, read on:
Previously, I created a stunning true-life 3D simulation of life on a Victorian London street. So I had mastered a game engine and could make the boat game real quick.

I figured “how hard could it be?”
Just steal some aerial photos of canals, slap invisible 3D walls on the canal’s sides so the boat bumps against them, make the camera follow the player from above and 💲💲💲💲💲💲’yknow?
Except, I don’t know how to use actual 3D modeling software.
Nevermind. There must be a simple way to create those 3D canal borders. Apparently “Paint 3D” is great for beginners like me. Oh, what’s that? It’s been discontinued you say? Well, I’ll go on a quest to download an old version and what is this extruded sausage nonsense?

It’s fine. No worries. Maybe we’ll represent the borders of the canal with these things called heightmaps so it’ll kinda make the walls happen on their own?

Ummm… no?
Well, lets try a whole bunch of things and oh Sweet Jesus of Nazereth:
So, Dear Reader, how far do you think that one should go for a joke game conceived in an addled state of mind?
Pretty flippin’ far I tell you.
I had to get serious.
Learn to develop with a Real Game Engine™.
Man up.
Hit the gym.
I reviewed a variety of engines and decided to use a popular engine called Godot. I called up my developer friend Chad G. Petey and we set to work on this gritty canal extravaganza.
From start to finish, the whole game took 2 months and 22 days to finish. This includes the “false start” with the CopperLicht engine that I knew from before. Working in the evenings for about 2 hours a day.
Getting the thing to just function as a Web game on mobile took a lot of tweaking. Getting it to work well took even more. This part was so challenging that I wrote a separate article with all the tricks for exporting a Godot game to HTML5 on mobile.
The game itself takes just 3 minutes to complete3. I think of it as my month-a-minute game as each minute of gameplay took a month of dev.
What I learned as a game tycoon
- I am astonished at how powerful and straightforward the Godot game engine is. In my career, I have seen the perfection that is Excel and Salesforce.com. But I didn’t realize that other industries also have heavyweight software that’s just a pleasure to use.
- The “fun” element makes game development different from other kinds of programming. The game code might “technically work” but that doesn’t accomplish the mission of being fun. You have to keep playing and perfecting an enjoyable formula. There’s real challenge and magic here.
- Once you get one game level working, with the core dynamics dialed-in to be fun, building out additional levels feels very simple.
- You can get away with a lot of mistakes if you keep the player moving fast and focused on a certain part of the screen. For example, Canal Carnage is missing portions of the background, but you wouldn’t notice because you’re focused on escaping the tsunami. You’re not looking around at leisure.
- You can keep polishing a game forever. I’d like to improve the animation of the explosions, move the health meter next to the player, add a leaderboard + timer for calculating how fast you completed a level, add mobile boat enemies, create a proper splash screen, and and and and… all of these tweaks take time and push out the launch. You need to be disciplined and stop yourself.
- It was very difficult to publish the game as a mobile-friendly HTML5 game. This drove home that you really need to know the internals of your game engine. For game developers, this presents a real barrier to switching engines.
- I gained an added appreciation for the work of artists. For example, while finishing up the game, I watched Alien: Romulus and I could spot certain tricks that the director/writers used for heightening tension. These elements were completely unnecessary to the story, but I could see them using the same cheap tricks that I used to heighten urgency. (“There’s a xenomorph attacking her in the elevator shaft! Oh no, there’s also a face-hugger that joined the fight!!! Now she’s really done for!”)
- ChatGPT set me up with all the boat dynamics, vector velocity, rotation, friction from water resistance, applying drift as an additional vector… I wouldn’t be able to figure this all out myself by reading tutorials (unless there’s literally a “boat controls” tutorial). I moved very fast. Also, by using ChatGPT I missed out on learning the underlying physics of the game. But, frankly, I don’t have any interest in that.
- When ChatGPT fails, it looks like the conversation going around and around in circles. It takes some time to notice when this is happening. At that point, Youtube videos become invaluable. I especially benefited from the videos Godot particle emitter tutorial and Godot Control Node (UI) masterclass.
- If you want to be the best at something, just pick a weird niche that nobody would ever want to build something in. Like gritty canal boat games. I’m truly #1 in this space. For more “useful” life advice like this, subscribe to my RSS feed.
- I vibe-coded a game in 3 months that an experienced developer could’ve made in a weekend. Take from that what you will.
- Both my friend Rafal and I were surprised that the child-oriented Kidscancode Godot tutorials had genuinely valuable information that was unavailable elsewhere.
Game Soundtrack
Here is are the music credits for all the scenes in the game4:
Level 1
The track “Turbokiller”, shamefully stolen from Carpenter Brut
Level 2
Klasey Jones – Romanova
Smoke break at the canal locks
Level 4
CRYPT – PSYCHO [INSTRUMENTAL]
Level 4, redone on massive amounts of drugs
Hannah Laing – Poppin’
Interlude at the boat dock
Midnight Premiere – Your gaze
Background music in Yakuza nightclub where you lock eyes with a new, younger boat
Scene where the hot new boat dumps you because of your hero complex. You limp back to your old battle-boat.
Danz CM – I don’t need a hero
Scene where your old boat takes you back. (Jeez, you better not blow it again. You’re a real piece of work.)
Funny Falentine – Together
Boss battle where you have to defeat L.T.C. Rolt on the bridge of the canal boat. He’s dressed head-to-toe in Gucci and you a scrub.
Game victory celebration music
Dylarama – Comme des dominos
Credits roll – you and your canal boat are relaxing in the sauna
Credits
Closing words
Want to play a better canal boat game in glorious 3D?
Try Narrowboat Simulator by Michael Donning!