Green Engine ▲ In development

Green Engine

The engine written because nothing available would run the game we wanted to make. A C++ core, the game itself in Rust running as WebAssembly inside it, and a world made of separate planes joined by portals.

What it is made of

Eight systems, one game

At a glance

The facts, in one table

Core
C++23. SDL3 for the window and input, bgfx over the graphics APIs, Jolt for physics, EnTT for entities, miniaudio under the audio.
Game code
Rust, compiled to WebAssembly and run by the engine in Wasmtime. One schema file generates both sides of the boundary; the hash is checked at load.
World
Planes joined by portals. Each plane has its own physics and streaming. Large levels are generated from a seed on client and server alike.
Graphics
Vulkan and Direct3D 12 at parity, with ray queries on both. Direct3D 11 as a fallback path. Built to run the full pipeline at minimum quality on an entry-level ray-tracing card.
Sound
Real sound-pressure levels, material-based occlusion, a hearing model on the listener. ASIO and MIDI through one device interface.
Platforms
Windows and Linux
Programs
The game client, the editor, the dedicated server, and a crash reporter
Licensing
Not offered. Green Engine exists to run Backrooms Universe and nothing else.

Built for one game

Green Engine is a purpose-built engine, not a general one. Every system in it exists because Backrooms Universe needs it, the game's requirements are so specific that we needed to build the engine, and it is very unconventional. Levels that never reset, non-Euclidean space, lighting and sound that need to behave realistically in a world that does not follow the laws of reality.

The editor is the authoring tool and renders through exactly the same pipeline as the client, so what an author sees is what ships. The game itself is on the Backrooms Universe page, and the reasons for all of it are on the Vision page.