- 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.
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# ADR-0001: Venue-driven simulation architecture
|
|
|
|
- **Status:** Accepted
|
|
- **Date:** TBD
|
|
|
|
## Context
|
|
|
|
The game is planned to include multiple venues with different access rules, equipment, crowd patterns, NPC mixes, and scenario events. The Hollywood Boulevard building, The Joke Shop comedy club, and the late-night TV studio share core interaction and escalation mechanics but differ in their policies and content.
|
|
|
|
Hard-coding each venue into the simulation would make new scenarios expensive to create and would encourage inconsistent behavior between venues.
|
|
|
|
## Decision
|
|
|
|
Use a shared simulation core with venue-driven configuration and content. A `VenueScenario` supplies locations, access policies, equipment, NPC pools, dialogue, schedules, event pools, and escalation constraints. Shared systems handle movement, interactions, access verification, incidents, reputation, crowds, and shift review.
|
|
|
|
## Consequences
|
|
|
|
### Positive
|
|
|
|
- New venues can reuse tested systems.
|
|
- Venue rules remain visible and easier to review.
|
|
- Scenarios can be tested independently of rendering.
|
|
- Different venues can share NPC types while changing their context.
|
|
|
|
### Negative
|
|
|
|
- The data model must be designed carefully.
|
|
- Some venue-specific behavior may need extension hooks.
|
|
- Content authoring tools or validation will become important as the number of venues grows.
|
|
|
|
## Alternatives considered
|
|
|
|
- **One custom implementation per venue:** Rejected because it duplicates logic and increases maintenance cost.
|
|
- **One universal ruleset:** Rejected because ID checks, wristbands, wand screening, and studio credentials have materially different behavior.
|