Skip to content

Gameplay Objects and Parameters

All parameters should be exposed via Primary Data Assets and/or UPROPERTY(EditDefaultsOnly) for designer tuning.

Character (APlatformCharacter)

  • Movement
    • WalkSpeed: 600 uu/s (range 500–700)
    • SprintSpeed: 900 uu/s (range 800–1000)
    • AirControl: 0.5 (range 0.2–0.8)
    • JumpMaxCount: 2 (double jump)
    • GravityScale: 1.0 (range 0.9–1.3)
  • Camera (UCameraComponent via SpringArm)
    • TargetArmLength: 450 (range 350–600)
    • bUsePawnControlRotation: false
    • LagSpeed: 12.0; RotationLagSpeed: 10.0 (lower=snappier)
    • FOV: 90 (range 80–100)
  • Input (Enhanced Input)
    • Move: Axis2D (WASD/Stick)
    • Look: Axis2D (Mouse/RightStick)
    • Jump: Action (Press to Jump, Hold optional)
    • Interact: Action (E / X)
    • Sprint: Action (Toggle/Hold)

Interaction System

  • Trace: Sphere, Radius 60 (range 40–80), Range 250 (range 200–350), Channel Visibility or custom Interactable
  • UI Prompt: "{Verb} {Name}", show/hide on focus; 0.1s fade

Enemy (AEnemyNPC)

  • Perception: Sight 1800/2200, FOV 60 deg (increase for outdoor spaces)
  • Combat: AttackRange 200 (melee), Cooldown 1.2s, Damage 15
  • Movement: Optional patrol points, AcceptanceRadius 60

Friendly NPC (AFriendlyNPC)

  • Verb: Talk; DisplayName: e.g., Guide; DialogLines: array; CanTrade: false

Interactive Object (AInteractiveActor)

  • DisplayName; Verb; Cooldown 0.5s; OneShot true/false
  • Effects: ApplyStatDelta; GrantTag; TriggerEvent (ID)

Interactive Event (ATriggerEventActor)

  • Trigger: Box/Sphere/Capsule; Pawn-only; Repeatable false
  • Payload: Event ID (FName), Parameters (map), Delay 0.0

Stats (UStatsComponent)

  • HealthMax 100; StaminaMax 100; Regen 10/s (delay 1.0s); Armor 0; OnDeath delegate

Damage/Hit Reactions

  • DamageType: Melee/Ranged/Environmental; HitPause 0.05s; Knockback configurable

Save/Load (stretch)

  • Save slots; player stats; one-shot interactable toggles.

Rationale

  • Keep movement and camera responsive; tune lag and FOV for readability.
  • Use sphere trace for forgiving interactions; prompts must be unambiguous.
  • Enemy perception ranges should allow reaction time; telegraph attacks where possible.
  • Data-drive everything configurable to enable fast iteration without recompiles.