# IStalk — Game Concept Document

## Core Identity

| Field | Value |
|-------|-------|
| **Working Title** | IStalk: The Eye and The Burden |
| **Elevator Pitch** | A horror-parkour-extraction game where a giant living Eye hunts Runners through a procedural dollhouse castle — but every item the Runners grab makes them slower, heavier, and easier to kill. |
| **Core Verb** | Move (Runners) / Observe (Eye) |
| **Core Fantasy** | Runner: A stylish thief escaping an all-seeing god through flow-state parkour. Eye: A patient horror director orchestrating inevitable doom through strategy and dread. |
| **Unique Hook** | Like Dead by Daylight's asymmetry AND ALSO Mirror's Edge parkour flow AND ALSO a physical weight system that degrades your abilities the greedier you get. |
| **Primary MDA Aesthetic** | Challenge (mastery of movement/strategy) layered with Sensation (horror tension) |
| **Platform** | PC (Steam) |
| **Players** | 2-5 (1 Eye + 1-4 Runners) |
| **Match Duration** | 12-18 minutes |
| **Engine** | Unity 6 (URP 17.3) |
| **Networking** | FishNet v4 + Synapse UDP transport + WebSocket relay server |
| **Estimated Scope** | Large (9-12 months solo to full vision; 2-month MVP prototype) |

---

## Game Pillars

### Pillar 1: Movement is Identity
The Runner's skill expression lives in their movement. Every ability, item, and map layout exists to serve parkour flow. If a feature makes movement less expressive or less readable, cut it.

**Design test:** "Should we add this mechanic?" → Does it create new movement options OR new reasons to move? If neither, it doesn't belong.

### Pillar 2: Greed Has Weight
Every advantage costs mobility. The weight system isn't a punishment — it's a constant negotiation between power and freedom. The game's core tension lives in this tradeoff.

**Design test:** "Should this item/reward be free?" → No. Everything the Runner gains must cost them something physical. No free power.

### Pillar 3: The Eye Orchestrates, Not Executes
The Eye wins through strategy, economy, and patience — not mechanical aim. The Eye's skill ceiling is in reading Runner behavior, placing traps, timing incarnations, and coordinating minions. The laser is a finisher, not the whole game.

**Design test:** "Is this Eye ability too aim-dependent?" → If the Eye must be an FPS god to win, the ability needs a wider hitbox or a strategic alternative.

### Pillar 4: Escalating Inevitability
Every match tightens. Dead Runners become minions. The Eye grows stronger. Extraction corridors get more dangerous. The game never stalls — it always pushes toward a climax.

**Design test:** "Can this mechanic create a stalemate?" → If yes, add a timer, escalation trigger, or pressure valve that breaks the deadlock.

### Pillar 5: Paranoia is a Feature
Other Runners are unreliable. Objects might be watching. Safe rooms might be trapped. Trust is a resource that depletes. The social and environmental design should make players second-guess everything.

**Design test:** "Is this interaction too predictable?" → If a Runner can always trust X, add a reason they might not be able to.

---

## Anti-Pillars (What This Game Is NOT)

1. **NOT a precision shooter** — The Eye's skill is strategic, not mechanical aim.
2. **NOT a survival horror resource game** — No health packs, ammo, or crafting. Parkour flow stays clean.
3. **NOT a team game with roles** — No Tank/Healer/DPS archetypes. All Runners have the same toolkit. Trust is optional.
4. **NOT a battle royale with shrinking zones** — Escalation is organic (minions + economy), not artificial.
5. **NOT a content-heavy live-service grind** — Replayability from procedural maps and player dynamics, not seasonal content.

---

## The Asymmetry

### The Eye (1 Player)

**Perspective:** 2D side-view of the dollhouse exterior with pan + zoom. Zoomed out = scanning mode. Zoomed in = targeting mode.

**Core Loop:** Scan → Detect movement → Decide tool (laser/trap/incarnation/minion command) → Execute → Evaluate → Re-scan

**Abilities:**

