Add initial README and architecture decision records for venue-driven simulation game
- 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.
This commit is contained in:
commit
e23f284ad4
7 files changed
+514
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user