← Back to the portfolio

My game engine · In development

PlushEngine

I wanted a game engine where I could follow an idea all the way through, understand what was happening underneath, and change the parts that annoyed me. So I started building one.

A factory game scene open in PlushEngine, with the reusable sentry library, shared object graph, and inspector visible
A scene, its reusable objects, and the connections between them.

The data model

Make it once. Know where it goes.

Blender’s datablocks made a lot of sense to me. A mesh, material, or behavior should be something I can reuse, with a clear relationship between the original and everywhere it’s used.

In Plush, I can change a shared object and have that change reach its uses, while still choosing what varies locally. The graph shows those connections. Bundles let me take useful work into another project. I want to spend less time wondering which copy of something I’m editing.

Shared meshes, materials, and scripts connected in the Plush data graph
The relationships are part of the editor.

The engine stack

What’s underneath

C# for the engine and gameplay, Python for authoring and automation. I like having ordinary code I can read and tools I can change.

Engine & gameplay
C# · .NET 10
Editor
Avalonia
Rendering
Vulkan · Silk.NET · Slang
Physics
Jolt · Box2D
Authoring
Python · plupy
Game builds
Separate runtime; no editor or Python

Help when I want it

MCP tools let an assistant inspect the project and help with setup or scripts. I’m using AI extensively to build Plush, but I want to make games in it without needing an agent to operate it.

Room for the things I enjoy

There’s a music tracker in the editor, too. I’ve used trackers for years, and wanted patterns, instruments, and the game in the same place.