Skip to content
@renew-engine

renew

A game engine in Rust, built code-first: deterministic simulation, Vulkan rendering, and every capability driveable from the command line.
renew — an AI-first game engine in Rust

A game engine in Rust, built to be operated

Deterministic simulation  ·  Vulkan rendering  ·  every capability driven from the command line


CI Nightly checks

License Rust Edition Platforms Unsafe

Start here → github.com/renew-engine/renew


Every capability in the engine is a library with a command-line face and machine-readable output, so a person, a script, or an agent drives it through exactly the same surface. The simulation core is deterministic by construction: same build, same seed, same inputs, same result, bit for bit.

Note

"AI-first" on the banner is about the surface, not the feature list. Everything is headless, scriptable, and emits schema-versioned JSON beside its human-readable output, so nothing about the engine requires a person in front of a screen. It does not mean the engine ships AI features.

Important

Early development. Pre-0.1. Every module declares where it sits on the bootstrapinternalstable ladder, and nothing has reached stable yet — so nothing here is ready to build a game on. What exists is real, tested, and honest about what it is.

Four commitments

What that means in practice
Deterministic Fixed timestep over integer nanoseconds, fixed-point arithmetic in the simulation, no wall-clock reads and no unseeded randomness. Replay and lockstep are a foundation, not a retrofit.
Code-first One binary builds, tests, benchmarks, packs assets, records and replays runs, and starts samples — each command with a --json face. A GUI, when it arrives, will be a client of those same APIs and never a privileged one.
Modular A small required core; everything else optional and removable behind an explicit interface. CI proves it one crate at a time — each optional crate excluded along with its dependents, then built and tested.
Measured Performance claims arrive with numbers and the configuration that produced them. The steady-state frame loop is held to zero heap allocations through the engine's allocators, counted in dev builds.

Start here

Stable Rust 1.97 or newer, and nothing else.

git clone https://github.com/renew-engine/renew
cd renew
cargo build --workspace
cargo run --bin hello-engine

That last command is the proof of life — a fixed-timestep accumulator driven through 60 frames of deliberately uneven frame times, reading no clocks at all:

$ cargo run --bin hello-engine
hello-engine 0.1.0
fixed timestep: 16666667 ns
frames simulated: 60
time submitted: 1245000015 ns
ticks executed: 74
time pending: 11666657 ns

Run it twice. Run it on another machine, or another operating system. Every byte is identical — and that property is what the rest of the engine is built to preserve.

What's in the tree

Twenty-one engine crates, five of them core: diagnostics, the event vocabulary, math, memory, and the platform layer. Around them sit fixed-point arithmetic, the frame loop, an ECS, a job system, seeded RNG, input, replay and trace digests, 2D and 3D physics, a Vulkan RHI behind an interface that names no Vulkan type, 2D and 3D renderers, audio, asset packs, and a dependency-free PNG encoder. Six samples and two tools sit beside them.

cargo run --bin renew -- modules   # the live list, each crate's maturity read from its manifest

Every commit on main clears formatting and a strict clippy deny-set, the full test suite in debug and release on Windows, Linux and macOS, a line-coverage gate that fails in both directions, a module-graph DAG check, the removability configurations above, and cargo-deny over the whole dependency tree — with sanitizers and Miri on a nightly schedule.

Contributing

Issues are the most useful thing you can send: bug reports, questions about why something is the way it is, and cases where the documentation and the code disagree — the last of those especially, since a document that misdescribes the code is treated here as a defect rather than as tidying owed later.

See CONTRIBUTING for the bar a change is held to. The short version: a change arrives with its tests, its documentation, and evidence that it works.


Licensed under Apache-2.0  ·  Brand assets in assets/brand/

Popular repositories Loading

  1. renew renew Public

    A game engine in Rust, built code-first: fixed-timestep deterministic simulation, Vulkan rendering, and every capability operable from the command line. Early development - every module is at boots…

    Rust 3

  2. .github .github Public

    Organization-wide files for renew-engine, including the profile page shown at github.com/renew-engine.

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…