Introducing Stasis Lang

I'm excited to announce Stasis Lang, an experimental programming language and toolchain focused on deterministic, game-style programs.

What is Stasis?

Stasis is a language built around a few ideas that work well for games and simulations:

  • Static global memory with no hidden allocations
  • Predictable layouts with stable field offsets and array layouts
  • A simple game loop model: main() runs once, then tick() + render() run each frame
  • Fast edit-compile-run loops via in-process JIT and hot swap during development

The philosophy is straightforward: the same inputs should produce the same outputs, state should be explicit, and there should be no hidden work on the hot path.

Advantages for Game Dev

Deterministic simulation. Stasis uses a tick-based, fixed-step model. The same inputs always produce the same outputs, which is critical for replays, debugging, and lockstep-style multiplayer (think Age of Empires II).

Predictable performance. Static global memory means no garbage collection pauses, no surprise allocations during your tick. You know exactly what happens each frame.

Fast iteration. Stasis compiles to machine code via Cranelift JIT in-process. File changes are compiled in the background and hot-swapped between ticks. You see your changes immediately without restarting, and there's an on_code_swap() hook to fix up invariants after a swap.

Data-oriented by design. Structures are lowered to SoA (Structure of Arrays) layouts for better cache locality and SIMD-friendly access patterns.

Simple and debuggable. Inspired by Handmade Hero's emphasis on straightforward, data-oriented game code with no hidden complexity.

Where It Stands Now

Stasis is experimental and fast-moving. Expect breaking changes. Here's the current state:

  • The JIT-based dev workflow (play with watch and hot swap) works on Windows
  • The test runner works cross-platform via JIT
  • AOT compilation for production builds is work in progress
  • A full game sample (Brickout Revenge) is included in the repo
  • Nightly releases are published from main

Disadvantages to Be Aware Of

  • Experimental: not yet production-ready for shipping titles
  • Static memory only: games must pre-allocate memory upfront (no dynamic allocation on the hot path)
  • Windows-focused: the play dev runner currently targets Windows for graphics runtime integration
  • Limited ecosystem: as a new language, there isn't a library ecosystem yet
  • Early-stage compiler: the rewrite V1 is actively being developed

Licensing

Stasis uses a Revenue-Threshold Commercial License. It's free for internal use and projects with under $10,000 in annual revenue. Above that threshold, there's a 1% revenue share on gross revenue from products that use Stasis.

Try It Out

Check out the GitHub repo and grab a nightly release from the releases page.

Ben