Roadmap

Loft is under active development. Everything documented on the language pages works today. This page describes where the project is headed.

The project goal is browser games that anyone can play via a shared link. Native OpenGL is supported for desktop enthusiasts. Server and multiplayer features come after the single-player browser experience works.

VersionHeadline
0.8.4Awesome Brick Buster — a game worth sharing
0.8.5Working Moros editor — paint hex scenes in the browser
0.9.0Fully working loft language — feature-complete + verified
1.0.0Totally sure everything works — IDE + multiplayer + stability contract

Current release — 0.8.4: Awesome Brick Buster

0.8.4 turns Brick Buster from a tech demo into a game someone would actually want to share with a friend, and makes sharing trivial via single-file HTML export.

Game polish

Single-file HTML export

Compile any loft program to a self-contained .html file that runs in any browser — no install, no server.

$ loft --html app.loft

The game's WebAssembly, textures, and audio are all embedded. Host the file anywhere, send someone the URL, they play.

Infrastructure

Next — 0.8.5: Working Moros editor

The Moros hex RPG scene editor runs end-to-end in the browser: load a map, paint hexes, place walls and items, see a live 3D preview, export to GLB. Web only — multiplayer comes in 1.0.0.

0.9.0 — Fully working loft language

The language itself becomes feature-complete, well-documented, and tooling-friendly. No "appears fixed but unverified" bugs. Anyone can write loft code in their preferred editor with syntax highlighting, decent error messages, and a REPL for experimentation.

Language polish

Compilation cache

Bytecode cache (.loftc) and the shared constant store are already implemented. Remaining work — mmap-based native cache loading, serialised Data definitions, pre-compiled stdlib for WASM — lands in 0.9.0.

Developer experience

Packaging and FFI

1.0.0 — Totally sure everything works

The stability contract. Anyone can write, run, and share a program — terminal or browser — and trust that it will keep working.

Web IDE

A browser-based IDE running the full loft interpreter as WebAssembly — no installation, no server.

Scene scripting

The Moros scene editor gains a loft scripting panel with in-browser compile and hot reload. Scene scripts are sandboxed, travel with the scene JSON, and can be shared alongside the map.

Multiplayer

Stability contract

Version 1.0 means: any program that works on 1.0 will compile and run identically on all future 1.x releases. The language syntax, type system, standard library, and command-line flags are frozen. Until then, breaking changes are possible between minor versions.

Tagging 1.0 requires every stability gate to be satisfied without shortcuts: zero open high-severity bugs, valgrind-clean debug builds of the full Brick Buster and tuple tests, green CI on Linux, macOS Intel, macOS ARM, and Windows, pre-built binaries on the GitHub release, and the reference + PDF linked from the release page.

1.1 and beyond

Post-1.0 items include route decorators (@get / @post / @ws), WASM Web Worker pools for browser-side par(), iterator protocol (for msg in ws), interface factory methods, lazy work-variable initialisation, stack raw-pointer cache, spatial index operations, and additional native codegen optimisations.

Following progress

Development is tracked in the GitHub repository. The full internal roadmap with effort estimates, dependencies, and design pointers is in the repository's doc/claude/ROADMAP.md.