

Role
Software Engineering Lead
Description
Starboard is an action/adventure game with complex movement mechanics such as wall running, rope swinging, rope dashing, sliding, vaulting, etc. It also has in-depth combat mechanics that make every fight feel thought out.
As the Software Engineering Lead, I collaborated closely with my team to design and implement various complex features and mechanics. I played a key role in developing and thoroughly code-reviewing each feature to ensure quality and functionality. I managed 3 programmers and 2 Technical Designers (TDs).
Year
2023-2024
Language
C++ and Blueprints
Platform
Windows PC
Team Size
19+ People
Engine
Unreal Engine 5

Combat Mechanics
My team and I developed a comprehensive and modular combat system designed to provide dynamic and engaging gameplay. We created a flexible Health Component with a robust API, allowing for easy integration and customization across different characters and enemies. The Combat Component featured intuitive functions that enabled precise damage tracing during specific animation frames and allowed characters to apply various effects such as damage, knockback, and stun.
In addition to the core systems, we implemented several combat mechanics to enhance player interaction. These included a parry mechanic for deflecting attacks, a hook pull mechanic that allowed players to pull stunned enemies toward them using the rope, a powerful drop slash mechanic for high-impact attacks, and a dodge mechanic for evasive maneuvers. We also added a kick and a drop kick mechanic to give players more options in combat. These mechanics were designed to be flexible, ensuring they could be easily adapted and expanded as the game evolved.


Movement Mechanics
My team and I developed a comprehensive and modular combat system designed to provide dynamic and engaging gameplay. We created a flexible Health Component with a robust API, allowing for easy integration and customization across different characters and enemies. The Combat Component featured intuitive functions that enabled precise damage tracing during specific animation frames and allowed characters to apply various effects such as damage, knockback, and stun.
In addition to the core systems, we implemented several combat mechanics to enhance player interaction. These included a parry mechanic for deflecting attacks, a hook pull mechanic that allowed players to pull stunned enemies toward them using the rope, a powerful drop slash mechanic for high-impact attacks, and a dodge mechanic for evasive maneuvers. We also added a kick and a drop kick mechanic to give players more options in combat. These mechanics were designed to be flexible, ensuring they could be easily adapted and expanded as the game evolved.
Cinematics Tool
I developed a versatile cinematics tool by refining and expanding upon the initial code from a tech designer on our team. This tool allows for the seamless playback of any cinematic MP4 file at any point in the game using a very easy to read, custom-built API.
I designed user-friendly functions that enable easy selection of the MP4 file and precise timing for when it should be played. During cinematic playback, the tool automatically disables player input and UI to ensure an immersive experience until the cinematic concludes.
Additionally, I implemented event dispatchers that trigger as soon as the cinematic ends, allowing designers to easily initiate events such as opening a level or door, adding a layer of interactivity and responsiveness to our game’s narrative flow.


Control Rig:
Enemy Look and Aim at player
Leveraging Unreal's Control Rig feature and 3D math, I developed a feature that ensures enemies' heads are always oriented toward the player when the enemy has detected them. The head rotation is clamped to maintain a realistic range of movement.
Additionally, when enemies are aiming, I ensure the tip of their shooting hand is precisely aligned with the player, including the up/down axis. The shooting logic then calculates shots based on the forward vector, with a built-in chance to miss.
Thanks to the Control Rig setup, the aiming feels more natural, and coding the shooting mechanics is simplified by just directing the pistol to fire forward.
Control Rig:
Consistent Gun position
While working on the player character's Animation Blueprint, we noticed that when a gun was equipped, the player's arm still moved as if holding a sword, making aiming extremely difficult and throwing off the gunplay.
To fix this, I used Unreal’s Control Rig and 3D math to lock the character’s right shoulder, arm, and hand in place, while still playing his normal animations. This Control Rig is only activated when the player equips a gun, ensuring smooth transitions and greatly improving the overall feel of the gunplay.

Blueprint Snippets

Enemy Spawner: Door
I designed and implemented a tool for my team that dynamically spawns enemies through a door with seamless, natural animations. The tool allows users to specify both the number and type of enemies via an intuitive interface.
To achieve this, I used a skeletal mesh to visually represent each enemy. By animating the mesh through a timeline, I simulated the enemy approaching and kicking down the door. The actual enemies are spawned behind the scenes before the animation starts, remaining immortal and invisible until their individual animations are complete. As each enemy finishes its sequence, they appear one by one, based on the specified number, after which the door closes.

Enemy Spawner: Simple
I developed a straightforward yet effective tool that allows users to spawn a selected enemy type at any desired location by simply dragging and dropping it onto the map. The tool autonomously handles the initialization of enemies, offering flexibility to either spawn them automatically at startup or trigger their appearance through custom events. Additionally, it efficiently manages enemy destruction when required, ensuring clean removal.