Odd Passages
A first-person roguelike, in early alpha
Odd Passages is a first-person roguelike about learning a place. Each run goes down through floors of rooms and corridors generated from a seed. There’s no map, minimap or compass, so finding your way back to a fountain or a boss’s door means remembering how you got there.
Deeper floors are meant to get stranger. Eventually the world will start lying to you: a door will stop leading where it used to, or a room will open onto itself. Most of the world stays consistent, so you can tell when something has changed.
This is an early build. The list below the downloads says what isn’t in it yet.
Download
0.3.5-alpha 2026-09-22
Each zip holds the game, its packs folder, the changelog and a README.
Unzip it and keep the folder together.
Earlier builds
| 0.3.4-alpha | 2026-09-15 | Windows | Linux |
| 0.3.3-alpha | 2026-09-14 | Windows | Linux |
| 0.3.2-alpha | 2026-09-13 | Windows | Linux |
| 0.3.1-alpha | 2026-09-12 | Windows | Linux |
| 0.3.0-alpha | 2026-09-12 | Windows | Linux |
| 0.2.6-alpha | 2026-09-12 | Windows | Linux |
| 0.2.5-alpha | 2026-09-12 | Windows | Linux |
| 0.2.2-alpha | 2026-09-12 | Windows | Linux |
Not built yet
There is no way to heal except the console, and nothing drops Grit, loot or anything else. Fountains and the monument answer E and do nothing with the answer. No saving, and no sound at all. The world does not lie to you yet: every room is where it was and every door leads where it led.
Bodies are placeholder solids and a door’s art is a line, so enemies are told apart by their shape and their numbers rather than by looking like anything. Every number – health, damage, Grit, stamina, how far a dodge carries you, how many enemies a floor holds, how the lock-on settles – is a placeholder and will move.
Two things enemies do that are known and not yet decided: one that only throws and is cornered against a wall stands holding its stone rather than fighting you at arm’s length, and a boss’s strike reaches you through a thin column when the same column stops its shots.
Changelog
0.3.5-alpha - 2026-09-22
Changed
- Put a corridor between two rooms: a step, or a walk with bends, so the next room is rarely visible from the last; a lock or a boss’s seal is met at the room’s own door and the hallway outside it stays open (
8341647,4ed4963) - Fill a room in: a raised or sunken middle with ramps or steps up to it, columns, blocks and benches, as many as the room is for, and a boss’s room is an arena (
c5a1149,081d191) - Climb a low rise by walking into it, and step off a ledge into a fall, where both used to be a wall (
75f6843,f178798,2742ad7) - Stop a shot at whatever stops sight: a column between you and an enemy is cover for both of you, and a block is cover for your legs and not your head (
7c32f07,c02c4e2) - Show a health bar over every enemy in sight, including one through a doorway (
ca96704) - Keep an enemy that has never met you to its own room and the hallways off it, so the spawn room’s neighbours no longer meet you in its doorway (
ed0cf1a) - Stand enemies away from the door you come in by, facing it about half the time (
4c078f9)
Added
- Follow you: an enemy that has seen you comes through doors and down corridors, walks to where it last saw you, and looks around (
088ead7,cfd845b) - Fight through a doorway: your swing, both shots, the lock-on and an enemy’s own strike all reach a body standing in the next place (
cdc3086,34bab7e) - Stand a boss the moment you first cross into its room, and seal the room as it stands (
d818c61,3346633) - Make a living boss’s door a fog wall – pale and thick, nothing readable past it – entered with E in a walk you do not steer, and make the way down a gold one that admits you once the Axiom is dead (
855caa5,b173b69,f5011e6,3e98ad5,b6d0444) - Give up: an enemy tolerates only so long a walk home, turns back beyond it, and is whole again when it arrives – and comes again if it sees you on the way (
bcb71fd) - Choose an attack by range: an enemy with two uses whichever one you are standing in the band of, closes when you are outside them both, and backs away when you are inside them all (
5fbb022) - Move the body through a wind-up: the Pentad draws back and then drives forward as it thrusts (
ff33ae8,e65a4bb) - Swing through space: an enemy’s blade crosses its arc over the swing and strikes you as it passes you, so which side of it you stand on matters and stepping through the blade is an answer (
45ab5a7,5299018) - Draw the arc a swing will cover, filling as the enemy winds up and sweeping white as it lands, so an attack’s reach can be read before it arrives (
8d26f49,b868ccb,06ccd10,3320075) - Throw: the Hexad keeps its distance and throws a stone you can see coming, walk out of, or put a column in front of (
a3c8487) - Answer what you are doing: the Ogdoad ripostes a swing you miss with, and the Trigon shies back out of one as it starts (
c000cfa) - Mount a pack from the console with
load <path>(e048d12)
Fixed
- Throw the Lapidator’s stone from a corridor: it was silent in every hallway and spent its Grit on nothing (
49fd473) - Shoot an enemy below you – down a ramp, through a doorway, or at the bottom of a pit (
1dd99b2) - Draw an enemy whole as it crosses a doorway rather than cutting it in half at the line (
1b671ce) - Free a boss that stalled on the rings of a sunken dais, and one that walked away and turned back (
3f93c1e,8f73980,f2385ac) - See you anywhere in a boss’s room, so it can no longer be entered unseen or slipped past behind a fixture (
b632bfb) - Send home an enemy left standing on a doorway after a room sealed behind you (
317cba0) - Fall back to the built-in numbers when a base pack will not mount, instead of booting on nothing (
8de6f9f)
0.3.4-alpha - 2026-09-15
Changed
- Start every run on floor 1 with no weapon: the Cleaver lies at floor 2’s fountain and the Lapidator somewhere on floor 3, and you walk onto them like a key; the Lapidator brings its Grit (
08cbbae,7ec1e88) - Show health as a bar with its number in it, and reveal the weapon name, crosshair and floor number only once they mean something (
d5734f3) - Carry Shards down to the next floor; the Prism stays the floor’s (
1f0a213) - Make Strength one damage a stack with no cap, and let no count stop at 255: Grit in hand and
grit.max, keys, stacks (c4daacb) - Draw every piece of text in Kode Mono (
82ff585)
Added
- Stand ordinary enemies on every floor from 2, more of them deeper and at most three to a room; a boss’s room holds its boss alone (
422fca4,7d50604,ee4ab95) - Add stamina: sprint, dodge and attacks spend it, it refills after a short pause, and a sprint that runs dry stays a walk until a second’s worth is back; the bar appears at the first spend (
aa4d4a7) - Add Statuses, timed conditions on you or an enemy: the Lapidator’s heavy stone leaves an enemy Vulnerable, taking half again as much damage for ten seconds (
f193d9d) - Show active Statuses: a line each above your health bar, under every enemy’s bar, and under the locked enemy’s, with the count for one that stacks and the seconds left for one with a clock (
c4daacb) - Give enemies a list of attacks, each with its own wind-up; they use the first for now (
e1cc5bd) - Show the run’s time at the top right, from the pause menu (
d5734f3) - Edit the console line: arrows and Home/End, Ctrl for words, Ctrl-W/U/K to cut, Ctrl-C to clear, Up/Down for history, Tab to complete a command (
5b8a8c9) - Add
status <id> [count] [duration] [magnitude],status remove <id>andstatus clearto the console, on the selected player or enemy, andselect player(c4daacb) - Add
give weapon <id>to the console (08834ac) - Add
--floor Nto a debug build, starting on that floor holding what you would have by then (08cbbae)
Fixed
- Clamp Grit at
grit.maxinstead of wrapping to a small number past 255 (e12e252)
0.3.3-alpha - 2026-09-14
Changed
- Aim shots where you look, up and down included; a level shot from standing height passes over an ordinary enemy, so aim down at it (
4aa3774) - Move the locked enemy’s name and bar to the bottom of the screen, above the prompt (
6094fd7) - Rename the Notched Cleaver to the Cleaver (
3357ba1)
Added
- Add the Lapidator, a second weapon; Q swaps between it and the Cleaver, and the name of the one in hand is at the bottom right (
f50e817,3357ba1) - Fire a shot on left click that lands the instant you click, on whatever is under the crosshair within range; throw a heavier stone on right click that you can watch fly, that an enemy can step out of, and that stops at walls and doorways (
f50e817) - Add Grit, the Lapidator’s ammo: every shot spends one, a run starts with 10 and holds 30 at most, and at 0 clicking does nothing; only the console’s
give gritrefills it (f50e817,3357ba1) - Draw your weapon in hand: the Cleaver swings and the Lapidator kicks, amber while winding up, white when it can land, grey while recovering (
df17eaf,dd5a992)
Removed
- Remove the swing bar at the bottom right; the weapon’s motion shows the swing (
df17eaf)
0.3.2-alpha - 2026-09-13
Changed
- Give enemies bodies that say what they are: an Axiom is one of the five regular solids, its Scions are bent solids with the same number of faces, ordinary enemies are prisms (
2e74302) - Rename the bosses for their shapes: the Tetrarch, Hexarch, Octorion, Dodecant and Icosarch and their Scions; the Trigon, Pentad, Ogdoad, Hexile and Heptad (
c2d074a) - Make enemies turn at their own speed and strike only what they face (
5452b13) - Halve damage and cut health to a bit over half, easy on purpose until the balance pass (
5452b13)
Added
- Add a crosshair, and a health bar over every enemy in the room (
5452b13) - Add lock-on: aim at an enemy and press E to hold the view on it; E again or a hard flick releases it, and a sideways dodge circles it (
5452b13) - Add
heal,passive,spawn <id>,select,mob,chestandkillto the console (b0b78ef)
0.3.1-alpha - 2026-09-12
Changed
- Draw bosses as bigger boxes, named on the F3 overlay (
456916a)
Added
- Stand a Scion in every Scion room and the Axiom in the exit’s room, on every floor from 2 (
456916a) - Seal every door of a boss room when you walk in, the exit included, until the boss dies (
456916a)
0.3.0-alpha - 2026-09-12
Changed
- Dodge on space instead of a double tap: the way you are moving, or a backstep standing still; you take no damage while dodging (
0f6664f,7afcae0)
Added
- Fight: left click swings the cleaver, a wind-up then the hit then a recovery; you cannot move while swinging, and a dodge cuts the recovery short (
7afcae0) - Show health at the bottom left after the first hit you take; dying ends the run (
7afcae0) - Add
spawn <name>to the console, standing an enemy in front of you that walks to you, turns yellow winding up and flashes white as the hit lands (7afcae0)
Fixed
- Register quick clicks in the game and on the menu (
da4d1dc)
0.2.6-alpha - 2026-09-12
Added
- Add
--debugto launch already in debug mode (f77a43f)
0.2.5-alpha - 2026-09-12
Changed
- Start the debug overlay hidden; F3 shows it (
3ca5404)
Added
- Add the console, on backtick in a debug run:
help,gen <seed> <floor>,give shard|prism [n],show; wheel or PageUp/Down scroll, Escape closes (3ca5404) - Make the window resizable (
3ca5404)
0.2.4-alpha - 2026-09-12
Added
- Add the debug overlay: position, floor, where the keys and bosses are, memory, seeds, the room’s doors; F3 in a debug run (
7fdb153)
0.2.3-alpha - 2026-09-12
Changed
- Turn the debug text off by default; Escape then “debug mode” turns it on for the run, cannot be turned off, and marks every frame (
e16868e)
Added
- Show Shard and Prism counts at the bottom left once you have held one, staying at 0 when spent (
e16868e)
0.2.2-alpha - 2026-09-12
Added
- Run from a bare copy: content is found beside the exe, and the bottom right names the pack or says NO PACK in red (
6250cb9) - Seal a gate Scion’s room on entry until the Scion dies, off in this build through
scion.gate_seals(b2727db) - Add a README to the zip (
6250cb9)
0.2.1-alpha - 2026-09-12
Added
- Stand chests, fountains and the monument in their rooms, with E to use; a locked chest takes a Shard and stays open (
b1155db) - Lead the exit door to the next floor, floor 1’s locked behind the Prism (
b1155db) - Show a prompt at the bottom of the screen for what E would reach (
b1155db)
0.2.0-alpha - 2026-09-12
Added
- Refuse a locked door without its key, red bar for the Prism and purple for a Shard; the key is spent and the door stays open (
77a8edf) - Lay keys on the floor, tall red for the Prism and short purple for a Shard, picked up by walking onto them (
77a8edf)
Fixed
- Draw the room through a doorway you stand in, instead of black (
77a8edf)
0.1.1-alpha - 2026-09-12
Added
- Add a pause menu on Escape: resume, new seed, quit (
bac212a)
0.1.0-alpha - 2026-09-12
First release: a walkable floor with doors, sprint, dodge and fog.