Independent · Technical Audio · Unreal Engine + Wwise

Charged Arcane Bolt

A gameplay-driven spell audio system where charge, instability, projectile motion and impact state shape the sound at runtime.

Watch on YouTube (opens in a new tab)

At a glance

  • Type

    Independent technical-audio project.

  • Engine

    Unreal Engine, driven via Blueprint.

  • Middleware

    Wwise, via RTPCs and runtime parameters.

  • Core concept

    A charge → overcharge spell whose sound tracks gameplay state through to a release or a backfire.

The audio problem

A charge that needs to be heard, not just seen.

A hold-to-charge spell is easy to represent with a timer or a VFX change. The harder problem is sound: building energy has to be audible while it's happening, continued risk has to feel increasingly unstable, and the eventual outcome — a clean release or a failed backfire — has to read as two genuinely different moments rather than one event with a different one-shot on top.

What I built

A charge-to-outcome state machine, heard at every stage.

A gameplay-driven spell audio system spanning a continuous charge, an audible overcharge/instability state, in-flight projectile movement and a final impact.

My contribution

Design, implementation and iteration.

  • Audio-system design and sound design
  • Unreal Blueprint implementation and integration
  • Wwise implementation and authoring
  • Runtime parameter behaviour
  • Gameplay-state / audio integration
  • Testing, debugging and iteration

How it works

System breakdown.

One continuous charge, then a choice

Charge is continuous until the full-charge boundary — there are no fixed intermediate tiers. What happens after full charge depends on what the player does next.

Charge

While input is held, CurrentChargeTime increases and drives a normalised ChargeLevel from 0–1. If the player keeps holding once charge is full, the ability doesn't cap out silently — it transitions into an overcharge state, tracked at runtime through OverchargeTime and InstabilityAlpha, which describes how unstable the current charge has become.

This graph tracks CurrentChargeTime and ChargeLevel while held, then branches into OverchargeTime / InstabilityAlpha once charge is full — the state that feeds the Wwise RTPCs below.
The Charge RTPC reshapes the charge loop's tonal character as it climbs, making building energy audible rather than inferred.

That Blueprint state reads out into a Charge Wwise runtime parameter, which reshapes the tonal character of the charge loop as it climbs — so building energy is audible rather than inferred.

Instability

Chaos is a separate Wwise parameter, driven from InstabilityAlpha during overcharge, so continuing to hold past full charge reads as increasing danger and unpredictability rather than a longer version of the same charge sound.

Projectile & Impact

On release, the projectile carries its charge and instability state forward. Its runtime velocity is measured in Unreal, mapped, and sent to Wwise as a Velocity parameter, so the in-flight audio responds to how the projectile is actually moving rather than playing back a fixed flight loop.

At impact, accumulated power and accumulated instability are deliberately kept as separate concepts rather than a single explosion parameter.

ExplosionPower scales the explosion's power-oriented layer, including its sub-layer gain behaviour.
ExplosionChaos drives a separate instability layer with a deliberately non-linear response curve, keeping chaos distinct from power.

Outcomes

A successful release earns a clear payoff to the buildup. A backfire is designed to read as a distinct outcome — not as a normal release with a different sound.

Normal release

  1. Stop charge state
  2. Spawn projectile
  3. Transfer charge / instability state
  4. Projectile flight
  5. Impact / explosion

Backfire

  1. Player remains in overcharge
  2. Maximum safe overcharge duration reached
  3. Backfire triggered
  4. Normal projectile release prevented

Result

Buildup, instability and outcome stay connected.

The finished system carries a single held input through a continuous charge, an audible instability state, in-flight movement and a final impact where power and chaos are heard as separate contributions — with a distinct backfire outcome when the risk isn't managed.

The moment ExplosionPower and ExplosionChaos resolve together — power and instability heard as separate, simultaneous contributions.