Mastodon Verification Link Games – Sam Seltzer-Johnston

Looking for a Game Developer?

I’ve always loved games, and took that relationship to the next level by making them professionally.

If you find yourself interested in my work, don’t hesitate to drop me a line. My résumé is available upon request.

Below you will find some selected works.

This perhaps isn’t so much a portfolio as it is a testament to my love of game development. I’ve made efforts to put things in a general order of importance with slight categorical sorting rather than chronological order. I hope you like it.

Skip table of contents

Table of Contents

Current Projects

I’m always up to something or other. I try to keep this updated but I’m always so focused on what I’m doing that I often forget to. Anyway, here’s what I’m working on.


ExoCorps is a fast-paced hard-scifi multiplayer arena shooter where players engage their enemies at extreme ranges using their jetpacks, futuristic weaponry, and an array exosuit abilities.

ExoCorps is balanced for both tight 1v1 dueling and hectic 10 player battles, with Free For All Deathmatch and team modes such as Capture The Flag.

Since 2018 I’ve been the sole engineer for the project. The other developer, Garin Mazaika, does all things content. The rest of the roles are essentially split between us. Although primarily designed by Garin, I’ve consulted on gameplay design and made notable improvements to core gameplay features, such as the flare and targeting system redesigns.

ExoCorps was launched on Steam Early Access in October of 2020 and is still under active development.

Latest Trailer (Steam):

Early Access Launch Trailer (YouTube):

The game is developed in a modified version of Unreal Engine 3, using a combination of Unrealscript and C++.

I determine technical direction on the project. This sometimes entails coordinating partnership research & outreach. I also assist in design, production, PR, and community management.

The team size has varied over time between 1 and 3 people. Since I joined the team in 2018 it’s been only 2 of us in active development.

Infection Defense

Infection Defense is an educational tower defense game where you play as a human immune system, defending the bloodstream against various kinds of invading infections.

I was hired by Auxin Games as Lead Developer to bring their game to completion.

The game is developed in Unity. I was responsible for all things code and also consulted on design to ensure a healthy balance between scientific accuracy and fun.

I also managed a game development intern and collaborated with those responsible for the various art disciplines.

Auxin Games consults with real immunologists in the creation of this game.

Tools & Systems

Somewhere along the way I found I had a knack for tools and game systems. I find them cathartic and strangely satisfying to work on, especially when it makes other people more productive.


Legacy was the ill-fated flagship title for DPS Games. It was a Roguelike RPG with a well thought-out combat system and great aesthetics. Unfortunately the team was disbanded before a release due to “life events” - not the first game in history to fail that way. Still, I consider my contributions to it some of my best work. It was made in Unity 5.

My primary role was tools and systems development. The designer and I had a sort of synergy in that he’s good at prototyping, and I’m good at automation. It was my job to make “putty” for him to work with, and putty I did make.

Character Loadouts

Character loadouts with non-uniform bone scaling and a hand-rolled attachment system

It’s worth noting that there are only a few unique meshes being used there. All humanoid races used the same exact mesh, but above you see non-uniform bone-scaling at work. More specifically, they used the same meshes as each part of the body was it’s own mesh, which were assembled and optimized at runtime.

The character definition tool was extensible enough to customize arbitrary properties such as skeleton, body parts, stature, skin material, facial features, and much more.

There’s also re-use of armor meshes, scaled to fit the stature of the character.

Race Blending

Prototyping facial blending for race hybridization

Above you see how we accomplished arbitrary race hybridization. As mentioned before, we blended arbitrary race characteristics using the same character design architecture, which allowed for half-breeds of any kind for humanoids.

I would have liked to release these as an asset after disbanding, but it was very much tuned for a unique asset pipeline. Though it’s not visible here, I had to hand-roll a mesh combiner and optimizer due to the way we were constructing character meshes and using materials. It was quite unorthodox, but it afforded us a great deal of flexibility in how we could re-use assets.

Baked Lighting

Here’s a Radiosity simulator I made to demonstrate basic baked lighting. It was an arduous process, riddled with bug crunching and rounding error, but I’m fairly pleased with how it turned out.


Those white edges on the bottom of some surfaces went away eventually, but unfortunately I don’t have any surviving images of it. It’s partly because I was doing this with a low patch resolution, but it’s also an edge-case having to do with how I detected neighboring patches.

It really helped me to make debugging tools for this. Here are some that were particularly helpful.



Patches - I was still working on getting it to highlight patches in a more distinct pattern than rows, but never finished that part of it. It’s a problem with how I intitially decided to store patches.


