Project Winterfell

Personal project — pre-production, ongoing

A dark fantasy action RPG set in a world inspired by Game of Thrones, built in Unreal Engine 5.6 as a portfolio capstone. The full tutorial sequence is complete and playable end to end. Next up is laying out the game's main map.

Narrative — Oathbreaker

Bran is a soldier serving the King. He is given an order: wipe out a village accused of rebellion. The truth is far less noble: the village's lord had refused to surrender his lands and resources to the Crown, and the King answered that refusal with slaughter, dressed up as a response to rebellion.

In the chaos and fire, Bran finds a child hiding among the dead, the lord's daughter. He can't bring himself to kill her. He lets her escape.

Ten years pass. Bran is now a knight of the Royal Guard. A new uprising has begun, led by a mysterious figure the King wants found and stopped. As Bran investigates, the truth comes into focus: the rebel leader is the same girl he spared a decade ago, now grown, and driven by a single purpose, to kill the King and avenge her father and her people.

Bran is forced into a final choice. He can break his oath and side with her against the King he's served his whole life, or he can stay loyal to that oath and hunt down the woman whose life he once chose to save. Neither path is clean, and the game closes on a boss encounter shaped by whichever choice the player makes.


Tech Stack

Built in Unreal Engine 5.6, combining Blueprint and C++ in Rider. Modeling in Blender, animation via Mixamo, VFX in Niagara. Version control through Git with Fork.

Character abilities run on a Gameplay Ability System (GAS). GAS is Unreal's framework for building character abilities, stats, and effects in a modular, data driven way, rather than hardcoding what each ability does directly into a character's Blueprint. In this project it's structured around a base character class, a talent tree component, and a shared attribute set, which means new abilities and enemy variants can be composed from reusable pieces instead of built from scratch each time.

Tutorial Map Layout

The layout for the tutorial level, the space where all nine steps of the scaletta play out, is tracked on Figma from early sketches through to the final blockout.

Milestone: Tutorial Blockout Complete

The full 9 step tutorial scaletta is implemented and playable start to finish. It's the project's first major checkpoint ahead of the Gamescom presentation.

Systems Implemented — Core Tutorial

  • Minimal, reusable dialogue system (single multi line widget)

  • Dynamic control prompts for contextual input (Kenney icon pack)

  • Combat feedback: hit stop and camera shake on attacks

  • NPC companion that follows the player along a spline

  • Scripted sequences (enemy deaths, companion death)

  • Background combat vignettes

  • NPC rescue scene

  • Mission tracker UI

Systems Implemented — Beyond the Scaletta

  • A healing and potion system built as a dedicated Gameplay Ability

  • A scripted sequence where an ally dies under rubble, solved with a simplified overlap trigger instead of a fragile Blueprint to Blueprint Event Dispatcher chain

  • A full boss fight (see deep dive below)


    Watch the full tutorial blockout



Technical Problem Solving

A few recurring challenges worth calling out on their own, since they reflect the kind of debugging and architecture decisions that don't show up in a feature list.

  • Animation Mode conflicts between Play Animation and Play Montage on the skeletal mesh component, resolved by explicitly managing Animation Mode switches

  • Ragdoll physics stability, preventing characters from "exploding" on death through targeted collision response tuning between the capsule and the mesh

  • Enemy variant architecture: base, intermediate, and boss enemies built through Talent composition on the talent tree component instead of separate Blueprints per enemy type, for easier scaling

  • A reusable death binding pattern (Bind Event to On Death) in the Level Blueprint, applied consistently across multiple actors instead of one off solutions each time