My Contributions

Sole programmer on a team of four. My work includes:

Gameplay Systems

  • Player controller: Jump, crouch, swim, sprint, walk

  • Boat system: APawn based rowboat with seat physics, water floating, and wave riding

  • Health system: Replicated HPComponent with networked damage and healing

  • Affliction system: Status effect component that drives colored HP bar slices for active conditions

  • Animation: Locomotion blending and IK feet

  • UI: Main Menu, Pause Menu, Win/Lose Screen

Team Infrastructure

  • Perforce server: Set up and maintain a Perforce depot with SSL for the remote team

This project is currently in development and represents my most technically ambitious work to date.

Technical Details

Built With:

  • Unreal Engine 5

  • C++

  • Blueprint

  • Animation Blueprint

  • Enhanced Input System

  • Multiplayer Networking (UE Replication)

  • Procedural generation

  • Perforce

Marooned

A multiplayer survival game set on the open ocean. Players explore, scavenge, and survive while hopping from island to island in search of Salvation Island!

  • Genre: Multiplayer Survival / Adventure

  • Platform: PC (Windows)

  • Engine: Unreal Engine 5

  • Language: C++

  • Development Time: In Development

  • Role: Sole Programmer & Game Design (Underscore Games)

Show your work

Boat and Water System: On the Open Water

The boat is an APawn that samples the ocean wave height at multiple points along the hull and applies buoyancy force at each one, so it pitches and rolls with the swells instead of sitting flat. Because it reads the same wave data the water surface is rendered from, the physics and the visuals stay in sync as the boat moves. The harder problem is the player: while standing on the deck they inherit the boat's motion every frame, staying planted without sliding or jitter as the surface shifts beneath them.

Health and Stamina System: One Bar, Two Systems

A single replicated component runs health and stamina as one tied system. Damage and healing are server authoritative, and stamina is capped to current health and drawn as a faded layer over the same bar, so one HP bar shows both at once and taking damage shrinks each together.

Affliction System: Death by a Thousand Cuts

A status effect system built on GameplayTags. To create a hazard, a designer drops a data only zone component onto any actor with collision and sets two values: the affliction tag and a drain rate per second. When the player overlaps it, the AfflictionComponent picks it up and ref counts overlapping sources, so several zones of the same type aggregate into one clean drain instead of stacking chaotically. Each active affliction then claims health from the HP bar as its own colored slice, so claimed and available HP always sum to the player's max and a single glance shows exactly what is wearing them down and by how much. Recovery is set per affliction: some tick back once the player leaves the hazard, others lock that health until a heal pays it down.

The Foundation

A friend had an idea, so we swam with it…

Feedback