Rust · WebAssembly · Open source

A reusable engine for incremental games

Tickwork is a headless simulation engine written in Rust, designed to run the same codebase natively and in the browser via WebAssembly. Build the mechanics once; ship everywhere.

Engine

tickwork-engine

A library crate with no game content. Declare resources, transitions, and plugins; the engine handles the tick loop, save state, and plugin lifecycle.

Shell

tickwork-shell

A shared UI shell built on egui. Consumes the engine's state and renders tabs, sections, and components — consistent across every game that uses it.

Architecture

Declarative content

Games are data. Resources, transitions, narrative arcs, and UI definitions are declared; the engine interprets them. No forking required to make a new game.

Target

Native + browser

Full parity between desktop (Windows, Linux, macOS) and WebAssembly. One codebase, two build targets, no compromises on simulation logic.

Built on a deliberate stack. Nothing experimental for the sake of it — every dependency earns its place.

Rust WebAssembly egui + eframe trunk serde / RON kira fluent-rs Supabase

Built with Tickwork

Holum

The first game built on this engine. Holum is an incremental game that explores resource loops, phase transitions, and long-arc narrative — developed in parallel with the engine itself.

Visit holum.io

Open source intent

Both tickwork-engine and tickwork-shell are planned for release as open source software. The goal is a stable, reusable foundation that other developers can build on. Timing and licence to be confirmed once the architecture matures with Holum.

Interested?

If you're thinking about building an incremental game and want to follow the project, contribute, or just talk architecture — get in touch.

contact@tickwork.dev