Fix heading hierarchy and restore the future ideas section in PLAN.md
This commit is contained in:
1 parent
47c57ddc76
commit
85d67ff8b1
1 file changed
+36
-31
@@ -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
|
||||||
Reference in new issue
Block a user