Hemicube cells

Hemicube cells

Hemicube cell trace: hit positions

Hemicube cell trace: hit positions

Hemicube cell trace: hit patches

Hemicube cell trace: hit patches

Hemicube cell trace: rays

Hemicube cell trace: rays

One of the big gotcha moments was forgetting to normalize the delta form factors on my hemicube. Inevitably they won’t add up exactly to 1.0f, so you need to divide each delta form factor by their sum to normalize it, ensuring we don’t have more energy escaping the scene than absolutely necessary.

I’m seriously proud of myself for making such a great set of debugging tools for this.

Orx Project (Text Formatting)

The Orx Project is an open source portable game engine written in C. It’s written to be plugin-based and data-oriented.

I worked on a fork that implements text styling according to the issue for rendered text in a data-oriented fashion. The functionality is RTF-like.

Here’s a pretty picture of some varying colors in a single text object, which was previously impossible.


You can look at more pictures and download a Demo on

You can look at the branch on my fork as well.

I’ve been in close contact with the primary author/maintainer to ensure everything is up to snuff for a merge. I’ve learned, however, that the review process is the most time consuming part. The first implementation was easy. It’s deciding on architecture, grammar, implementation details, and so on makes this a relatively complex feature to do in one’s free time.

Orx Project (Plaintext Map Editor)

When I was first learning Orx’s API, I had a desire to work on a tile-based game.

Tiled Editor is great, but I’d been on a mouse-phobic kick for over a year. I like doing stuff in Spacemacs, so I made a format that optimized for that. It actually ended up being a pretty good map designer overall.

This video demonstrates me editing the map on the left and automatically updating on the right whenever I save the file.

Funny thing is that I never got around to making said tile-based game, but I sure had a lot of fun making this.

Garry’s Mod Projects

Garry’s Mod was the root of my programming experience. Programming in Lua taught me valuable lessons in prototyping, design, code comprehension, and optimization. Below are some samples I’m particularly proud of.

Despite these being some of my earliest works, I consider them some of the most inspired and diverse solo projects I’ve had the pleasure of working on. That’s likely because I had more free time to pursue my own projects back then.

Note: All of these were made in a previous version of Garry’s Mod, and are either unavailable or incompatible with the current version.

Antlion Survival

Antlion Survival is a campaign-style multiplayer gamemode that never quite got finished, but what I did finish is too cool not to show off here.

This video demos player abilities for the Antlion team, which was uniquely done in a 1st person perspective.

Notice how you can only see your legs, while your entire shadow is visible. Additionally, footstep sounds line up perfectly with the leg animations.

The basic idea was a humans vs. antlions survival game using the Half-Life 2 Rebel/Resistance aesthetic. The mechanics were very much Left 4 Dead inspired. The analogous “Tank” would have been the Antlion Guard.

Thumpers acted as map checkpoints for humans. Antlion players were forced to walk away from thumpers, which made their radius a safe-zone for humans.

I’ve released the unfinished code for it on GitHub.

Pill Framework

Pills are scripted weapons that turn the player into something else. The first pill created was the Headcrab Pill. After many pills had been released, I made a framework designed specifically for making pills to streamline the process.

This demo showcases the dynamically updated player collision hulls. Demonstrates the differences between the default player hull, an Antlion hull, and a Headcrab hull.

This demo showcases my version of the Headcrab pill. My big aesthetic touch was the turning animations that play when you look in different directions.

Death Note

Death Note was an old scripted weapon I made inspired by the Death Note manga/anime. It features a GUI where you select a player and cause of death. Upon “writing” the death, the selected player dies of that cause if at all possible.

Demo video showcasing death causes, which includes Heart Attack, Manhack Swarm, Car Crash, Lightning, and Drowning.

Cactus Entity

Some time ago I made a fairly popular series of scripts that revolved around cacti.

The first was my Cactus Entity. When you spawn it, it appears to be a normal potted cactus, but upon closer inspection becomes an obnoxious flying nightmare that repeats the word “cactus” over and over again until you catch it. IF you can catch it.

A video of someone playing with cacti.

Cactus Gamemode

Some time after I created the Cactus Entity, I made a gamemode based on it.

It consisted of a team of Cacti whose goal was to fly around and kill humans with devastating physical force, explosions, and other hilarious attacks. Opposing them was a team of Humans whose goal was to contain the cacti by capturing them in hand-held vacuum cleaners.

It was an all-around silly gamemode.

A player on the Cactus team.

A player on the Human team.


