Building Galley House | Evil Trout Inc.
Building Galley House
Evil Trout’s second game, The Incident at Galley House, is<br>out now on Steam!
Last year, after The Roottrees are Dead shipped, I wrote a<br>technical blog post<br>about its development, which was well received, so I decided to do the same<br>thing for this game.
Note: The images in this post have minor spoilers for the beginning of the game.<br>If you want to be 100% spoiler free, now’s your chance to run away.
Contents
Starting from the Web
Controlling the Machine
Builds
Build Sidequest: Video Memory and Quality Settings
Godot: Still a Great Choice
Development Philosophy
Spreadsheet Driven Development
Rendering the Machine
The Scene Tool
Priority Rendering
Internationalization via Rube Goldberg Machine
Final Thoughts
Starting from the Web
The Incident at Galley House is a re-imagining of<br>Type Help, a text game released for<br>free on itch.io in 2025. It was quickly acclaimed by fans of mystery<br>deduction games, and is currently<br>the 2nd highest rated game<br>on the Interactive Fiction Database.
A screenshot of Type Help
Type Help was designed by William Rous using Twine<br>and exported to HTML. I reached out to William in early 2025, shortly after<br>Roottrees was released, when I wasn’t sure what to tackle next. Fortunately<br>he was enthusiastic about partnering up, and work started in earnest in the<br>Spring of 2025.
HTML is a great way to prototype a narrative game. You can email around a<br>single document and it can run on virtually anything. It’s also very easy to<br>parse. It only took a few hours to extract all the HTML data into a format<br>our game engine used.
In Autumn 2025, when we decided to add extra content beyond the original<br>Type Help, William brought out Twine again for it, despite us having a more or less full<br>working game engine for Galley House at that time.
We went through several major passes of the new content and puzzles in Twine,<br>and even brought in trusted external testers to try it out. It was a great<br>way to work. Art and voiceover are expensive to produce compared to a little<br>HTML file, so it makes way more sense to get a fun prototype working before<br>entering full production.
Controlling the Machine
After Roottrees shipped, I spent a little while trying to figure out how it<br>could work on a controller. I was never really happy with any of the<br>prototypes I came up with, because so much of the game depends on typing in<br>web searches to a fake search engine.
In Type Help, the core gameplay involves entering filenames into an old<br>computer. When you find a valid file, it is displayed to you. This is still<br>typing, but the components of the file name are finite, and I thought it<br>could be a much better fit for a controller interface.
I mentioned this to Jeremy Johnston (designer of The Roottrees are Dead and<br>now a member of Evil Trout Inc.), and the next day he brought me the idea of<br>the machine: a physical contraption players can use to enter codes in<br>Galley House. I’d been thinking of drop downs and checkboxes,<br>but his idea was that you could play with<br>something tactile in 3D space, turning knobs and moving levers. It was such a<br>great idea! We pitched it to William and he agreed; it was amongst the first<br>things we designed for Galley House.
An early sketch of the machine
This is a perfect example of good design coming from constraints. With a<br>mouse and keyboard, it’s trivial to input a code. But it’s so much more<br>fun for players to mess with a physical thing and see how it reacts.
Builds
For Roottrees, I ran all builds on my Windows desktop, using Godot’s export<br>templates for Windows/Mac/Linux. You can even codesign your Mac binaries<br>using rcodesign.<br>However, I discovered a big limitation of cross-building this way: shader<br>baking.
From the Godot Docs:
The editor running on Windows can export shaders for Vulkan and Direct3D 12.
The editor running on macOS can export shaders for Vulkan and Metal.
The editor running on Linux can export shaders for Vulkan only.
I highly recommend baking shaders for your game to reduce the initial loading<br>step, as well as stutters during gameplay. Unfortunately, this means if<br>you’re targeting Direct3D 12 on Windows and Metal like we were, you’ll need a<br>Windows machine and a Mac.
Windows Build Server : I picked up a<br>Minisforum MS-02 for<br>Windows and Linux builds. It runs Windows 11 and a self-hosted GitHub<br>Actions runner. When you push to a beta branch it will trigger a build and<br>push it to Steam. I’m a sucker for little computers like this, and it has<br>a lot of power under the hood.
Mac Build Server : Mac Minis and Studios unfortunately became really hard<br>to get thanks to the global memory shortage and interest in<br>personal AI assistants. Almost all models and configurations were<br>sold out, but I did manage to order an M4 Max Mac Studio which took 6 weeks<br>to ship despite being last year’s model. It’s a sweet little box...