Unity builds that run in this page

Games

Playable prototypes, running right here in the page.

9 prototypes. They also live on itch.io as Vertex Shift.

First-person dungeon crawler for VR and flatscreen, built on modular inventory, crafting and economy systems.

No playable build here yet

Vertical exploration and recoverable risk are the design centre: falling deeper should cost you something you can still win back. A flatscreen build is the one that will land here, since the VR version needs a headset.

Packaging the HTN method-selection research into a reusable NPC behaviour plugin.

No playable build here yet

A plugin rather than a game: the demo scene is what will be playable here, showing NPCs that pick a decomposition method instead of following a fixed plan. Unity first, Unreal after. The planning work behind it lives on the research page.

An interactive playable résumé — experience and skills laid out as a dungeon, its arcade machines and a grimoire CV.

No playable build here yet

Still on paper: the repository holds a design document and the decisions behind it, not a build. The idea is a CV you walk through instead of scroll — rooms carrying the professional history, arcade machines running the projects themselves, and a grimoire for anyone who would rather just read it. WebGL is the target from the start, because a résumé that needs a download is not a résumé anyone opens.

Doom-like 3D stealth survival — escape a vampire mansion using masks, inventory pressure and disguise.

No playable build here yet

The masks are the whole idea: wearing one buys you passage past a kind of vampire and marks you to the others, so every disguise is also a decision about which half of the mansion becomes hostile.

The AI test bed of the Unity rebuild — watch the hierarchical state machine switch live.

Controls: WASD to move. Each enemy shows its current state above it.

What runs here is not a level: it is the scene the enemy AI is developed against. A player ship, melee and ranged enemies, and a label over each one naming the state it is in right now, so the hierarchy is visible instead of inferred — out of combat splitting into idle and patrol, combat into chase and attack. Movement comes from strategies held as ScriptableObjects, which is what lets an enemy change how it moves when its state changes without the mover knowing any of them. The roguelite the project is aiming at, with its artifacts and upgrades, is not in this build.

2D arcade space shooter with inertia-based flight and escalating enemy waves.

Controls: The mouse aims the ship, thrust moves it — inertia does the rest.

A 2D arcade shooter where the ship never quite stops: thrust moves you and inertia keeps you going, so every dodge has to be paid for on the way back. Waves grow as you survive them. Built in Unity, and the one that forced the project's move to a newer editor — the version it was written against crashed at the very last step of the WebGL build.

Retro arcade shooter written from scratch in C++ with Allegro 5, compiled to WebAssembly.

Controls: WASD to move, Space to fire, Esc for the menu.

My first programming project, written in the first semester of my degree, before I had met a design pattern or a build system. Everything is here from scratch: the game loop, the collision maths, the sprite animation, the wave pacing and the difficulty curve that tightens as your score climbs — in C++ against Allegro 5, targeting Windows. What you are playing is that same game rewritten as object-oriented C++ and compiled to WebAssembly, so it runs in the browser with nothing to download. The rewrite also turned up a few things the original got away with, including a division by zero that crashed the game once the score got high enough.

Action prototype built in Unity, playable in the browser.

Controls: Mouse to aim and shoot; menus are on-screen.

Interactive 3D solar simulation with planet tracking, orbital mechanics and real-time comets.

Coursework, and it shows in the best way: this came out of a Coursera course I was taking on interactive 3D, where the brief was a solar system and the interesting part was everything the brief did not cover — tracking a planet while it moves, keeping the orbital mechanics readable at wildly different scales, and putting comets on screen without the whole thing turning into a screensaver.