Derelict 54 & VR

Derelict 54 is a first-person and VR advneture game I made in the Unreal Engine. It takes my ideas from Terminal 2, and translates them into full 3D, letting the player explore and try to survive a broken down space station. It also includes a VR port/remake for the HTC Vive and Oculus Rift (360-degree tracking and room scale required).
Source Code (Github)
Related Writing
Play Here (VR and First-Person)


Eventide is a first-person, parkour-focused platformer made in the Unreal Engine. Inspired by Mirror's Edge's Pure Time Trials DLC, and indie title Refunct, this game is a speed challange level that test the player on the game's low-level mechanics. I built the movement system from the ground up using a third-person animation blueprint to add a sense of presence and weight to the player's movements.
Related Writing
Source Code (Github)
Play Here

Skyrim Tombs

Using Skyrim's version of the Creation Kit and Payprus, I created three immersive sim-styled tomb maps. I focused on complex level layouts filled with trap and puzzles that moved at a slower pace than the base game.

Here's a zip file of my final maps, with installation instructions included.



DM-LaserTag is a custom map I created for the new Unreal Tournament. In it, I tried to capture the style of all the low-budget laser tag arenas I went to as a kid. It's packed with glowing surfaces, weird, misplaced cover, and entirely too much neon.

How to Play The Map (This is needlessly complicated until Epic figures out a better way of sharing user maps)
Requires Unreal Tournament from the Epic Games Launcher
-Download the map from here (Compiled May 28, 2017)
-Copy it to [Unreal Tournament Install Directory]\UnrealTournament\Content\Paks
-Open Unreal Tournament
-Click "Play", "Start LAN Match", "Custom"
-Under the Maps dropdown, select DM-LaserTag1

Terminal 2

Terminal 2 was my first attempt at capturing a type of game genre that I noticed emerging in first-person adventure games I loved. Soma, Near Death and Alien Isolation all involved trying to fix up a decaying, human-created station, while completing objectives and avoiding hazards. I found these games incredibly engaging, not for their horror elements and puzzles, but instead for the rhythms of play that they created, with players moving from area to area, fixing the power, looking for new objectives, and trying to stay alive. I loved this genre enough that I wrote an entire blog post about how fascinating the ideas are.

Terminal 2 focused on what I think is an underexplored element of those games, namely, the broken computer terminals scattered throughout the environment that the player would struggle with. I tried to keep it localized to a single, diegetic screen, pretending to be the fictional computer terminal the player was interacting with. The puzzles in the game aren't complex or mind-bending, and are mostly about thoroughly searching all available areas and following written directions, which is exactly what made the games that inspired it so appealing.

I wrote this entirely using HTML and JavaScript, instead of something more powerful like Twine, but I tried to get as much substance out of those tools as I could to get across the feeling of games with much larger budgets and scopes.

Play Here


Kroz is a Twine remake of Zork, Infocom's classic text adventure game. I was really interested at the time in the difference between text parser-based adventure games and more contemporary adventure games with clearly communicated inputs.

Kroz works more as an experiment than a satisfying game in and of itself, because it highlights how many of the puzzles that worked so well in Zork are less effective when every option the player can take has to be conveyed to them directly. Still, the less confusing structure of a Twine game, coupled with its use of the widely-know hypertext format, made it more accessible than Zork, which has a well-deserved reputation for impenetrability. Despite having much more advanced tools than Infocom's original team, I left Kroz feeling jealous of the format that they were able to use, with a text parser allowing for much more creative, if difficult to discover, solutions to problems.

I find the experiment to still be valuable, however, because many contemporary adventure games cannot pull off the puzzles and aesthetics of Zork, and learning how to properly adapt and explore them could give designers access to a wealth of underexplored potential.
Note: I later found out that the devs at Infocom actually didn't like the cover I ended up using. However, I lost the original Twine project files, so I can't change it to the objectively better cover, here.
Play Here