Portfolio

You may notice below that I seem to have some difficulty actually getting projects over the finish line. This is only a temporary lapse in virtue, I promise! I'm still learning personal project discipline. Someday soon they will all be complete. I've still learned a ton from the work I've put into them.

Azlador

A screenshot of dialogue in a brightly colored pixel RPG A screenshot of combat in a brightly colored pixel RPG

Skeddles of Lospec fame had long dreamed of making a successor to this weird mobile game called Gurk. Happy for any excuse to draw upon his impressive artistic talents, I decided to be the one to make it happen. Starting in late December of 2022, with nothing but a few mockups, sprite sheets, and a dream, I solely programmed the game in Godot, with skeddles contributing all of the art. We released an initial demo testing out our branching quest system to some people following the project in summer of 2023. We then began work in earnest on the main attraction, a battle system that works like Fire Emblem crossed with Pokémon. We got about 95% of the way to releasing a second battle demo before my life got crazy and I had to take a break. I fully plan see this through to the end, because I've worked too hard and long on this for it to die.

Status: Work In Progress. Most of the code is written and art is drawn, and a fair amount of tools for creating content are in place. All that's left is some polishing and a ton of content creation: quests, battles, equipment, maps, etc. Check out the website for more screenshots and a mailing list to join for updates.

Technologies: Godot, C#, Ink (custom fork)

Tradeworld

A screenshot of a pixel town builder game

For my Web Programming class at BYU, my semester-long project was to make a website. Instead of phoning it in like I should have (this was my final semester of college and I was taking a higher credit load than recommended) I paid one of my talented friends in the lospec community to whip up some beautiful assets and built a game along with my friend Ethan. It was conceived as a take on the Clash of Clans city-builder genre that 1. respected your time and 2. focused heavily on resource trade and building placement.

Both objectives were massive failures: most people I showed it to found the game extremely addictive and spent hours on it, and the diehards realized they could do some nasty market manipulation along with straight up cheating. Worst of all, everyone hit the content cap before I could add more to the game. This was not how I envisioned it shaking out—I just wanted to make a fun looking game that would win the competition (We came in second place, but the top three were all considered "winners". It was a class of hundreds so I was still proud) but I ended up with a community that wanted content updates. We had over 30 daily active users at peak tradeworld hysteria, consisting of coworkers, classmates, friends, and randos I had no connection to. It might not sound like a lot, but it was my first taste of a "userbase".

Like I said, it ran out of content and I was too busy looking for a post-graduation job (Iterable layoffs during the techpocalypse of 2023 caused my return offer to get rescinded) and trying to keep Azlador chugging to get the Tradeworld updates out in a timely fashion, so the hype died down and I canceled my plans for a rebalancing update.

Almost exactly one year later, I found myself longing for another taste of that userbase ambrosia. I also really wanted to write a more robust set of mechanics than the contrived ones I invented for a random school project. Not wanting graphics and UI to get in the way of rapid mechanical iteration, I hacked this one in a few days as a text-based Discord bot and released it on the Lospec Discord in a completely unfinished state, planning to fast follow with a flurry of content updates. That strategy worked for a bit and we climbed back up to around 30 DAU. The mechanics were in a much more interesting spot. But my "move fast and break things" strategy started to break one too many things and I lost motivation to keep patching the Ship of Theseus. The bot is still running in a half broken state while I work on a third rewrite, this one in Godot. The same life events making it difficult for me to keep up with Azlador are hampering Tradeworld 3's development as well.

Status: Work In Progress. After the seemingly broad appeal (obviously 30 DAU is a funny thing to call "broad appeal" but you must understand that a frighteningly high percentage of people I show these half-baked games to seem to retain for weeks or even months, so I do think they have something special to them) of the first two iterations, I'm currently engaged in the Last Rewrite™ to finally make the game I always wanted to. The server code is mostly there, but there remains a lot of finnicky client code to get right before I'm comfortable publishing it. Watch this space for updates.

