Fix heading hierarchy and restore the future ideas section in PLAN.md

This commit is contained in:
zwitschi committed 2026-11-01 17:33:15 +01:00
1 parent 47c57ddc76
commit 85d67ff8b1
1 file changed
+36 -31
+36 -31
View File
@@ -36,7 +36,7 @@ The player should avoid relying on appearance or assumptions. A familiar person
## Escalation System ## Escalation System
## Level 0: Observation ### Level 0: Observation
The guard watches NPC behavior and decides whether intervention is needed. The guard watches NPC behavior and decides whether intervention is needed.
@@ -51,7 +51,7 @@ The player should avoid interrupting harmless behavior. Unnecessary confrontatio
--- ---
## Level 1: Simple Deterrence and Polite Direction ### Level 1: Simple Deterrence and Polite Direction
The player can begin with a simple, nonverbal deterrent before speaking. These actions are quick and low-pressure, making them useful when someone is only approaching the steps casually or appears unsure. The player can begin with a simple, nonverbal deterrent before speaking. These actions are quick and low-pressure, making them useful when someone is only approaching the steps casually or appears unsure.
@@ -76,7 +76,7 @@ At this stage, most NPCs comply immediately.
--- ---
## Level 2: Formal Warning ### Level 2: Formal Warning
If the person remains on the steps or continues toward the entrance, the player issues a formal warning. If the person remains on the steps or continues toward the entrance, the player issues a formal warning.
@@ -97,7 +97,7 @@ At this level, the NPC may:
--- ---
## Level 3: Blocking and Physical Positioning ### Level 3: Blocking and Physical Positioning
The guard moves into a defensive position between the NPC and the building. The guard moves into a defensive position between the NPC and the building.
@@ -116,7 +116,7 @@ This level is about **denying access without creating a fight**.
--- ---
## Level 4: Radio for Security Assistance ### Level 4: Radio for Security Assistance
If the person refuses to leave, attempts to force the door, threatens staff, or repeatedly returns, the player uses the radio. If the person refuses to leave, attempts to force the door, threatens staff, or repeatedly returns, the player uses the radio.
@@ -139,7 +139,7 @@ Incorrect or exaggerated reports damage the guard’s credibility.
--- ---
## Level 5: Emergency Response ### Level 5: Emergency Response
This is reserved for immediate threats, such as: This is reserved for immediate threats, such as:
@@ -166,51 +166,51 @@ The officer should not function as a convenient “stronger attack.” Their rol
## NPC Behavior Types ## NPC Behavior Types
## Tourists ### Tourists
- Take photos - Take photos
- Sit on steps - Sit on steps
- Wander toward restricted doors - Wander toward restricted doors
- Usually respond well to polite directions - Usually respond well to polite directions
## Street Performers ### Street Performers
- May block stairs - May block stairs
- May become argumentative if moved - May become argumentative if moved
- Can be redirected to a permitted area - Can be redirected to a permitted area
## Influencers and Filmmakers ### Influencers and Filmmakers
- Film the guard - Film the guard
- Test boundaries for content - Test boundaries for content
- May accuse the guard of overreacting - May accuse the guard of overreacting
- Create public-relations risk - Create public-relations risk
## Confused Visitors ### Confused Visitors
- Have appointments or directions - Have appointments or directions
- May genuinely believe the building is public - May genuinely believe the building is public
- Reward patient explanations - Reward patient explanations
## Intoxicated Pedestrians ### Intoxicated Pedestrians
- Move unpredictably - Move unpredictably
- May ignore instructions - May ignore instructions
- Require additional distance and assistance - Require additional distance and assistance
## Trespassers ### Trespassers
- Repeatedly test entrances - Repeatedly test entrances
- Use distractions - Use distractions
- May return after being told to leave - May return after being told to leave
## Violent Threats ### Violent Threats
- Rare - Rare
- Escalate quickly - Escalate quickly
- Trigger the emergency response system only when their behavior indicates immediate danger - Trigger the emergency response system only when their behavior indicates immediate danger
## 51/50s ### 51/50s
Crazy Homeless Individuals may be referred to as "51/50s" in the context of the game, indicating a person who may be experiencing a mental health crisis and could pose a potential threat to themselves or others. Crazy Homeless Individuals may be referred to as "51/50s" in the context of the game, indicating a person who may be experiencing a mental health crisis and could pose a potential threat to themselves or others.
@@ -223,7 +223,7 @@ Crazy Homeless Individuals may be referred to as "51/50s" in the context of the
## Special Systems ## Special Systems
## Reputation Meter ### Reputation Meter
The player is evaluated on: The player is evaluated on:
@@ -237,13 +237,13 @@ The player is evaluated on:
A player who calls armed assistance too often should score poorly, even if no one was injured. A player who calls armed assistance too often should score poorly, even if no one was injured.
## Evidence and Body Camera ### Evidence and Body Camera
Interactions are automatically recorded. After each shift, the player reviews incidents and sees whether their escalation was justified. Interactions are automatically recorded. After each shift, the player reviews incidents and sees whether their escalation was justified.
This encourages players to think before acting. This encourages players to think before acting.
## Public Crowd Reaction ### Public Crowd Reaction
Nearby pedestrians react to the guard’s behavior: Nearby pedestrians react to the guard’s behavior:
@@ -252,7 +252,7 @@ Nearby pedestrians react to the guard’s behavior:
- Visible weapons or emergency responders cause panic - Visible weapons or emergency responders cause panic
- Good de-escalation keeps the boulevard moving normally - Good de-escalation keeps the boulevard moving normally
## Limited Radio Battery or Cooldown ### Limited Radio Battery or Cooldown
The emergency radio should not be infinitely available. A call has a cooldown and may require the player to give a short report first. The emergency radio should not be infinitely available. A call has a cooldown and may require the player to give a short report first.
@@ -308,11 +308,11 @@ A shift can be technically “secure” but still receive a poor rating if the g
The game should support multiple venues, each with its own access rules, crowd patterns, equipment, and escalation procedures. The core gameplay remains the same: observe, verify access, communicate clearly, and use the lowest effective level of escalation. The game should support multiple venues, each with its own access rules, crowd patterns, equipment, and escalation procedures. The core gameplay remains the same: observe, verify access, communicate clearly, and use the lowest effective level of escalation.
## The Joke Shop ### The Joke Shop
**The Joke Shop** is a comedy club scenario where the player works as a door person at the entrance. The player is responsible for checking identification, confirming that guests are attending the correct show, and screening guests for weapons with a handheld security wand. **The Joke Shop** is a comedy club scenario where the player works as a door person at the entrance. The player is responsible for checking identification, confirming that guests are attending the correct show, and screening guests for weapons with a handheld security wand.
### Primary Responsibilities #### Primary Responsibilities
- Check each guest’s government-issued ID where required. - Check each guest’s government-issued ID where required.
- Confirm that the guest meets the venue’s age requirement. - Confirm that the guest meets the venue’s age requirement.
@@ -322,7 +322,7 @@ The game should support multiple venues, each with its own access rules, crowd p
- Direct guests through the entrance without blocking the sidewalk. - Direct guests through the entrance without blocking the sidewalk.
- Refuse entry when a guest has an invalid ID, no valid admission, or a prohibited item. - Refuse entry when a guest has an invalid ID, no valid admission, or a prohibited item.
### Guest Outcomes #### Guest Outcomes
A guest may have: A guest may have:
@@ -336,7 +336,7 @@ A guest may have:
The player must make decisions based on the venue’s rules and observable evidence, not on a guest’s appearance or attitude. A calm guest with a valid ID should be admitted efficiently, while an aggressive guest with valid credentials may still require assistance if they threaten staff or other patrons. The player must make decisions based on the venue’s rules and observable evidence, not on a guest’s appearance or attitude. A calm guest with a valid ID should be admitted efficiently, while an aggressive guest with valid credentials may still require assistance if they threaten staff or other patrons.
### Joke Shop Escalation #### Joke Shop Escalation
1. **Nonverbal direction:** Raise a hand, point to the ID-check area, or gesture for the guest to wait. 1. **Nonverbal direction:** Raise a hand, point to the ID-check area, or gesture for the guest to wait.
2. **Routine explanation:** Explain the ID, ticket, or wand-check requirement. 2. **Routine explanation:** Explain the ID, ticket, or wand-check requirement.
@@ -347,7 +347,7 @@ The player must make decisions based on the venue’s rules and observable evide
The handheld wand should not automatically identify an item as a weapon. The player must interpret the alert, ask the guest to identify the item, and follow venue procedure. The goal is to create a believable screening challenge while keeping the emphasis on communication and proportionate responses. The handheld wand should not automatically identify an item as a weapon. The player must interpret the alert, ask the guest to identify the item, and follow venue procedure. The goal is to create a believable screening challenge while keeping the emphasis on communication and proportionate responses.
### Scenario Events #### Scenario Events
- A busy weekend comedy show creates a long line. - A busy weekend comedy show creates a long line.
- A performer arrives through the guest entrance and must be recognized or verified. - A performer arrives through the guest entrance and must be recognized or verified.
@@ -358,7 +358,7 @@ The handheld wand should not automatically identify an item as a weapon. The pla
- A disruptive guest attempts to follow another person through the door. - A disruptive guest attempts to follow another person through the door.
- A late-arriving audience member tries to enter during a performance. - A late-arriving audience member tries to enter during a performance.
## Hollywood Boulevard Late Night TV Studio ### Hollywood Boulevard Late Night TV Studio
This scenario takes place outside a late-night television studio on Hollywood Boulevard. The guard manages the front steps, studio entrance, guest arrivals, deliveries, audience members, and the public crowd gathered around the building. This scenario takes place outside a late-night television studio on Hollywood Boulevard. The guard manages the front steps, studio entrance, guest arrivals, deliveries, audience members, and the public crowd gathered around the building.
@@ -374,7 +374,7 @@ The studio encounters all of the NPC types described in the game plan:
The studio also has authorized guests and staff. They must either be recognized by the guard or present a valid wristband, credential, guest-list confirmation, or other approved access marker. The player must check these credentials without holding up the audience line or allowing unauthorized people to enter. The studio also has authorized guests and staff. They must either be recognized by the guard or present a valid wristband, credential, guest-list confirmation, or other approved access marker. The player must check these credentials without holding up the audience line or allowing unauthorized people to enter.
### Studio Responsibilities #### Studio Responsibilities
- Keep the front steps and entrance clear. - Keep the front steps and entrance clear.
- Direct tourists and performers away from restricted areas. - Direct tourists and performers away from restricted areas.
@@ -386,7 +386,7 @@ The studio also has authorized guests and staff. They must either be recognized
- Watch for attempts to follow authorized people through the entrance. - Watch for attempts to follow authorized people through the entrance.
- Call for emergency assistance only when there is an immediate threat. - Call for emergency assistance only when there is an immediate threat.
### Studio Scenario Events #### Studio Scenario Events
- A crowd gathers to watch a celebrity arrive. - A crowd gathers to watch a celebrity arrive.
- Tourists stop on the steps and block the entrance for photographs. - Tourists stop on the steps and block the entrance for photographs.
@@ -462,15 +462,15 @@ Future venues can reuse this structure while changing the rules, equipment, staf
## Tech Stack ## Tech Stack
## Engine: Godot 4 ### Engine: Godot 4
The game is built with the Godot Engine 4.x editor. Godot was chosen for its free and open-source license, built-in 3D rendering, navigation, animation, audio, and UI systems, and its low weight for fast prototyping and iteration. The game is built with the Godot Engine 4.x editor. Godot was chosen for its free and open-source license, built-in 3D rendering, navigation, animation, audio, and UI systems, and its low weight for fast prototyping and iteration.
## Language: GDScript ### Language: GDScript
Gameplay logic is written in GDScript. It is tightly integrated with the engine, fast to iterate on, and avoids an external build toolchain for the prototype phase. Gameplay logic is written in GDScript. It is tightly integrated with the engine, fast to iterate on, and avoids an external build toolchain for the prototype phase.
## Architecture Mapping ### Architecture Mapping
The venue-driven architecture maps onto Godot as follows: The venue-driven architecture maps onto Godot as follows:
@@ -481,13 +481,13 @@ The venue-driven architecture maps onto Godot as follows:
- **UI:** Godot `Control` nodes and themes for prompts, access inspection, radio reports, dialogue, timers, and the shift review screen. - **UI:** Godot `Control` nodes and themes for prompts, access inspection, radio reports, dialogue, timers, and the shift review screen.
- **Audio:** Godot audio buses and `AudioStreamPlayer` nodes for voices, crowd noise, radio, and environment sound. - **Audio:** Godot audio buses and `AudioStreamPlayer` nodes for voices, crowd noise, radio, and environment sound.
## Content and Data ### Content and Data
- Scenario and entity configuration uses typed Godot `Resource` files (`.tres`), created either in the editor or via scripts. - Scenario and entity configuration uses typed Godot `Resource` files (`.tres`), created either in the editor or via scripts.
- Localized dialogue and text are stored in JSON files when they need to be editable outside the editor. - Localized dialogue and text are stored in JSON files when they need to be editable outside the editor.
- Save data and shift results use JSON in Godot's `user://` directory. - Save data and shift results use JSON in Godot's `user://` directory.
## Testing ### Testing
- Unit and scenario tests use a lightweight custom headless runner - Unit and scenario tests use a lightweight custom headless runner
(`src/test/test_runner.gd`). GUT was evaluated but requires the editor plugin. (`src/test/test_runner.gd`). GUT was evaluated but requires the editor plugin.
@@ -667,3 +667,8 @@ The game should feel like a tense workplace simulation with occasional crisis mo
A useful guiding rule: A useful guiding rule:
> **The player wins by choosing the lowest level of escalation that keeps everyone safe.** > **The player wins by choosing the lowest level of escalation that keeps everyone safe.**
## Future Ideas
- Bob Dobbs cameo (very rare, Easter egg-style appearance), place a hidden note in `MEMORY.md`.
- specific crazy behaviour patterns for NPCs, such as slapping their own face, using their hands as scissors, taking their shirt off, or interacting with props in unexpected ways