๐Ÿฐ Project Dungeo

Porting Mainframe Zork to the Sharpee Interactive Fiction Engine

๐Ÿ“… December 27, 2025 โ€” January 3, 2026 โ€ข 8 Days of Development
๐Ÿ† 169 Rooms Complete โญ 650/650 Points (100%) โœ” Published to npm โœ” 636 Tests Passing ๐ŸŽฎ Victory Implemented

๐Ÿ“Š Project Overview

Project Dungeo is an ambitious effort to port the complete Mainframe Zork (also known as "Dungeon") to Sharpee, a modern interactive fiction engine. After a comprehensive room audit, we confirmed that the canonical Mainframe Zork has 169 roomsโ€”all now implemented. The project is now feature-complete with all 650 points worth of treasures implemented.

169
Rooms (100%)
33
Treasures (100%)
650
Max Score (100%)
7
NPCs Active
19+
Puzzles Working
636
Tests Passing

Progress Meters

Rooms: 169 / 169

100% โœ”

Treasures: 650 / 650 points

100% โœ”

Core Puzzles: 19 / 19

100% โœ”

๐Ÿ—บ๏ธ World Regions

The game world is organized into 12 distinct regions, each with unique theming and puzzles:

Above Ground
5 rooms โ€ข Starting area, forest, house
House Interior
9 rooms โ€ข Cellar, attic, kitchen
Underground
12 rooms โ€ข Troll room, studio, maze entrance
Maze
24 rooms โ€ข Twisty passages, grating room
Dam & Reservoir
8 rooms โ€ข Maintenance, lobby, control
Frigid River
9 rooms โ€ข Rainbow, aragain falls
Coal Mine
10 rooms โ€ข Bat room, shaft, timbers
Temple & Treasure
6 rooms โ€ข Prayer, torch room
Underground Depths
14 rooms โ€ข Mirror, crypt, bank
Volcano & Glacier
11 rooms โ€ข Balloon, lava tubes
Royal Puzzle
17 rooms โ€ข 15-puzzle sliding challenge
Endgame
7 rooms โ€ข Dungeon Master, Treasury

๐Ÿ‘น NPCs & Combat

โš”๏ธ

Combat System

Faithful recreation of original combat mechanics

Supports attack, parry, and dodge with weapon modifiers. Death respawn at forest with -10 points penalty.

NPC Behavior Status
Troll Blocks east passage, respawns from corpse Complete
Thief Steals treasures, opens egg, guards maze Complete
Cyclops Blocking, fed by lunch/water, "ULYSSES" trick Complete
Vampire Bat Random teleport, repelled by garlic Complete
Spirits Protect crypt, require bell/candles/book exorcism Complete
Robot Follows TELL commands, presses carousel button Complete
Dungeon Master Trivia quiz (3 questions), guards endgame Complete

๐Ÿงฉ Puzzle Systems

Puzzle Mechanic Status
Trapdoor RUG/MOVE reveals, requires raised gate Complete
Dam Control Bolt/button mechanism, drains reservoir Complete
Loud Room Echo puzzle - whisper "echo" to solve Complete
Exorcism Bell, book, candles ritual sequence Complete
Bank of Zork Confusingly-named exits puzzle Complete
Royal Puzzle 4ร—4 sliding puzzle (15-puzzle) Complete
Robot/Carousel TELL ROBOT TO PUSH BUTTON Complete
Mirror Toggle PUSH PANEL swaps North/South connections Complete
Inside Mirror Drop treasures, enter mirror, retrieve them Complete
Thief's Canvas Valuable painting in thief's lair Complete
INCANT Endgame INCANT <cheat> unlocks endgame Complete
Dungeon Master Trivia quiz (3 correct to pass) Complete
Parapet Dial Set dial 1-8, push button to activate cells Complete
Victory Handler Enter Treasury with endgame active Complete
Rainbow WAVE sceptre makes rainbow solid Complete
Glacier Throw lit torch to melt passage Complete
Buried Treasure DIG at Sandy Beach reveals statue Complete
Egg/Canary/Bauble Open egg, WIND canary in forest Complete
Mail Order SEND FOR BROCHURE delivers stamp Complete

