← Back to portfolio

UNREAL ENGINE · MULTIPLAYER GAMEPLAY

Wok This Way

Online multiplayer shooter · USC MFA thesis

My role
Gameplay Engineer
Project period
Sep 2025 — May 2026
Technology
Unreal Engine / Networking / Steam
View on Steam ↗

My contributions

GAMEPLAY

Implemented Steam lobbies and server-authoritative weapons, improving the multiplayer experience under high latency.

  • Integrated Steam Online Subsystem for lobby creation, joining, and match-start flow.
  • Synchronized firing, weapon state, and character interactions through RPCs and property replication, with server-side trajectory, collision, and damage validation.
  • Tuned network smoothing and interpolation to reduce position snapping and visual pulling under high latency.
  • Implemented a jelly effect with impact-normal-based non-uniform mesh scaling. SmoothStep interpolation drives squash and shape recovery, followed by restored rigid-body physics and progressively damped bounce impulses along the surface normal. Squash, stretch, deformation duration, and bounce settings are exposed in the editor.

Networking approach

NETWORKING

Multiplayer shooting connects three concerns: bringing players into the same match, keeping combat outcomes consistent, and presenting movement under network latency. My work covered each part of that flow.

Steam lobbies: from creation to match start

Integrated Steam Online Subsystem to connect lobby creation, joining, and match start into a playable multiplayer flow. The two-window recording below demonstrates players entering the same match.

Watch the lobby flow →

Server authority: consistent combat decisions

Built a server-authoritative weapon system, using RPCs and property replication to synchronize firing, weapon state, and character interactions. Server-side trajectory, collision, and damage validation provide a shared basis for combat decisions.

Network presentation: reducing visual pulling

Tuned the engine’s network smoothing and interpolation parameters to reduce position snapping and visual pulling under high latency. This work improved the visual continuity of movement while combat results remained subject to server validation.

Responsibility overview

  1. Session entry: Steam Online Subsystem integration supports lobby creation, joining, and match start.
  2. Combat synchronization: RPCs and property replication connect firing, weapon state, and character interactions; the server validates trajectories, collisions, and damage.
  3. Movement presentation: engine smoothing and interpolation reduce visual discontinuities caused by network updates.

Multiplayer lobby

01 / DEMOS
Multiplayer lobby · Create, join & start

Watch for: Compare both windows through lobby creation, joining, and match start, watching how each interface enters the same game.

Weapons & status effects

02 / DEMOS
Suction gun

Watch for: Watch how target objects move when the suction gun acts on them, relative to the muzzle.

Healing pool

Watch for: Compare the character’s state and healing feedback before and after entering the pool.

Jelly projectile effects

Watch for: Watch the jelly projectile’s motion and collision feedback, comparing its appearance with that of a rigid projectile.

Coffee effect · Screen stains

Watch for: Compare screen visibility before and after the effect, noting how stains obstruct the affected player’s view.

Caffeine effect · Screen shake

Watch for: Watch the camera shake when the effect triggers, distinguishing screen motion from character movement.

Photosynthesis effect

Watch for: Compare character state and visual feedback before and after the photosynthesis ability triggers.

Jelly special ability · Enhanced bounce

Watch for: Follow takeoff, airtime, and landing after the ability triggers, focusing on the bounce behavior.

Procedural conveyors

03 / DEMOS
Procedural spline conveyor · Demo 1

Watch for: Follow the conveyor path through straight and curved sections, noting the direction of object travel.

Procedural spline conveyor · Demo 2

Watch for: Track one object through a curved section, watching how its position follows the conveyor path.

Switch interaction · Reverse conveyor direction

Watch for: Compare object travel before and after using the switch, linking the interaction to the conveyor reversal.

Spawning & respawning

04 / DEMOS
Object spawner · Configurable random spawning

Watch for: Watch successive objects and their spawn positions through the configurable spawning demonstration.

Death & respawn flow

Watch for: Follow death, the interval, and reappearance, watching the character transition into respawn.

Jelly physics tests

05 / DEMOS
Additional work · Jelly impact & bounce

Watch for: Watch squash on impact, shape recovery, and bounce, relating the deformation direction to the contact surface.

View source code ↗
Jelly effect · Multiple objects

Watch for: Track successive impacts on one object, then compare deformation and bounce across the others.