Shuyi Engine
An open-source 2D game engine in Rust, built so that you and your coding agent can make, run, see, test and replay a game without a window and without guessing.
Early, and not yet released: it runs one game today, Visions of Shuyi, and one example, and its API still moves.
Features
Ready works today · In progress partly there · Planned has a ticket
-
Data driven
An optional ECS: components as plain structs, systems as functions, queries and a parallel schedule that keeps replays the same. Plain structs stay the default.
Planned Tickets 2904, 2107 and 2108
-
2D renderer
Sprite sheets, texture atlases, cameras, rotated and tinted sprites, shapes, nine-slice pictures and materials, on a skin that never touches the rules.
In progress Tickets 2332, 2222, 2335–2338
-
3D renderer
Lights, shadows, meshes and glTF, in fixed-point space so 3D stays deterministic, and HD-2D as a skin over a 2D game.
Planned ADR-0011
-
Render graph
A renderer on wgpu, not tied to one graphics API, with a graph of passes a game can extend.
Planned Tickets 3034 and 2331
-
Animation
Clips from sprite sheets, state machines, 2D skeletons, and glTF animation with blending and morph targets.
Planned Tickets 2104, 2105 and 3110
-
Cross platform
The desktop and the web today, then the Steam Deck and the Playdate, each a platform backend. Mobile is planned.
In progress Platform backends
-
UI
Screens, menus and widgets that say what to show, with layout in the style of flexbox, declared in code or in a file.
In progress Tickets 2309, 2310, 2329, 2330 and 2355
-
Scenes
Save and load whole worlds as text, keeping their ids, with instances and live reload.
Planned Ticket 2221
-
Sound
Cues with variants, fades, crossfades, looped sounds with handles and streamed music today; groups with ducking, and positional sound to come.
In progress Tickets 3029, 2341, 2342, 2343, 2344, 2345 and 2394
-
Hot reload of assets
Change a map, a sprite or a line of dialogue and see it in the running game, for every kind of asset.
Ready Ticket 2220
-
Hot reload of code
Change a game's code while it runs. Research first, on what Rust allows.
Planned Ticket 2905
-
Fast compiles
A new game rebuilds in about a second on Linux and two on Windows, on stable Rust, and CI holds every change to that budget.
-
Free and open source
MIT or Apache-2.0, at your choice, with only permissively licensed dependencies and assets.
Ready The licenses
-
Deterministic, with replays
The same seed and the same inputs give the same game on every platform: replays, bug reports, bots and tests rest on it.
Ready ADR-0002
-
Made for coding agents
One tool contract as a CLI, an MCP server and Agent Skills: an agent starts, plays, reads and pictures a game without a window.
Ready The tool contract
-
Targets as data
Each export target says what its hardware can do, and a game that needs more doesn't export there.
Ready The targets
News
-
The website is up
Shuyi Engine has a home: what it is, its examples, and what is coming.
Sponsor
Shuyi Engine is free and open source. Ways to support its work are coming.