# 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.