| Ability | Description | Skill Expression |
|---------|-------------|-----------------|
| **Main Laser** | Free aim with mouse, hold to charge, release to fire. Telegraphed with visible line + audio escalation. SphereCast for generous hitbox. | Prediction — leading the target, timing the release when Runner is exposed |
| **Incarnation** | Possess eye-decorated props (portraits, gargoyles) for interior first-person view + micro-laser. Giant eye goes blank (tell). Props glow (local tell). | Intel gathering — choosing WHEN to invade privacy vs. maintaining macro overview |
| **Traps** | Place area-denial effects (Sludge = slow, False Chest = reveal location). Costs Dread currency. | Economy management — cheap intel vs. expensive denial at critical chokepoints |
| **Minion Command** | Dead Runners become Eye minions. Can mark Runners, create noise, block paths. | Coordination — using multiple pressure angles to flush Runners into laser zones |

**Resource: Dread**
- Passive regeneration over time
- Spikes when Runners make mistakes (noise, failed parkour, disturb fragile props)
- Spent on traps and minion abilities
- Economy forces strategic choices: many cheap traps or few expensive ones

### The Runners (1-4 Players)

**Perspective:** First-person, full FPS controls (WASD + mouse look)

**Core Loop:** Move → Spot loot → Risk assess (is corridor exposed? is Eye looking?) → Grab or skip → Chain parkour to cover → React to Eye attention → Stash/drop weight decisions

