Skip to content

A Dungeons of Daggorath clone with optional roguelite extended mode — built using spec-driven AI development

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-DATA
Notifications You must be signed in to change notification settings

radioastronomyio/the-beating-dark

The Beating Dark

Unity C# Macroscope License

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.


Overview

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.


Current Status

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 Logs

# 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

Game Milestones (Work Logs 04-11)

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

Core Mechanics

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

Repository Structure

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

Technology

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

Reference Sources

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

Spec-Driven AI Development

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.


Getting Started

Prerequisites

  • Unity Hub with Unity 6 LTS
  • Git
  • IDE (Visual Studio 2022 or Rider recommended)

Setup

# 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' subfolder

Following Along

Each 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.md

Contributing

This is primarily an educational project, but contributions are welcome. See CONTRIBUTING.md for guidelines.


License


Acknowledgments

  • 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

About

A Dungeons of Daggorath clone with optional roguelite extended mode — built using spec-driven AI development

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-DATA

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages