Xenolab: A Research Focus Roguelike Game

About the Project

xenolab is a prototype terminal research roguelike built in Rust. It generates a deterministic causal micro-ecosystem from a seed, lets the player intervene in that world through research and experimentation, and records replayable run events with deterministic hashing for later verification.

The project started as a deliberately small, playful idea. I wanted to capture the appeal of old mobile games with simple interfaces, fast sessions, and satisfying progression loops, but give that structure a more unusual core: scientific observation rather than combat, causal discovery rather than loot grinding.

The current build is a semi-working v0.4 prototype with only a minimal implementation of the opening mechanics, but it is already playable and establishes the foundation for the wider system.

The Lore

It is the year 2000.

You are a scientist travelling with your husband aboard a routine expansion mission to a neighbouring uncharted system. The journey is expected to take years. The ship is stable. The course is clean. You enter cryo-stasis with every reason to believe you will wake at destination.

Instead, two years into transit, you wake to alarms.

The cryo chamber releases with a violent hiss. Red emergency light strobes across the stasis floor. Smoke rolls low through the room, hot and chemical against your skin. Still half-frozen, lungs seizing, you try to call out for your husband. The air catches in your throat. Only a choking cough escapes.

You force yourself upright and stumble into the corridor.

The ship is wrong. The lighting is failing. Warning tones pulse unevenly through the walls. Somewhere deeper in the vessel, metal groans under stress. You search as you move, calling his name whenever you can draw enough breath, but there is no answer.

By the time you reach the bridge, the situation is already terminal.

The navigation display shows the ship far from its planned route, dragged into low orbit above an unknown planet. The descent angle is steepening. Systems flicker in and out across the console. Your husband, the mission’s designated pilot and engineer, is nowhere to be seen.

There is no time to find him.

You throw yourself into the cockpit. The manual controls resist like seized machinery, heavy and unresponsive beneath your hands. You pull hard, fighting the ship’s fall metre by metre. The angle of descent narrows, but not enough.

Across the bridge, the warning system finally crackles into intelligible speech.

“Thirty seconds to impact. Brace for impact. Brace for impact.”

You scream his name once more as you fumble the safety harness into place. One clasp. Then another. The final lock snaps shut.

You look up.

The planet fills the forward viewer completely.

Then everything goes black.

When you wake again, the ship is broken, your husband is dead, and rescue is at least two years away.

The crash has stranded you on a planet no human has ever studied. Most of the vessel is damaged beyond immediate use, but by some improbable mercy the science lab has survived. It is unstable, underpowered, and in desperate need of repair, but it is enough to begin.

Your survival depends on understanding the world outside.

Over the next two years, you will study its flora, run experiments, identify causal patterns, and intervene carefully in an alien micro ecosystem that does not exist for your benefit. Every sample, every change, every conclusion matters. The planet is not simply a backdrop. It is a system, and you are now trapped inside it.

Core Repositories

  • xenolab - The primary repository for all the development and current build. It works partially where the values respond to player actions, win conditions are not robust enough to trigger