Technologies: HTML, CSS, Javascript, Svelte, Swift, Vapor, PostgreSQL, Docker, DBMate, Swift OpenAPI Generator, Godot

Pikzel Lake

A screenshot of a pixel fishing game

The Lospec Discord has this weird fake currency called "pikzels". I conceived of this game as an easy way for a bunch of artists to pitch in some lower-effort assets to a project that would bring their art to life, and also a way to earn pikzels by playing, hence the name. The game is pretty straightforward, you fish for fish and then... do something with them? It's not fully cooked because I started working on it mere weeks before I started my first fulltime job out of college. I really don't want all the work those artists did going to waste, so I intend to finish it up at some point. In the meantime, it's currently playable, just kind of boring. Shoutout to Paul and Jaman for helping out with the fishing line physics and to all the community members who made UI or fishes for the game.

Status: Work In Progress. I will finish this, for the artists' sake!! You can also check out what skeddles was able to do with a subset of the assets for the project plus a bunch he made by himself.

Technologies: Godot, GDScript

Solar Showdown

A screenshot of a 3D two-player real time strategy game

This was the BYU Animation Department's capstone project that I helped build over the course of a year as part of a team of about 25 students. We built it in UE5 with the blueprint system. Unlike most of the programmers, I was there from the very beginning of the project, and pitched several ideas like the robotic farm animals that drove the early concept work. I ended up doing a lot of glue work for the asset pipeline, developing a set of tools for our artists to get their work into the game. I also worked on the UI implementations, various gameplay mechanics, and a lot of performance optimizations. It was pretty crazy to build this concurrently with the most overloaded year of my degree, but it gave me invaluable insights into how work gets done on large creative projects with lots of technical considerations and many opinionated voices.

Status: Released. It's out on Steam (for free!) though it unfortunately requires 2 Xbox controllers to be connected to your computer, and there's no AI opponent or networking. But it's quite fun if you have the gear and the friend.

Technologies: Unreal Engine 5, Blueprints, C++, Bash scripts, and I personally managed our hosted Gitlab instance

Open Source Work

I am a member of the Vapor github organization and enjoy updating documentation, reviewing PRs, and answering questions in the community. I hope to be able to contribute some non-trivial amount of code to the upcoming Vapor 5 rewrite, but in the meantime I have to be contented with support work like leaf's highlightjs grammar.

I'm hoping to do some more substantial open source projects like releasing a useful Swift library or making a high impact PR on a popular project, but the golden opportunity hasn't struck me yet.

Repositories: homebrew, highlightjs, mindshield, swift-corelibs-foundation, anything in the vapor org

YouTube

Like most young boys I dreamed of making cool videos about things I'm passionate about. I did just that at the beginning of 2021, releasing an overproduced 14 minute video essay. I'm too ashamed to link to it here, it wasn't very good. But it was something I finished!!!

I also made a remix of the Wii Boxing Results. I think it's not half bad, and it got a good amount of views for a video from a nobody like me. I have at least a dozen other demos (some of them nintendo remixes) sitting on my hard drive waiting to get rounded out, maybe I should post a sequel someday.

In Memoriam

Here lies many aborted ideas that never made it past prototyping. Fourth Wall Interactive Theatre, Unnamed Goodreads Successor, Zoomer Rationality, Pixel Farmer: I may have not given you long on this Earth, but each one of you taught me something important about engineering. One of you I would've kept working on if I hadn't accidentally deleted you off my hard drive before I added you to source control. The important thing that one specifically taught me was to always add source control.

The Ultimate Secret Project

It has always been slow-cooking in the background. I first whipped up a prototype in the summer of 2022. I'm serious about this one. I've done customer research, technology exploration, and a lot of thinking in the shower. I know exactly who I would hire, how much it would cost, and how I would monetize. It is my dream one day to make a name for myself on this. But I can't say much more lest someone steals it or it never happens and I look like a fool. In the meantime, I need to finish the other projects in this portfolio before I can start on the Big One.