Back to technical archive

Archive case / 002

Body & Soul

An asymmetric co-op prototype where Body and Soul players share a server-authoritative team-health pool.

Replicated co-op prototype

Unreal Engine 5 / C++ / GAS

Video evidence / The capture shows alternating Body/Soul spawns, damage, and the replicated shared-health update across PIE instances.

Engineering question

How can two asymmetric player characters share one failure state while keeping GAS setup extensible?

Focus

  • Shared health
  • Role spawning
  • GameState replication

The technical question

What was being tested

How can two asymmetric player characters share one failure state while keeping GAS setup extensible?

Implementation notes

What I built

  1. 01

    Role spawning

    GameMode alternates Body and Soul pawn classes so asymmetric co-op sessions can be tested without a role-selection layer.

  2. 02

    GAS ownership

    Player capabilities are initialized through a PlayerState-owned Ability System Component, with separate pawn-owned setup for AI actors.

  3. 03

    Shared authority

    GameState owns the replicated team-health value, keeping the co-op fail state server-authoritative and readable by every client.

System map

The working path

A compact model of the relationships this experiment was designed to make explicit.

  1. 01

    GameMode role assignment

  2. 02

    Body / Soul pawns

  3. 03

    GameState shared health

  4. 04

    Replicated UI feedback

Evidence and limits

What this proves

The capture shows alternating Body/Soul spawns, damage, and the replicated shared-health update across PIE instances.

The ability and UI layers remain prototype-grade: the health UI validates through direct GameState reads and the dedicated reduce-health ability is still a placeholder.

Next iteration

Move shared health toward a dedicated authority ASC, replace the prototype update path with delegates, and add multiplayer functional tests.