**Movement System (Mirror's Edge Flow):**

| Ability | Input | Weight Gate | Feel |
|---------|-------|-------------|------|
| Sprint | Hold Shift | Always available, speed decreases with weight | Baseline speed, always accessible |
| Jump | Space | Always available | Responsive, good hang time |
| Slide | Ctrl while sprinting | Available until Heavy tier | Momentum-preserving, shrinks hitbox |
| Wall Jump | Space near wall | Available until Heavy tier | Directional, preserves upward momentum |
| Dash | Shift+Direction | Lost at Moderate weight | Short burst, i-frames during dash |
| Double Jump | Space (midair) | Lost at Moderate weight | Extends vertical reach significantly |
| Air Dash | Shift midair | Lost at Light-Moderate threshold | Horizontal repositioning in air |
| Grapple | E on grapple point | Item-based (has weight itself) | Bezier arc swing, physics-based |
| Wall Run | Sprint at angled wall | Lost at Heavy tier | Sustained horizontal wall traverse |

**Weight Tiers:**

| Tier | Weight Range | Available Abilities | Speed Multiplier |
|------|-------------|--------------------|-----------------| 
| **Naked** | 0 kg | All abilities, maximum expression | 1.0x |
| **Light** | 1-5 kg | All abilities, slight speed reduction | 0.9x |
| **Moderate** | 6-12 kg | Lose: Air Dash, Double Jump | 0.75x |
| **Heavy** | 13-20 kg | Lose: Dash, Wall Run, Slide | 0.55x |
| **Overloaded** | 21+ kg | Walk + Jump only. Living target. | 0.35x |

**Weight is Droppable:** Runners can drop items at any time. Strategic stashing — dump loot in a safe room, parkour through a dangerous corridor light, come back for it. The Eye can camp dropped loot.

---

## The Betrayal Layer

Runners exist in an **uneasy alliance** with multiple betrayal vectors:

| Mechanic | How It Works | Risk/Reward |
|----------|-------------|-------------|
| **Noise Bait** | Create noise near an ally to draw Eye attention to them | Free but obvious if witnessed — ally will distrust you |
| **Loot Theft** | Grab items from downed/slow Runners or their stash spots | Gain loot without exploration risk, but now you're heavier + ally is hostile |
| **Sacrifice Ping** | Anonymously reveal another Runner's location to the Eye | Eye gives you a Dread-reduction (fewer traps near you) — but if they die, they become a minion hunting YOU |
| **Extraction Race** | Only limited altar slots / the Eye focuses whoever channels first | Incentivizes letting others go first as distraction, or racing to beat them |

**Design Intent:** Betrayal is always an option but never the optimal strategy. Cooperation is usually better — but the paranoia that betrayal COULD happen creates tension even when it doesn't.

---

## The Minion System (Dead Runners)

When a Runner dies, they don't spectate — they switch sides:

**Minion Abilities:**
- **Mark:** Ping a living Runner's location to the Eye (cooldown)
- **Noise:** Create environmental noise to mislead or attract Eye attention
- **Block:** Temporarily seal a doorway or corridor (costs Eye's Dread)
- **Haunt:** Follow a Runner invisibly — if they stay in one spot too long, reveal them

**Minion Perspective:** Third-person ghost view, can pass through walls, faster than Runners but has no direct damage.

**Escalation Effect:** Each death makes the Eye's team stronger. By the endgame, a solo surviving Runner faces the Eye + 1-3 coordinating minions. This creates the "escalating inevitability" pillar naturally.

---

## The Dollhouse Map

### Structure
- Cutaway castle — front wall removed, all rooms visible from the Eye's exterior perspective
- Rooms have Z-axis depth (the dimension the Eye can't fully see into from the side)
- Runners navigate a 3D interior; Eye observes a 2D cross-section

### Procedural Generation (Post-MVP)
- Room prefabs connected via tagged connection points (Up/Down/Left/Right)
- WFC-inspired constraint solving for valid layouts
- Volumetric overlap testing prevents broken geometry
- Corridors auto-generated between distant rooms via A* pathfinding
- Props populate interiors via weighted randomization + Perlin noise clustering

### Geometric Stealth
- No dynamic lighting or shadow-based stealth
- Pure physics raycast: if a collider blocks the vector between Eye and Runner, Runner is hidden
- Multi-point raycasting (head, torso, extremities) prevents "hidden arm" exploits
- Cover is destructible — Eye laser can destroy props after a delay, exposing Runners
- Runners can flip/push props to create new cover dynamically

### Map Scaling (by Player Count)

| Players | Rooms | Altars | Incarnation Props | Estimated Size |
|---------|-------|--------|-------------------|----------------|
| 2 (1v1) | 8-12 | 1 | 3-4 | Small |
| 3 (1v2) | 14-18 | 2 | 5-6 | Medium |
| 4 (1v3) | 20-24 | 2-3 | 7-8 | Large |
| 5 (1v4) | 26-30 | 3 | 9-10 | XL |

---

## The Extraction Loop

### Loot System
- Items scattered throughout rooms (treasures, relics, coins)
- Each item has a weight value and a loot value
- Some items are high-value/high-weight (gold bars), others are light/low-value (gems)
- Runner's loot counter tracks total value collected (including stashed items)

### Extraction Sequence
1. Runner's loot counter hits **extraction threshold** (configured per match)
2. **Exit Altars** activate (placed at map extremities — dangerous to reach)
3. Runner must reach an altar and **channel for 5-8 seconds** (stationary, exposed)
4. During channel: Runner cannot move, Eye is notified of altar activation with a global ping
5. If channel completes: Runner extracts successfully — excess loot above threshold becomes persistent currency
6. If interrupted (hit by laser): Channel resets, Runner must survive and retry

### Win Conditions
- **Runner Victory:** Extract successfully (individual win — each Runner can win or lose independently)
- **Eye Victory:** Eliminate ALL Runners before any extraction occurs
- **Partial Victory:** Some Runners extract, some die — both sides get partial rewards

---

## Match Flow

### Pre-Match
1. Lobby: Players queue or create private room via relay server
2. Role Assignment: Eye is assigned (rotation, volunteer, or random)
3. Map Generation: Procedural dollhouse assembles (loading screen)
4. Spawn: Eye at exterior origin, Runners at randomized interior spawn points

### In-Match Phases

| Phase | Duration | Events |
|-------|----------|--------|
| **Grace Period** | 0:00-0:30 | Eye view is obscured/limited. Runners orient and grab nearby loot safely. |
| **Hunt Begins** | 0:30-5:00 | Eye gains full vision. First encounters. Runners spreading out. |
| **Mid-Game** | 5:00-10:00 | Weight builds. Shrine visits. First deaths likely. Minions activate. |
| **Threshold Race** | 10:00-14:00 | Runners approaching extraction threshold. Betrayal temptations peak. |
| **Extraction Crisis** | 14:00-18:00 | Altars active. Do-or-die channeling attempts. Eye focuses everything on denial. |
| **Overtime** | 18:00+ | If no resolution: map starts collapsing inward (rooms seal off), forcing confrontation. |

### Post-Match
- Results screen: kills, extractions, loot collected, betrayals committed
- Persistent currency awarded based on performance
- Role rotation for next match

---

## Shrine Economy

Shrines are scattered in exposed locations (dangerous to visit). Runners spend collected loot to buy defensive/utility items:

| Item | Loot Cost | Weight | Effect |
|------|-----------|--------|--------|
| **Ocular Paint** | Medium | 0 kg | Blind one incarnation prop permanently (Eye can't possess it) |
| **Mirror/Flashlight** | High | 2 kg | Reflect/blind the Eye for 2-3 seconds when aimed at their pupil |
| **Grappling Hook** | Medium | 3 kg | Adds grapple ability — traverse exposed areas quickly via anchor points |
| **Smoke Bomb** | Low | 1 kg | 5-second local smoke cloud — blocks raycasts in area |
| **Decoy** | Low | 0 kg (consumed) | Spawns a moving hologram that mimics Runner movement briefly |
| **Weight Reducer** | Very High | -3 kg (reduces total) | Expensive but lightens your load permanently |

**Economic Tension:** Buying items costs loot → delays extraction threshold → extends match → more danger. But NOT buying items means no defense against Eye abilities.

---

## Sound Design as Gameplay

Sound is a critical information channel for both sides:

**Runner-Generated Sounds (Eye Can Hear):**
- Sprinting (louder than walking)
- Landing from heights (loud thud, scales with fall distance)
- Breaking fragile props (instant noise spike)
- Interacting with shrines (chime sound)
- Failed parkour (stumble sound)
- Dropping items (clatter)

**Eye-Generated Sounds (Runners Can Hear):**
- Laser charging (escalating pitch — directional audio)
- Incarnation activation (whisper sound at possessed prop)
- Trap placement (subtle click in affected area)
- Minion marking (ghost whisper near marked Runner)

**Sound Radius System:**
- Each sound has a propagation radius
- Eye hears Runner sounds as UI indicators (direction + intensity) rather than spatial audio (since Eye is exterior)
- Runners hear Eye sounds spatially (directional, distance-attenuated)
- Noise feeds the Dread economy — louder Runners = more Dread for Eye

---

## Progression and Monetization

### Persistent Progression (Meta-Game)
- **Currency:** Excess extraction loot converts to persistent coins
- **Unlocks:** Cosmetic skins for Runners and Eye (no gameplay advantage)
- **Mastery Track:** Per-role progression that unlocks visual flair (trail effects, eye colors, finisher animations)
- **Stats:** Lifetime extraction rate, average loot per match, kill count (Eye), survival time

### Monetization Model
- **Premium purchase** (one-time buy on Steam)
- **Cosmetic DLC/Battle Pass** (optional, cosmetics only)
- **No pay-to-win** — all gameplay items available to all players
- **No loot boxes** — direct purchase or earn through play

---

## Onboarding Flow

### Tutorial Sequence (Mandatory First Launch)
1. **Runner Movement Tutorial** (2 min): Obstacle course teaching sprint → jump → wall jump → dash → slide → chain them together. No Eye pressure. Pure flow learning.
2. **Weight Tutorial** (1 min): Pick up items, feel the degradation. Drop them, feel the freedom return. Visceral demonstration of the core tension.
3. **Eye Tutorial** (2 min): Pan the dollhouse, find a dummy Runner, charge + fire laser. Teach zoom, incarnation basics.
4. **First Match vs AI Eye** (5 min): Simplified map, AI Eye with telegraphed patterns. Runner wins easily but learns the stakes.

### Ongoing Learning
- **Loading screen tips** contextual to chosen role
- **Post-death replay** showing the Eye's perspective of your kill (learn what you did wrong)
- **"Ghost runs"** — watch high-level players' extraction replays from the menu

---

## Technical Architecture Summary

### Networking Model
- **Authority:** Server-authoritative (Eye host or dedicated)
- **Transport:** FishNet v4 + Synapse UDP for game traffic
- **Relay:** WebSocket relay server for lobby/matchmaking + fallback relay
- **Prediction:** Client-side prediction for Runner movement (responsiveness critical for parkour feel)
- **Tick Rate:** 30Hz minimum for smooth parkour replication

### Key Systems (Implementation Priority)

| Priority | System | Reason |
|----------|--------|--------|
| 1 | Runner Movement Controller | The game IS the movement. Must feel perfect. |
| 2 | Weight System | Core mechanic — must prove fun immediately |
| 3 | Eye Camera + Laser | Need both roles playable to test asymmetry |
| 4 | LoS Raycasting | Geometric stealth is the core stealth mechanic |
| 5 | Networked Multiplayer | Can test 1v1 with FishNet early |
| 6 | Loot + Extraction | Victory condition completes the loop |
| 7 | Procedural Map Gen | Every run is unique — no static maps, procgen from room modules |
| 8 | Incarnation System | Eye depth — adds strategic variety |
| 9 | Trap/Dread Economy | Eye mid-game tools |
| 10 | Minion System | Endgame escalation |
| 11 | Shrine/Item Economy | Runner depth |
| 12 | Betrayal Mechanics | Social layer (last — depends on everything else working) |

### Data Architecture
- **ScriptableObjects** for all tunable game data (ItemData_SO, TrapData_SO, RoomNode_SO, GlobalRules_SO)
- **No hardcoded values** — all balance numbers exposed to designer in Inspector
- **Modular prefab system** for rooms, props, items, traps

---

## Player Motivation Analysis (Self-Determination Theory)

### Autonomy
- **High:** Constant meaningful choices — what to grab, where to go, when to risk, whether to betray, what to buy at shrines, where to stash loot
- **Eye:** Choose between scanning, trapping, incarnating, commanding minions — multiple valid strategies per moment

### Competence
- **Runner:** Movement skill grows visibly — chaining parkour moves faster, reading maps better, optimizing weight budgets
- **Eye:** Reading behavior improves — predicting Runner routes, timing traps, coordinating minion pressure
- **Both:** Clear feedback loops (extracted / died / betrayed — you know exactly what went wrong)

### Relatedness
- **Social stories:** "Remember when you sold me out and I became a minion and hunted you down?" — emergent narrative
- **Rivalry:** Repeated matches build Eye vs Runner rivalries
- **Uneasy trust:** Helping an ally creates genuine social bonding — especially when betrayal was possible

---

## Risk Register

| Risk | Severity | Likelihood | Mitigation |
|------|----------|-----------|------------|
| Weight curve feels punishing, not fun | High | Medium | Playtest week 1. Make all values SO-tunable. The "droppable" mechanic is the safety valve. |
| Eye role is boring between kills | High | Medium | Incarnation + traps + minion commands keep Eye constantly busy. Test Eye entertainment early. |
| Parkour controller feels clunky | Critical | Low | Prototype movement FIRST (week 1-2). Iterate until it feels great before adding any other system. |
| Asymmetric balance (Eye too strong/weak) | High | High | Accept imbalance in prototype. GlobalRules_SO allows rapid tuning. Plan for balance as ongoing work. |
| Procedural maps produce unplayable layouts | Medium | Medium | Defer procgen to post-MVP. Hand-craft test maps to prove fun first. |
| Relay server latency ruins parkour | Medium | Low | Synapse UDP + client prediction. Test network feel in week 3-4. |
| Minion role is boring (dead = no fun) | Medium | Medium | Give minions real agency + communication tools. Test minion fun before committing. |
| Mobile pivot later is impossible | Low | Low | Design desktop-first. Mobile is a "maybe someday" — don't compromise PC design for it. |

---

## Scope Tiers

### Tier 1: MVP Prototype (2 months)
- Runner movement controller (full parkour kit)
- Weight system with all tiers affecting abilities
- Eye 2D pan/zoom camera + charged laser
- Basic LoS raycasting (geometric stealth)
- 10 room prefabs + procedural map generator (unique layout every run)
- 3 loot item types with weight values
- 1 extraction altar with channeling
- FishNet multiplayer (1v1: 1 Eye + 1 Runner)
- Basic lobby via relay server

### Tier 2: Alpha (+ 2 months)
- Procedural map generation (room stitching algorithm)
- Weight drop/stash mechanic
- Incarnation system (Eye possesses props)
- 2-3 shrine items
- Prop destruction (Eye laser destroys cover)
- 3-player support (1v2)
- Sound radius system (basic)

### Tier 3: Beta (+ 2 months)
- Trap/Dread economy
- Minion system (dead Runners switch sides)
- Full shrine item roster
- Betrayal mechanics (noise bait, sacrifice ping, loot theft)
- 5-player support (1v4)
- Map scaling by player count
- Dynamic prop spawning (Perlin noise interiors)

### Tier 4: Launch (+ 3 months)
- Mixed match modes (solo/team/competitive)
- Persistent progression + cosmetics
- Onboarding/tutorial flow
- Sound design polish (spatial audio, UI indicators)
- Post-match replay system
- Balance pass (extensive playtesting)
- Steam integration (matchmaking, achievements, leaderboards)

### Tier 5: Full Vision (+ 3 months post-launch)
- Ranked mode with ELO
- Custom lobbies with modifier settings
- Community map sharing (curated room prefabs)
- Seasonal cosmetic content
- Spectator mode

---

## Visual Identity Anchor

**Direction: Gothic Dollhouse Horror**

A cutaway Victorian-gothic castle rendered in stylized, slightly desaturated tones with high contrast between shadow areas and the Eye's laser glow. Not photorealistic — more "Dishonored meets Cult of the Lamb's architecture." Props and rooms are detailed enough to read at a glance but stylized enough for performance and clear gameplay communication.

**Visual Rule:** If you can't instantly tell "that's cover" or "that's exposed" from ANY camera angle (Eye or Runner), the art has failed.

**Supporting Principles:**
1. **Readability over beauty** — Silhouettes must be instantly legible. Cover reads as cover. Loot glows. Danger is red. Safety is blue-green.
2. **The Eye is the light source** — The Eye's gaze creates the only "warm" light in the scene. Everything else is cool/muted. Where the Eye looks, things illuminate. This is cosmetic, not gameplay-mechanical.
3. **Weight is visible** — Runners physically change posture and carry visible bags/items as weight increases. At Overloaded tier, they're visibly struggling. Readable from the Eye's 2D view.

---

## References and Influences

| Game | What We Take | What We Reject |
|------|-------------|---------------|
| Dead by Daylight | Asymmetric 1vMany structure, role rotation | Slow survivor gameplay, repetitive loops |
| Mirror's Edge | First-person parkour feel, momentum flow | Linear levels, no replayability |
| Lethal Company | Extraction greed psychology, "one more item" tension | Cooperative-only, no PvP tension |
| Ghostrunner | Speed, wall-running, one-hit deaths | Difficulty-focused, no multiplayer |
| Prey (2017) | "Objects are watching you" paranoia, environmental threats | Single-player, slow pacing |
| Karlson | Fluid FPS movement, physics interactions | No depth, arcade-only |
| Content Warning | Social extraction, viral moments, shared risk | Low stakes, comedy-focused |

---

*Document version: 1.0*
*Created: 2026-06-23*
*Status: Concept locked — ready for system decomposition*
