✨Game Dev Portfolio✨
TTRPG Map Encounters
A variety of environments designed for past tabletop roleplaying games within the Talespire virtual tabletop! Huge thanks to the community over on TalesTavern.com for being such a delightful group of people to collaborate with. A couple of my maps featured here contain prefabricated buildings, slabs, props, or foliage from the fine folks over there.
Al-Thrah City Market

This was a fun hybrid board, very much splitting the difference between an aesthetically detailed backdrop board and a potential level for combat, roguish shenanigans, and general mischief. The elevated walkway populated with city guard watches over the market below, but the canopies of the many stalls still leave much room for activities away from the prying eyes of the local authorities. Available for download on Tales Tavern here!
Since we spent a LOT of time on this map as a backdrop for roleplaying and general shenanigans in the city, I wanted to make it as detailed and greebled as possible so big thanks to Tub (one of my players) for helping flesh out a lot of the little stalls after I'd blocked out the board, as well as Jackie Leong (a fellow Tales Tavern board maker) for sharing a handful of marketplace stalls that have been incorporated into the scene.
Cliffside Ambush

A quintessential early-campaign bandit raid encounter. This was the first time our group would be playing on a three-dimensional virtual tabletop, so I wanted to stage an early fight that specifically emphasized the verticality of the type of maps we'd be able to stage fights on. The party, escorting a wagon, is set upon by bandits holding the high ground around them. A couple rocky crags on the lip of the cliffside provide cover to the bandit crew's ranged attackers while their melee thugs play interference for any heroes brave enough to scale the cliffs.
I built a few different stepped avenues of approach to the top of the cliffside for the party's melee combatants, as well as a spire of their own for their ranged casters. The cliffside itself is purposefully not outrageously high to allow players and assailants alike to scale up or down the textured face of the rocks (with some difficulty) should the need arise.
The Arboretum: Approach

The introductory first encounter for a multilevel dungeon called the Arboretum, adapted from the Jungle Temple board by Gengus. Playing with potentially severe differences in elevation to challenge the players' traversal skills as well as taking advantage of the tree cover studded around the area. This area also introduced the ongoing major theme of the dungeon: magical flora which only became stranger and more arcane within the temple itself.
The Arboretum: Interior

The final encounter for the Arboretum dungeon. (I've omitted a floor between for brevity so I'll update this section with a link if/when I do a blog post write-up of the full dungeon). The encounter was split into two parts. First, the Laboratory, a non-combat exploration zone filled with magical plant specimens from which the party could deduce the true purpose behind the temple as a whole. Second, a boss fight encounter that paired a small amount of elevated stone pathway with thick earthy mud, making traversal throughout the enclosed area a challenge.
Classic Dungeon Crawl Finale
Toward the tail end of the campaign, I wanted to execute on an abbreviated rendition of a super classic dungeon crawl while still leveraging the full three-dimensional fidelity of Talespire. I did my best to keep in the style of the classic blue-grid dungeon map with pits full of spikes, giant rolling boulders, puzzle rooms with cryptic riddles, and a handful of sneaky dungeon inhabitants ready to accost the party as they explored.
This all concluded with a tricksy boss encounter wherein the party had to fend off attackers around enormous necrotic vats while making their best effort to destroy a slumbering half-formed draco-lich before it awakened.

Above is a fun quick orthographic render of the whole dungeon layout. I didn't go the extra traditional mile to do a graph-paper sketch of the full level ahead of time, but did incorporate a couple of rooms from my oldest notebook sketches where I plotted out some of my very first dungeons. <3

In order to properly unveil the different portions of the dungeon as the party ventured through it, I blocked the different portions of the dungeon into quite a few different "hide volumes," functionally just boxes of environment assets that are hidden/revealed manually to the players as they explore. Above you can see the full, zoomed-out view of the dungeon in engine, and below is all of the individual sections of the dungeon blocked out for hiding/revealing as necessary.

I'm already drafting a handful of blog posts going over the design and execution of these encounters (and more!) from past tabletop campaigns, so keep an eye out for those!
The Mourning Outpost of Cyre

