Developer Documentation

The complete guide to understanding, navigating, and contributing to the ASH & BRASS codebase. If you know software engineering but not Godot, start here.


Quick Stats

MetricValue
Game Scripts90
Scenes36
Data Resources34
Autoloads10
GUT Tests40 (185 passing)
EngineGodot 4.4
LanguageGDScript (typed)

Project Structure

scripts/
├── autoload/        ← Singletons (Events, ContentRegistry, etc.)
├── content/         ← Data resource scripts (EnemyData, WeaponData)
├── entities/        ← Reusable entities (enemy, pickup, module)
├── levels/          ← Level controllers
├── player/          ← Player controllers
├── systems/         ← Gameplay systems (wave director, projectile pool)
└── ui/              ← UI panels and widgets

data/                 ← Content definitions (.tres files)
scenes/               ← Scene files (.tscn)
tests/                ← GUT tests
docs/                 ← Markdown source of this documentation

Recently Fixed Issues

SeverityIssueStatus
CRITICALInput conflicts: dash+halt both on Space, scan+interact both on F✅ Fixed
CRITICALCollision masks wrong on club door, pickups (player couldn't interact)✅ Fixed
HIGHload() called during gameplay causing frame stutters✅ Fixed (preloaded)
HIGHget_nodes_in_group() called every frame in 8+ locations✅ Fixed (signal caching)
HIGHO(n²) separation force every physics frame✅ Fixed (throttled)
MEDIUMGreybox enemy code duplication (5 files, ~80% identical)✅ Base class extracted
MEDIUMOrphaned mode_indicator scene (no script attached)✅ Fixed