Void Crawler

Void Crawler is a browser roguelite set on EREBUS-7, a dead research station in Europa orbit.

You are a salvage operator. Oxygen is running down. The station layout is procedural. Something in the dark keeps getting names it probably should not have.

Play the current build

What works now

The current build is playable, still greybox, and already useful enough to test the shape.

You start from a salvage shop, enter the station, move turn by turn, spend oxygen, fight generated monsters, pick up equipment, and look for the elevator. It is keyboard-first for now. The mood is dark canvas, bright UI, and a lot of small systems pretending they are already calm.

The important recent work happened below the visible game. Void Crawler now has a 100-level depth contract, ten zone bands, seedable procedural generation, generation invariant tests, and a renderer-free run-state snapshot seam.

That last part is deliberately boring. It is the kind of boring the game needs before save and continue can be trusted.

Why it left the arcade

Void Crawler started as part of the small Web Games Arcade work. It outgrew that shelf.

A tiny arcade game can live happily as one cartridge. A roguelite wants more awkward machinery: level depth, seeds, save state, inventory, balance probes, and enough tests to reproduce a strange floor instead of shrugging at it.

So it now has its own repo and its own deployment path. The public build lives here on simiono, because GitHub Pages for the private repo is currently blocked by plan and artifact limits. Fine. The station does not care where it is hosted.

Still rough

There is no full browser save/resume yet. The Continue/New/Abandon flow is still on the roadmap. Inventory is present, but not finished as a proper roguelite decision layer. Balance across 100 levels is a contract and a direction, not a solved game.

That is okay for this stage. The useful question right now is simpler: can the station generate floors that are reachable, reproducible, and worth improving?

The next slice is save-system work.

Stack

Vanilla JavaScript, Vite, HTML5 Canvas, rot-js for map generation, and Vitest for the parts that should not depend on rendering.

See also: Projects, Web Games Arcade, Accidental Overlord, Things