Set in the wonderful world of Eberron created by Keith Baker, The Mourning Outpost of Cyre is a (silver‑medal bestselling) mini-dungeon one-shot adventure set in the Mournland, a magical wasteland created in the wake of a recent arcane catastrophe. I made this little adventure to serve as a simple introduction to what I consider to be one of the more underrated portions of the setting. The adventure itself is intended to be used as a hook into further intrigue, rather than attempting to deliver on a full arc all by itself. The main reward of the adventure is not a specific item or gold, but rather a sizeable favor from Pendergast d'Cannith, a loyal emissary of the powerful House Cannith who could prove to be a powerful entry point for an adventuring party into the factional intrigue of the region.

A specific technique I wanted to explore in this adventure was using random tables as worldbuilding and texture for the area they apply to. The Mournland in Eberron is a deeply weird and magical place, and I wanted to express that to a GM reading through the adventure without needing to lean on heavy, prescriptive box text. I wanted to exemplify the idea that if any option within a random table could be true, then all of them must be true and descriptive to the setting as a whole. Even if only a single option from the table ends up being described by the GM to the players, the surrounding options can help inform the GM as to what's possible within the setting and the world, enabling them to further improvise and adjudicate as their game continues.


Available on Itch.io as well as directly sideloaded through SideQuest! Weekend at Grandma's is a wholesome little Virtual Reality game where you help your grandma get her VCR hooked up so you can watch some home movies together! It's a simple puzzle slotting each of the cables into the right ports and turning the TV to the appropriate settings before sitting back and watching some VHS tapes! As a joke we thought it would be very funny if putting other objects into the tape slot also showed videos, so we gave every movable prop in the room a unique video as long as you could shove it into the VCR's slot.
Each playthrough starts with a mess of cables on the floor...

And eventually ends up with everything plugged in nice and neat.

I spent most of my time on this project scripting the device behavior for the VCR and TV. We decided to simplify a lot about both device's interfaces so that the interaction was an intuitive puzzle rather than a strictly accurate emulation of how a VCR and CRT TV work. That said, I did want them to behave very predictably for people who are, in fact, familiar with the arcane box that is a VCR, so we used a couple very simple state machines to manage the behavior of both. This meant that it would perform as expected if only certain cables were attached, e.g. only audio in/out or only video in/out. The small details ended up making a big impact in practice, lots of our players appreciated the attention to detail and tactility of all our big chunky buttons and cables, useful for fumbling VR hands.
This was the first project made by Grandma's Favorites, a small game development team put together toward the end of our time in college together. Many of the home movies featured in the game are from the team's personal collection of handy cam videos. I co-designed this project alongside Parker Hamilton and Justin Carpentre after a long Thanksgiving weekend at my own grandma's house and the team put together the whole thing in just a couple of months before we had to move on to other projects.

An isometric, trap-laying, cart-racing, local-multiplayer frenzy! A twist on emulating the frenetic feel of gas-powered off-road RC car racing with the added chaos of a trap-laying phase, this was a personal design pitch of mine that the rest of our team adopted for prototyping! Our two major references for the design were Ivan "Ironman" Stewart's Super Off Road arcade cabinet and the couch classic Ultimate Chicken Horse. We built and refined our prototype over the course of about seven weeks between our other classes and university capstone projects.



I took lead on implementing the RC car physics and course layout in Unity while the other designers picked up the trap and obstacle designs. We made a pretty big shift in the middle of development from a true perspective camera (emulating the point of view of an RC course racer) to a much more readable isometric perspective ala older arcade racers. This whole project was very much a found-fun style of development; we built a functional version of the concept in a very short amount of time, then tested and refined it through as many iterations as we possibly could in the limited amount of development time we had available. I'm very proud of what we managed to put together, but development was heavily effected by the oncoming pandemic in early 2020.
That's the end of my older work! If you're hungry for more, head over to my active projects page and keep an eye on the blog for more current posts and updates. Thanks for reading! <3