Production context
GDD/03-Enemies/01-Zombie-Design.mdVerified implementation evidence
- Not verified for this documentation pass.
Relationships
Document contract coverage
Use these required Feature Specification areas during review. The HTML content below is authoritative; 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
Authoritative project 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.
Current zombie roster — [CONFIRMED]
| Type | Behavior | Role |
|---|---|---|
Zombie_General | General-purpose common zombie. Starting numbers are in the P14 table below. | Baseline regional pressure and ordinary groups. |
Zombie_Hulk | Larger body, higher health and attack damage, slower movement. Starting numbers are in the P14 table below. | Durable heavy threat that consumes time and ammunition. |
This is the confirmed initial roster. Any additional zombie archetypes require a later explicit decision. Neither starting type has an armored zone.
P14 starting stats — [CONFIRMED 2026-09-22]
Owner asked for a starting set for Zombie_General and Zombie_Hulk. These values are the P14 data defaults. Later tuning replaces them in the owning data, not by a hidden code constant. Health uses the same 0–100 player attribute scale. Close-range L1810 body damage is 28 and a head hit is ×1.75, from FEAT-COMBAT. Player walk / jog / sprint are 165 / 442 / 600 cm/s. A hit of at least 10 can bleed; a hit of at least 40 can fracture, from FEAT-SURVIVAL.
| Field | Zombie_General | Zombie_Hulk |
|---|---|---|
| Health | 80 | 220 |
| Wander speed | 140 cm/s | 90 cm/s |
| Chase speed | 280 cm/s | 165 cm/s |
| Melee damage | 18 | 45 |
| Melee reach | 150 cm | 220 cm |
| Attack windup | 0.45 s | 0.85 s |
| Attack recovery | 0.35 s | 0.65 s |
| Sight range | 2000 cm | 1500 cm |
| Sight half-angle | 60° | 50° |
| Hearing, gunfire | 4000 cm | 4000 cm |
| Hearing, sprint | 1500 cm | 1500 cm |
| Hearing, vehicle | 8000 cm | 8000 cm |
| Attack set | One melee strike | One melee strike |
At these defaults a close L1810 kills a General in 3 body shots or 2 headshots, and a Hulk in 8 body shots or 5 headshots. General chase is faster than walk and slower than jog. Hulk chase matches walk, so jog and sprint escape it. General damage can bleed and does not reach the fracture threshold. Hulk damage does. Spawn caps, region density rates and the global density multiplier are not in this table.
P14 stand-in mesh — [CONFIRMED 2026-09-22]
The first damage-receiving pawn uses SKM_Manny_Simple at /Game/MaleLocomotionSet/Demo/Mannequins/Meshes/SKM_Manny_Simple and loops A_INP_Idle from the same mannequin set. General and Hulk share that mesh. It is not a MetaHuman and it is not the shipping zombie mesh. Final meshes stay optimized custom skeletal meshes under Content/Lambeer/Characters/Zombies/. The stand-in is not saved: killing one does not create a P07 record and a restart does not restore it as dead.
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]. [CONFIRMED 2026-09-22] The P14 encounter slice uses those sight and hearing signals only. An active laser/light does not change zombie detection in that slice. Exact laser/light bonuses remain
TBD-11668480. - Implementation — [CONFIRMED 2026-09-22]: the P14 zombie slice uses StateTree and EQS on an AIController. Behavior Trees are not the P14 implementation. Mass/MassAI is not part of P14. The project already enables the
StateTreeandGameplayStateTreeplugins. - Weak points (head) give bonus damage; some types have armored zones. See ../01-Gameplay/03-Combat-System.md.
Spawning & density
- Density controls — [CONFIRMED]: dedicated-server settings define the global density multiplier, while each authored region defines its own local density rate. Effective density combines the server-wide setting with the regional value.
- Dynamic horde events — [CONFIRMED as zombie role]: roaming hordes / surge events that create emergent pressure and pull players (and PvP) together. [CONFIRMED 2026-09-22]
TBD-C5A45C93trigger: player noise or player activity. A timer alone does not start a horde. Cadence remains [TBD]. Implementation isROAD-P27-02, not P14. - 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 later if hordes must be very large. That evaluation is not part of P14; P14 stays on AIController + StateTree.
- 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).