Devlog
Notes on the engine, game and tooling decisions behind my projects: what I tried, what I chose, and why.
Games in their own repositories: separating Hydro from its first game
Hydro, its editor and its first game all lived in one repository. The plan to give every game its own repo, the 16 couplings in the way, and the first five steps.
Making an engine readable to AI agents
Hydro has 500+ source files and strict house rules. Here is the harness that lets Claude and a local Qwen model work in it without guessing.
Rules, views and a game session: structuring game code
How the diorama RPG keeps its battle maths testable without a GPU, its UI dumb, and its run state alive across scene changes.
Game content as data: Hydro's ScriptableObjects
Dialogue, items, quests and enemies moved out of C++ into reflected definition files and tables, edited in the inspector.
From editor to an .exe: the first standalone build
Splitting game code out of the editor, a small runtime that plays one project, and a build button in the editor. Deliberately not an asset pipeline yet.
A street lamp is one thing: scene hierarchy and runtime UI
Parent-child entities and a real UI system, planned against two plain goals and built in two days. The decisions that kept it small.
Walkable dioramas with Jolt: capsules, ramps and gameplay shapes
Moving from bounding boxes to real 3D collision with Jolt Physics, and the two rules that made it simple.
Why I dropped the toe of the tonemap
A small HDR decision with a big effect on pixel art: keeping the darks exactly as the artist painted them.
Shadows for cardboard characters
One shadow map for the sun, sprite casters that turn to face the light, and a lookup trick so a sprite is never darkened by its own shadow.
Pixel-art sprites in a 3D world: upright cards, cut-outs and depth
How Hydro turned a flat 2D village into a diorama without rewriting the scenes: a facing mode per sprite, a depth buffer, and one discard.
Where runtime state lives: four rules for components in an ECS
Settings, per-entity state, library-owned state and derived data each have one home in Hydro. Deciding that once removed a whole class of bugs.
56 issues: what a full engine review found
Before adding features, I reviewed all 6,000 lines of the engine and editor. Six critical bugs, a swapchain split, and RAII for every Vulkan resource.
Four years of Hydro: from a Vulkan triangle to an editor
Hydro started in July 2022 as a window and a validation layer. A look back at four years of a side project that kept getting picked up again.
Building a game, an engine, or the tools around them?
I'm based in Tokyo and open to conversations about Unity, C++ and engine roles, C# and .NET software roles, and teams that want to put AI agents to work on real codebases.