Viewpoint is a clientside hack I made on commission for a Prop-Killing clan. Prop-Killing is the art of engaging in a deathmatch with other players using only physical objects. Skilled prop-killers do so by spawning a prop wherever they’re looking, grabbing it with the Phys-Gun, and exploiting a physics glitch that sends the prop flying in the general direction they are looking.

Viewpoint shows exactly where the player is aiming with completely customizable visuals. This allows players to know where their opponents will spawn their props, giving them an edge in battle.

Demo video showcasing the customization menu.

Prop Surf

Prop Surf was a gamemode where players race to a finish line through a treacherous obstacle course by Prop-Surfing. Prop-Surfing is the art of flying through the map using a physical object. This can be done by standing on top of a prop and carefully picking it up with the Phys-Gun. It takes some finesse.

Demo video showcasing the prop trail effect. Yes, I know the HUD is atrocious.

Game Jams

Every once in a while I participate in game jams. I look forward to this section growing more and more over time.

I care a lot about making my creations the best they can be, but I find that becomes a slippery slope into perfectionism.

Game jams are an excellent reminder that getting something done is more important than making it perfect.

Train Jam 2018 (Theme: Odyssey)

In 2018 I attended Train Jam for the first time. It was… life-changing to say the least.

Here’s the game I made.

It ended up a half-baked prototype, but I’m still proud of it. It turned out more like an interactive screensaver. I used Kenny’s public domain assets for the sprites. I probably spent around 12 of the 52 hours on the train casually creating this. Funny how that happened, but that’s another story.

Check it out on the Train Jam!

Some Context

About a month before the jam, I had a moment of self-reckoning. I realized it had been close to a decade since I made a complete game alone from conception to prototyping to release. I looked at games I made 8-12 years prior and many were playable products that demonstrated good prototyping skills. Since then I’d mostly worked in teams and namely on isolated features, and any games made alone often went unfinished before becoming truly playable. I didn’t feel confident enough to go it alone for my first in-person gamejam, so I spent a month preparing by re-familiarizing myself with Unity. Most of my Unity experience was on Legacy where I made tools and game systems, so this time I focused more on the prototyping aspects.

During the team formation phase before we all boarded the train, I told my story to a developer from Poland. He encouraged me to do something alone as a sort of growth-activity, and helped me believe it would be fun and fulfilling. Turned out he was right. I made my first solo gamejam “game” for Train Jam. In the end I didn’t use Unity. I wanted to use Orx because using it is fun. Even though I was less experienced in using Orx to make games, as opposed to working on the engine itself, I used it because it just felt right. It drove home the point that I needed to limit my scope as much as possible.

The game didn’t follow the theme, but I did. This was a personal Odyssey.

GGJ 2016 (Theme: Ritual): Séance Simulator

Made this with 4 other people. Some from the DPS Games team and some from elsewhere.

Find and place the medallion in the pentagram for enlightenment! Oh wait, all the doors are locked. Time to look for keys, but not everything is as it seems. Something strange is afoot in this cathedral…

Check it out on the GGJ Site!

Asylum Jam 2015: Reality

Made this with one other person. A very abstract take on the horror genre. This is the first time I took on a strict consulting/design role without doing any programming. My partner, who is also named Sam (confusing I know) did most of the development work. I helped keep things on track.

Someone out in the vastness of the internet did a letsplay of it. Thanks random person!

Check it out on the Asylum Jam Site!

Husky Games Projects

Husky Game Development is part of the student enterprise program at Michigan Technological University.

Student enterprises are student-led organizations that are designed to mimic their respective real-world industry.

It is divided into a management team, and about a dozen small, multidisciplinary development teams, each with their own team lead, sound designer, artist, and programmers.

Wolf Simulator 2015 - Team Lead

A simple 3D survival game for Linux platforms that utilizes the Oculus Rift. You play as a wolf on a time-attack, as you hunt rabbits while avoiding bears.

Due to technology constraints, we were tasked with making our own game engine. This was a huge undertaking for a small student group that needed a finished product within one school year.

We completed a simple 3D game engine with a procedurally generated forest in the Fall semester, and spent the Spring semester creating a game with it. I view that as a success, despite the quality.

It’s unfortunate that I couldn’t find more images or videos of the game in action. Likely buried deep within an old hard drive.

Escape - Game Programmer

A 2D puzzle/platformer game with a horror theme written in Java using LibGDX.

My major contribution was writing an event triggering system that integrated with Tiled Editor. This acted as the backbone of all puzzles and level interactivity.