# Rogue: Exploring the Dungeons of Doom (Go port) [![License](https://img.shields.io/badge/license-BSD-blue.svg)](LICENSE.TXT) **Rogue** is the original dungeon-crawling adventure game that spawned an entire genre. This branch is a faithful Go port of Rogue 5.4.4: explore procedurally generated dungeons, fight monsters, collect treasure, and attempt to retrieve the Amulet of Yendor. **Original authors:** Michael Toy, Ken Arnold, and Glenn Wichman (1980–1983, 1985, 1999). The port is function-by-function faithful to the classic C sources — same dungeon generation (seed-compatible RNG), same combat math, same item tables, same messages. The C reference implementation lives on the `master` and `modern-rogue` branches; [ARCHITECTURE.md](ARCHITECTURE.md) documents both the original program structure and the design of this port. ## Building and running Requires Go 1.25 or later and a terminal at least 80x24. ```bash go build ./cmd/rogue ./rogue ``` ```bash # Restore a saved game ./rogue ~/rogue.save # View high scores ./rogue -s # Test the death screen (demo mode) ./rogue -d ``` ## In-game commands Press `?` in game for the full list. - **arrows** or **h/j/k/l/y/u/b/n** — move (shift to run, ctrl to run until adjacent) - **`.`** rest, **`s`** search for hidden doors and traps - **`i`** inventory, **`,`** pick up, **`d`** drop - **`q`** quaff potion, **`r`** read scroll, **`e`** eat food - **`w`** wield weapon, **`W`** wear armor, **`P`**/**`R`** put on / remove ring - **`t`** throw, **`z`** zap a wand, **`f`**/**`F`** fight - **`>`**/**`<`** take the stairs - **`S`** save, **`Q`** quit ## Environment ```bash # Game options, as in the original export ROGUEOPTS="name=YourName,terse,jump,fruit=mango" # Wizard (debug) mode, with a reproducible dungeon ROGUE_WIZARD=1 SEED=12345 ./rogue ``` The scoreboard is kept in `~/.rogue.scores`. Save files are Go gob snapshots and, as in the original, are deleted when restored. ## Code layout ``` game/ the game engine: one Go file per original C file, function-by-function (see ARCHITECTURE.md for the mapping) term/ tcell-backed terminal, replacing curses cmd/rogue/ the executable ``` The engine package is fully headless-testable: `go test ./game/` runs scripted game sessions, dungeon-generation golden checks, and an RNG compatibility test against the original C generator. ## License BSD-style; see [LICENSE.TXT](LICENSE.TXT). Copyright (C) 1980-1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman. All rights reserved.