Deadeye combat milestone

Bencci: Responsive networked combat in Unreal Engine and C++

An Unreal/C++ arena prototype exploring caster-owned Marks, ricochets, mobility and a thrown ballistic field, with integrated networked animation, VFX and audio.

Role
Solo Programmer and Designer
Context
  • Personal project
  • in development
Period
In development
Status
  • Private repository
  • available to discuss in interview
  • Unreal Engine 5.8
  • C++
  • Gameplay Ability System
  • Enhanced Input
Client and listen-server views of Deadeye and an active cyan Killbox in the prototype arena
Deadeye combat milestone: two identified player views during Killbox deployment.

Current development

Bencci is my ongoing Unreal Engine 5.8 multiplayer arena project. The current Deadeye slice brings together attacks, movement, character animation, combat feedback, functional audio and a replicated death foundation. The wider direction is Duo combat and evolving kits. The prototype does not yet deliver a complete match or player-facing Evolution flow.

Deadeye combat milestone, 36 seconds: client and listen-server views of the integrated prototype. Gameplay audio plays on request.

Deadeye’s combat identity

Basic Attack and Q / Mark

Deadeye is a marksman who uses geometry to plan shots. Basic Attack orders pursue and face a target, with the server deciding release and damage. Q pierces enemies, ricochets and applies a source-owned Mark. Marks are gameplay data. The symbol above a target only displays that state.

W / Carom and both E modes

Carom is a precision projectile that arms after a qualifying reflection, then ends on a valid target hit. A matching Mark from the caster or current Duo partner also qualifies a direct hit before a bounce. E either performs a bounded dash or teleports to a qualified marked enemy. It adds no roll or invulnerability and does not consume the Mark.

Prime / Killbox

Prime throws a device that activates a stationary ballistic field on landing. Characters cross freely, while compatible projectiles entering from outside can pass in and those leaving reflect inward. Reflection gives Q and Carom new routes. Compatibility and outcomes belong to gameplay rules rather than the visible panels.

The projectile-routing rule

A ricochet can bring a projectile back into the same target. I wanted geometry and target placement to matter without letting repeated contact with one opponent become the default source of damage.

The projectile remembers its last valid target. Consecutive hits on that target are rejected. A valid hit on another target replaces that history, making the first target eligible again.

Owning the setup

A wall bounce alone does not make A eligible again. Mark state belongs to the source player: reapplication refreshes that owner’s setup, and replacement respects its capacity without clearing another player’s Marks. W and E can qualify against a matching Mark from either current Duo member. This keeps setup attributable while making shared follow-ups possible. The wider partner and cross-kit validation matrix remains open.

Consecutive contactA → A

Second contact rejected

Another valid target in betweenA → B → A

A becomes eligible again

I tested both consecutive-hit rejection and A → B → A routing in multiplayer PIE.
Earlier Q ricochet and Mark test, not the integrated Deadeye milestone. This clip does not establish the complete A → B → A sequence.

From cast order to active Killbox

An out-of-range Prime starts as a pending approach order. The ability then owns preparation and release, a separate delivery actor owns flight, and the active Killbox owns field lifetime. Separating those stages means cancelling an uncommitted approach cannot leave a delayed spawn. After release, delivery and an active field survive the caster’s death. Cycle teardown has a different responsibility: it destroys the registered actors at the combat boundary.

Responsive feedback, authoritative outcomes

The server decides damage, projectile reflection and confirmed movement endpoints. Animation, Niagara effects and audio consume those events or replicated snapshots. Owner-side pursuit and facing respond immediately, while confirmed results determine hit feedback. Q release uses prediction with deduplication. E arrival follows the confirmed endpoint. Killbox ambience reconstructs from replicated time so an observer hears the current state instead of a stale activation. Ground movement commands clear AttackOrder, and normal E owns movement for its dash.

Iteration: timing the throw

During throw tuning, the source animation and gameplay release did not line up. I made preparation an explicit server-timed phase and aligned the W/R montage to preparation, release and recovery. Prime flight remains a separate delivery phase. Animation follows those boundaries: an animation Notify never launches a projectile or applies damage. This let me adjust the throw and quieter audio mix without moving combat authority into presentation.

Verification

The 3 October 2026 integration review records successful Editor and game Development builds and automated regression checks. The headless NullRHI/NoSound runs check policy and state. They do not prove rendered effects or audible playback. Separately, I accepted the prototype visuals and quieter mix through developer playtesting, including owner/observer hearing in two player windows. One-process listen-server fixtures and an actual death late-observer check provide bounded networking evidence.

What remains unverified

Separate-process and dedicated-server runs, packet loss, public-loadout late join and the broader partner/cross-kit/Avatar matrix remain unverified. Death currently persists a life snapshot, shuts down combat and commands, and presents the authoritative final transform and terminal animation. It is a death foundation, not a complete revival, respawn or spectator system.

Contribution and credits

I own and maintain the gameplay design, native GAS and multiplayer programming, presentation integration, debugging and iteration. Animation sources include Epic mannequin content and Adobe Mixamo. Character, prop and image content was supplied or generated externally and manually prepared in Blender. Sound sources include source-noted CC0 recordings and generated prototype audio. My work centres on gameplay rules and on integrating, debugging and refining those assets into readable combat feedback.

Planned, not implemented or tested

Next steps

Mutable-kit, combat-boundary, Avatar replacement and public-loadout foundations already exist. Production Cycle orchestration, Evolution offers, Shift and Core Points remain planned. Teammate spectating is a proposed next step, with automatic-follow versus manual-switch policy still to decide. Wider networking validation, asset clearance, packaging and a complete match/return flow remain release gates. The repository is private, with no public source or playable download.