๐Ÿ”ง GDT Debug Tool

Faithful recreation of the original 1981 "Game Debugging Tool" with new commands for endgame testing:

Core Commands:
  DA - Display Adventurer    DR - Display Room
  DO - Display Object        DS - Display State
  DC - Display Clock         DX - Display Exits
  AH - Alter Here            AO - Alter Object
  TK - Take any object       ND/RD - Toggle deaths
  NR/RR - Toggle thief

New Endgame Commands:
  TQ         - Display trivia state
  TQ RESET   - Reset to question 0 (deterministic)
  TQ SOLVE   - Auto-solve trivia
  DL         - Display dial state
  DL SET n   - Set dial to 1-8
  DL PUSH    - Push dial button
  DL ENDGAME - Activate endgame mode

๐Ÿ“… Development Timeline

December 27, 2025

Project Kickoff & Core Systems

ADRs 070-072, SchedulerService, NpcService, CombatService.

December 28, 2025

Rooms & Testing Infrastructure

30+ rooms, transcript tester, Dam region, Coal Mine.

December 29, 2025

NPCs & Puzzles

Thief, Cyclops, Robot. GDT tool. Bank puzzle. Maze (24 rooms).

December 30, 2025

Advanced Mechanics

Effects system, Mirror toggle, word puzzles, Royal Puzzle.

December 31, 2025

Release Planning & Branch Merge

8,400+ lines merged. ADR-080, ADR-081 created.

January 1, 2026

๐ŸŽ‰ Beta Release & npm Publish

11 packages to npm. INCANT cheat. Inside Mirror puzzle. 418 tests.

January 2, 2026

๐Ÿ† Endgame Complete & Victory!

Dungeon Master + trivia system. Parapet dial puzzle. Victory handler. Room audit confirms 169/169 (100%). WAVE/DIG/WIND actions. Rainbow puzzle. Glacier puzzle. 572 tests passing.

January 3, 2026

๐ŸŒŸ Feature Complete - 650/650 Points!

Egg/Canary/Bauble puzzle. Mail Order system with Don Woods stamp. All 33 treasures implemented. 636 tests in 36 transcripts. Project Dungeo reaches 100% treasure completion!

๐Ÿ“š Key Lessons Learned

๐Ÿ›๏ธ Language Layer Separation

All user-facing text flows through message IDs, never hardcoded strings.

๐Ÿ”„ Three-Phase Action Pattern

Validate โ†’ Execute โ†’ Report keeps actions clean and testable.

๐Ÿ“ฆ Vertical Slice Development

Each phase delivers playable increments, validating systems before scaling.

๐Ÿงช Transcript Testing

Simple text files serve as both tests and documentation for IF content.

๐Ÿ“ค pnpm for Monorepo Publishing

Only pnpm properly converts workspace:* to real versions during publish.

๐Ÿ—‘๏ธ Remove Unused Abstractions

ADR-084 deleted 930 lines of StoryGrammarImpl wrapper that added no value.

๐ŸŽฏ Future Enhancements

Category Nice-to-Have Improvements
Vehicles Boat navigation, balloon puzzle mechanics
Mechanics Bucket/well puzzle, match lighting
Polish Additional room descriptions, edge cases

๐ŸŽ‰ All core gameplay is complete!
Players can explore all 169 rooms, collect all 33 treasures (650 points), and achieve victory.

๐ŸŽฎ Sample Victory Sequence

> knock on door
The Dungeon Master appears. "Answer my questions, adventurer..."
"What room must one enter to reach the lair of the thief?"

> answer temple
"Correct! Now then..."
"What is one way to read the cakes?"

> answer flask
"Correct! One more..."
"What object in the dungeon is haunted?"

> answer rusty knife
"You have proven yourself worthy."
The door swings open to the north.

> n
Narrow Corridor

> s
Treasury of Zork

You have entered the Treasury of Zork!
Congratulations, brave adventurer!

Your final score is 650 points out of a possible 650.
You have achieved the rank of MASTER ADVENTURER.

*** THE END ***