Production context
GDD/01-Gameplay/02-Player-Character.mdVerified implementation evidence
Source/Lambeer/Character/LambeerCharacter.*Source/Lambeer/Character/LambeerCameraComponent.*Source/Lambeer/Character/LambeerLocomotionComponent.*Source/Lambeer/Character/LambeerAimComponent.*
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
Overview
The player is a third-person, MetaHuman-based survivor. The character class is implemented in C++ (ALambeerCharacter or a renamed survival character) using a component-driven design so that survival, inventory, combat, and building are decoupled, reusable, and individually testable.
Camera & perspective — [CONFIRMED]
- Third-person over-the-shoulder as the default camera when the player is actively aiming.
- The game stays third-person in all aim states (no forced first-person swap).
- Camera shoulder-swap (left/right) for corner peeking is [RECOMMENDATION].
- Use
USpringArmComponent+UCameraComponent. Aim state changes spring-arm length, socket offset, and FOV via timeline/interp (driven byULambeerCameraComponent+ replicatedULambeerAimComponent).
Aim modes — [CONFIRMED]
Three firearm aim states (DayZ-like). Input is not a single “always ADS” toggle:
| Mode | Input | Weapon pose | Camera |
|---|---|---|---|
| HipRelaxed | Default (no shoulder-aim hold, ADS off) | Weapon lowered at hip/ready-low | Default over-shoulder; widest combat spread (see 03-Combat-System.md) |
| ShoulderAim | Hold right mouse | Weapon raised at shoulder (ready), not full ADS | Shorter spring-arm / raised socket; intermediate spread |
| ADS | Tap right mouse (quick click) | Full ADS pose | Shortest arm, reduced FOV (~70°), tightest spread |
- Right mouse is shared: quick click toggles ADS; hold past threshold (~0.2 s) enters ShoulderAim until release (no ADS toggle on that press).
- ADS takes priority for camera/spread when toggled on while shoulder aim is held.
- Replicate aim mode so remote players see the correct pose; server validates transitions.
- Animation BP consumes replicated aim mode for weapon raise/lower and ADS overlays.
Locomotion
- Walk / jog / sprint, crouch, jump, vault/mantle [RECOMMENDATION].
- Sprint and most actions consume stamina (see 04-Survival-System.md).
- Encumbrance from inventory weight affects move speed and stamina (full-sim survival). See 06-Inventory-and-Items.md.
- Movement is networked via the replicated
UCharacterMovementComponent; custom movement (climbing/vaulting) must be implemented network-safely.
Component architecture
The character is a thin actor that owns gameplay components. Recommended components (names indicative):
| Component | Responsibility | C++/BP |
|---|---|---|
USurvivalStatsComponent |
health, stamina, hunger, thirst, temperature | C++ |
| Wetness (name [TBD]) | rain exposure, WetAmount on pawn / worn-held items — 11-Wetness-and-Rain.md |
C++ |
UInventoryComponent |
item stacks in worn containers, weight | C++ |
UEquipmentComponent |
worn clothing/backpack, back weapons 1–2, use-quick assignments | C++ |
UCombatComponent |
firing, melee, hit detection, recoil, chamber/mag | C++ |
UBuildComponent |
enters build mode, previews & places pieces | C++ |
UInteractionComponent |
look-at / use prompts (doors, loot, vehicles) | C++ |
UCraftingComponent |
recipe access, craft requests | C++ |
USkillProgressionComponent |
Phase 2 learn-by-doing skill state and activity progress | C++ |
| Ability/Buff layer | permanent buffs, status effects | [RECOMMENDATION] GAS — see ../05-Technical/01-Tech-Stack-and-Engine.md |
Rationale: components keep
ALambeerCharactersmall and let the same systems be reused by NPCs/bots later. All gameplay-relevant state on these components must be properly replicated (server-authoritative).
Phase 2 skills are learn-by-doing and live outside Phase 1 character creation. Attribute-facing skills such as Endurance and Strength should modify shared GAS/inventory/combat systems rather than custom one-off character fields.
Player states & stances
- Stances: standing / crouched (prone is [TBD]).
- Combat stances: unarmed, melee-ready, firearm-hip-relaxed (
HipRelaxed), firearm-shoulder (ShoulderAim), firearm-ADS (ADS), building mode. - Downed/incapacitated state for squad revive is [RECOMMENDATION] (good co-op tension; adds netcode/anim cost).
Identity & customization
- Character appearance authored via the MetaHuman pipeline. See ../06-Art-Audio/01-Art-Direction-and-MetaHuman.md.
- Character creation lets the player pick a curated preset (male/female base) and customize hairstyle, skin color, and eye color — editable later at an in-game barber. Cosmetic-only; no stat advantage. Body size is not adjustable (fixed hitbox for PvP fairness). Full spec: 08-Character-Creation.md.
- Cosmetic customization (outfits) also fits the buy-to-play model. Cosmetic-only; no stat advantage.
Animation
- Animation Blueprint(s) per the MetaHuman skeleton, driven by movement and combat state. Heavy logic stays in C++; the ABP consumes replicated/animation state.
- The project ships with the
StateTreeandGameplayStateTreeplugins enabled — these are primarily used for AI, but the player animation graph remains a standard Anim BP.