- Introduced README.md outlining game concept, mechanics, and planned venues. - Added ADRs for venue-driven architecture, de-escalation-first model, explicit access verification, local single-player focus, event-based incident recording, and choice of Godot 4 with GDScript.
34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
# ADR-0006: Godot 4 with GDScript
|
|
|
|
- **Status:** Accepted
|
|
- **Date:** TBD
|
|
|
|
## Context
|
|
|
|
The project needs a game engine and programming language before implementation can begin. The game is a local single-player workplace simulation with navigation, crowds, NPC behavior, UI for access checks and dialogue, audio, and shift-scoring systems. The project benefits from fast iteration, low cost, and the ability to run rules and scenario tests headlessly.
|
|
|
|
## Decision
|
|
|
|
Use the Godot Engine 4.x with GDScript for gameplay logic. Model the venue-driven architecture as nodes, scenes, and custom `Resource` types. Use Godot's navigation, UI, audio, and headless mode. Test with the GUT framework.
|
|
|
|
## Consequences
|
|
|
|
### Positive
|
|
|
|
- Free and open-source license with no per-seat or royalty cost.
|
|
- Built-in 3D rendering, navigation, animation, UI, and audio reduce external dependencies.
|
|
- GDScript is tightly integrated and fast to iterate on.
|
|
- Headless mode supports deterministic, GUI-free automated tests.
|
|
- Custom resources make scenario data editable and data-driven.
|
|
|
|
### Negative
|
|
|
|
- GDScript is less suited to very large, performance-critical systems than some alternatives.
|
|
- The team commits to Godot's editor workflow and version cadence.
|
|
- C# remains an option only if future needs justify adding a toolchain.
|
|
|
|
## Alternatives considered
|
|
|
|
- **Unity with C#:** Rejected due to licensing uncertainty and a heavier editor/workflow.
|
|
- **Bevy with Rust:** Rejected because Rust adds friction and iteration time for a prototype team.
|
|
- **Web-based TypeScript (Three.js/Babylon.js):** Rejected because Godot provides more out-of-the-box game systems and simpler desktop export. |