A faithful recreation of Dungeons of Daggorath (1982) with an optional extended roguelite mode — built using spec-driven AI development.
The Beating Dark recreates the tight, atmospheric gameplay of one of the first real-time dungeon crawlers. The project serves two purposes: building a playable game that honors the original while adding modern conveniences, and documenting spec-driven AI development as an educational series.
Dungeons of Daggorath was released in 1982 by DynaMicro for the TRS-80 Color Computer. It pioneered real-time first-person dungeon crawling with mechanics that remain compelling: grid-based movement, two-hand inventory management, torch-based visibility, and the iconic heartbeat system that reflects player fatigue.
This project recreates that experience in Unity, then extends it. Classic Mode faithfully replicates the original five-floor dungeon with fixed layouts and the wizard boss. Extended Mode (future) layers roguelite mechanics on top — procedural generation, meta-progression, expanded bestiary — while preserving the core identity.
The development process itself is part of the project. Every work log is documented, decisions are captured, and the entire codebase is built using spec-driven AI development with full context available in the .kilocode/ memory bank. This repository is both a game and a case study.
| Phase | Status | Description |
|---|---|---|
| Phase 0: Setup | 🔄 In Progress | Repository structure, documentation, memory bank |
| Phase 1: Analysis | ⬜ Planned | Source code analysis, GDD creation |
| Phase 2: Classic Clone | ⬜ Planned | Game milestones 1-8 |
| Phase 3: Extended Mode | ⬜ Planned | Procedural generation, meta-progression |
| # | Work Log | Description | Status |
|---|---|---|---|
| 01 | Ideation and Setup | Repository scaffolding, documentation | 🔄 In Progress |
| 02 | GitHub Project Frameout | Project board, task breakdown | ⬜ Not Started |
| 03 | Original Codebase Analysis | Source analysis, reference extraction, GDD | ⬜ Not Started |
| WL | Milestone | Description | Status |
|---|---|---|---|
| 04 | Grid Movement & Wireframe | Player on grid, turn/step, wireframe room | ⬜ Not Started |
| 05 | Fatigue System | Stamina pool, heartbeat audio/visual feedback | ⬜ Not Started |
| 06 | Two-Hand Inventory | Left/right hand slots, pull/sheathe/use, pack | ⬜ Not Started |
| 07 | Torch & Visibility | Darkness default, torch radius, fuel degradation | ⬜ Not Started |
| 08 | Dungeon Connectivity | Multiple rooms, passages, doors | ⬜ Not Started |
| 09 | Creatures - Presence | Spawning, grid movement, awareness AI | ⬜ Not Started |
| 10 | Combat Resolution | Attack action, damage calculation, death | ⬜ Not Started |
| 11 | Full Floor Loop | 5 floors, stairs, wizard boss, win condition | ⬜ Not Started |
Preserved from the original:
| Mechanic | Description |
|---|---|
| Grid Movement | Turn 90°, step forward/back. Strict grid, no smooth movement. |
| Two-Hand Inventory | Left hand, right hand. Strategic choice of torch vs. weapon vs. shield. |
| Torch Management | Darkness is default. Torches provide visibility but burn down over time. |
| Fatigue System | Actions cost stamina. Low stamina = high heart rate = danger. |
| Heartbeat Audio | Your pulse is your primary feedback. Fast = exhausted = vulnerable. |
Modern additions:
| Feature | Description |
|---|---|
| Optional Minimap | Toggle available (off by default in Classic) |
| Floor Checkpoints | Save per floor rather than permadeath |
| Modern Input | WASD + gamepad support with twin-stick style controls |
the-beating-dark/
├── .kilocode/ # AI agent context (visible, part of the methodology)
│ ├── rules/
│ │ ├── memory-bank/ # Project context for spec-driven development
│ │ ├── code-review.md
│ │ └── commit-conventions.md
│ └── workflows/
│
├── docs/
│ ├── design/ # Game Design Documents
│ ├── architecture/ # Technical architecture decisions
│ └── reference/ # Data extracted from original DoD
│
├── work-logs/ # Chronological development history
│ ├── 01-ideation-and-setup/
│ ├── 02-github-project-frameout/
│ ├── 03-original-codebase-analysis/
│ ├── 04-grid-movement/
│ └── ...
│
├── unity/ # Unity project
│ ├── Assets/_Project/ # All game content
│ ├── Packages/
│ └── ProjectSettings/
│
├── README.md # This file
├── AGENTS.md # Load instructions for AI agents
└── LICENSE
| Component | Technology |
|---|---|
| Engine | Unity 6 (6000.x LTS) |
| Rendering | Universal Render Pipeline (URP) |
| Language | C# 12 |
| Input | Unity Input System (WASD, gamepad) |
| AI Development | Spec-driven via CoPlay MCP + memory bank |
This project references publicly available source code and documentation from the original game:
| Resource | Description | Link |
|---|---|---|
| Original Release | 1982 TRS-80 Color Computer game by DynaMicro. Copyright released as freeware by Douglas J. Morgan circa 2001. | — |
| C++ Port | Richard Hunerlach's Windows/Linux port — readable reference for game logic | GitHub |
| Original ASM | Original TRS-80 assembly source code | GitHub |
| Web Version | Playable in browser — useful for testing and comparison | daggorath.online |
| Wikipedia | Historical context and game description | Wikipedia |
This repository demonstrates spec-driven AI development methodology. The .kilocode/rules/memory-bank/ directory contains persistent context that AI agents load at session start:
| File | Purpose |
|---|---|
brief.md |
Project identity and purpose |
product.md |
Goals, mechanics, success criteria |
context.md |
Current state, active work, next steps |
architecture.md |
Code structure and design decisions |
tech.md |
Technology stack and constraints |
tasks.md |
Repetitive workflows |
See AGENTS.md for load order and session patterns.
- Unity Hub with Unity 6 LTS
- Git
- IDE (Visual Studio 2022 or Rider recommended)
# Clone
git clone https://github.com/radioastronomyio/the-beating-dark.git
cd the-beating-dark
# Open Unity project
# In Unity Hub: Add → Select the 'unity' subfolderEach work log has a corresponding tag:
# Checkout specific work log state
git checkout worklog-01
# View development notes
cat work-logs/01-ideation-and-setup/README.mdThis is primarily an educational project, but contributions are welcome. See CONTRIBUTING.md for guidelines.
- Code: MIT License
- Content/Documentation: CC-BY-4.0
- Dungeons of Daggorath (1982) by DynaMicro — the original that inspired this project
- Douglas J. Morgan — original author who released the game as freeware
- Richard Hunerlach — C++ port that serves as primary reference
- Macroscope by Greptile — code review sponsorship
- CoPlay / FastMCP — Unity MCP integration for AI-assisted development
Last Updated: January 24, 2026 | Status: Work Log 01 In Progress