Plushby Luke Stilson

About Plush#

Plush is a 2D and 3D game engine with a desktop editor, C# gameplay, and Python for authoring and automation. I’m building it for my own games first. I want an engine I understand, with tools I can change when something gets in the way.

What it’s built on#

PartStack
Engine and gameplayC# · .NET 10
Desktop editorAvalonia
RenderingVulkan · Silk.NET · MoltenVK on macOS
ShadersSlang
PhysicsJolt for 3D · Box2D for 2D
Authoring and automationCPython · plupy

The editor and game runtime are separate. Python is for making and changing things in the editor; gameplay runs in C#. An exported game doesn’t need the editor or its Python environment.

How I want to work#

A lot of the design comes from things I like about Blender. Meshes, materials, behaviors, and other shared data should be reusable, with clear relationships between the original and the places it’s used. Plush’s data graph makes those connections visible. I can change something shared, choose what varies locally, and move useful work between projects in bundles.

There’s GLB import and export for models, scene and asset editing through Python, and Git built into the editor: diffs, staging, commits, branches, history, and conflict resolution. There’s a music tracker, too. I’ve used trackers for years, and wanted one next to the game I’m making.

The renderer, physics, scripting, and editor are being developed together, through actual projects and experiments. The integrations page has more detail about the tools and formats, and the API reference covers C# gameplay and Python authoring.

Who it’s for#

Me, mostly. I’ve spent my career making tools that help other people make things, and wanted to own more of that process myself. I like understanding a system, trying something, breaking it, and figuring out why it broke. That’s a large part of why I wanted to make an engine in the first place.

I’m using AI extensively to help build Plush. I want using Plush to be a different matter: ordinary C#, my own assets, and an editor I can operate without an agent. Help when I want it, rather than a requirement for making a game.

If other people want to use it, I’d like to make it available. I’m still building the thing I want to use, rather than trying to promise an engine for everyone.

Release and licensing#

There’s no public download yet. Plush-owned code is currently proprietary, and I haven’t settled the terms for a public release. Pricing, distribution, and licensing are still decisions to make.

The third-party licences cover the software Plush includes. Those are separate from the eventual terms for Plush itself.