> About_
I'm a Game Programmer creating games in Unity and C# for the past two years. I built this site to showcase my game projects. I am also currently learning how to make web games using Defold and Lua.
I also have 5 years of experience in Frontend Development with HTML, CSS (SCSS & Tailwind), JavaScript, and TypeScript.
If I'm not making games, I'm probably playing them. Some of my favourites are Pokemon, Dragon Quest, Celeste and Terraria. When away from the computer I'm usually playing 5 a-side football or at the gym.
> Skills_
Languages
Engines
Tools
> Projects_
AI Survival Simulation

AI Survival Simulation
A hybrid AI architecture combining Behaviour Trees, State Machines and the Belief-Desire-Intention model. The agent reasons from beliefs to choose a desire (gather, flee, attack, etc.), then executes that intention through state-driven actions.
STACK: Unity, C#
>Behaviour Trees
>Finite State Machine
>2D
Dungeonball

Dungeonball
Implemented the Observer pattern using C# events: player actions broadcast events that the UI subscribes to for updates. Used the Strategy pattern to determine when a path should be recalculated, separating the logic into distinct classes.
STACK: Unity, C#
>Character Controller
>FPS
Virtual Pet

Virtual Pet
Utilised the Meta XR SDK's hand tracking capabilities to interact with the augmented pet and toys. Pet behaviour is driven by a state machine that reacts dynamically to player actions.
STACK: Unity, C#, Meta XR SDK
>Augmented Reality
>Finite State Machine
> More Projects_

Sweet Dreams
Implemented coyote time and jump buffering using timers. The jump executes if input occurred within a set timeframe before touching the ground or leaving a platform. Made in 48 hours as part of a team for the 2025 Global Game Jam.
STACK: Unity, C#
>Game Jam
>Character Controller

Cosmic Cultivator
Built a timed Wave Spawning System using Object Pooling to minimise runtime allocations. Used an editor-exposed Animation Curve for spawn rates and movement speeds, decoupling logic and data for scalable difficulty tuning.
STACK: Unity, C#
>Object Pooling
>2D

City Drift
Created a drifting mechanic by taking Rigidbody's lateral velocity and applying a counter force to control sliding. Reduced counter force on player input letting the vehicle slide and creating a controlled oversteer.
STACK: Unity, C#
>Drifting Physics