Production context
Canonical source
GDD/03-Enemies/01-Zombie-Design.mdDecision markers2 confirmed · 5 recommendations · 2 TBD
Browser document roleRead-only production view; edit the GDD source or this generated system through the project workflow.
Verified implementation evidence
- Not verified for this documentation pass.
Relationships
Document contract coverage
Use these required Feature Specification areas during review. The imported GDD below is canonical; items not stated explicitly remain unresolved.
- ReviewPurpose & Player Value
- ReviewScope
- ReviewOut of Scope
- ReviewTerminology
- ReviewFunctional Behavior
- ReviewStates & Flows
- ReviewRules & Edge Cases
- ReviewDependencies
- ReviewAcceptance Criteria
- ReviewOpen Questions
Canonical GDD content
Zombies are the primary threat and feature multiple types — [CONFIRMED]. They provide constant PvE pressure that coexists with PvP, drive loot/resource gain, and culminate in boss encounters (see 02-Boss-Zombies.md).
Design goals
- Readable in third person: clear silhouettes, telegraphed attacks, distinct audio per type.
- Threat through numbers and variety: a single zombie is manageable; groups and mixed types are dangerous.
- Always-on pressure: zombies make every location risky, so safety must be built (base) or earned (gear), never assumed.
Zombie roster — [RECOMMENDATION] (final roster [TBD])
| Type | Behavior | Role |
|---|---|---|
| Walker (basic) | Slow, melee, common | Baseline pressure, fills hordes |
| Runner | Fast, melee, fragile | Punishes inattention; forces panic decisions |
| Tank / Brute | Slow, high HP, heavy hits | Soaks ammo; mini-threat at POIs |
| Spitter / Ranged | Ranged poison/acid attack | Forces movement; applies status effects (../01-Gameplay/04-Survival-System.md) |
| Screamer / Alerter (optional) | Calls/aggros nearby zombies | Adds stealth tension |
v1: ship 2–3 types (Walker + Runner, plus Tank or Spitter). Expand the roster in Phase 2.
Behavior & AI
- States: idle/wander → alerted (investigate sound/sight) → chase → attack → search/lose-target → return.
- Senses: sight (cone + range) and hearing (gunfire, sprinting, vehicles are loud). Stealth (crouch, suppressed weapons) reduces detection — [RECOMMENDATION].
- Implementation: the project already enables StateTree and GameplayStateTree plugins — [RECOMMENDATION] drive zombie AI with StateTree (modern, data-friendly, performant) rather than Behavior Trees. Use EQS for target/danger queries (the existing combat template already includes EQS contexts).
- Weak points (head) give bonus damage; some types have armored zones. See ../01-Gameplay/03-Combat-System.md.
Spawning & density
- Region-based density: rural < towns < military/industrial. Boss sites are special.
- Dynamic horde events — [CONFIRMED as zombie role]: periodic roaming hordes / surge events that create emergent pressure and pull players (and PvP) together. Triggered by timers, noise, or activity. Event design/cadence is [TBD].
- Spawn managed by server-side spawners/volumes with caps to protect performance.
Networking & performance — [RISK]
- Many AI agents + ~40–60 players is a major server CPU cost. Mitigations: AI LOD (cheap logic when no players near), capped active counts, spawn/despawn by relevancy, and efficient pathfinding. [RECOMMENDATION] evaluate Mass/MassAI for large crowds if hordes must be very large — but only if needed; classic AIController + StateTree is simpler for moderate counts.
- Zombies are server-authoritative; clients receive replicated transforms/states.
- Visuals: zombies must not be full MetaHumans — use optimized skeletal meshes with shared materials and aggressive LODs. See ../06-Art-Audio/01-Art-Direction-and-MetaHuman.md. Body blood stains use the shared visual contract (per-mesh mask +
BloodAmount): ../01-Gameplay/10-Blood-Visual.md. Rain wetness usesWetAmounton the pawn (visual only in v1; no AI change from rain): ../01-Gameplay/11-Wetness-and-Rain.md.
Implementation guidance
- A base
AZombieCharacter(C++) with aUZombieStatsComponent-style setup; type differences are data-driven (HP, speed, damage, senses, attack set) plus per-type StateTree where behavior diverges. - Reuse damage/health model with the player (shared damage system; [RECOMMENDATION] GAS).