My name is Matt. I am a software engineer and technology enthusiast. Here are some of the things I’ve worked on.

PerBlue

Engine Development, Gameplay, Deterministic Simulation, Multiplayer, Tools, UI

I worked on several games at PerBlue, from core gameplay and deterministic simulation to designer and QA tooling.

Unreleased Game

This game started as a multiplayer hack-and-slash game. I led the engine team for the duration of the project.

Wall Brawl

This is a live service wall defense game. Things I worked on:

  • Many of the core gameplay mechanics
  • PvP mode: the view could detach from the simulation to watch other players
  • Game automation to assist designers with game balance
  • A replay system that QA and devs could use to share and diagnose crashes and issues

Hex Empires

A live service, turn-based strategy game. I worked on:

  • All of the core gameplay mechanics
  • A cross-platform, deterministic custom simulation for fights
    • Used for server validation and future replays

Triumph: GO Infinite

As part of a contract deal with N3TWORK, I worked on this game for a few months. My biggest contribution was implementing the front end for the game’s player market.

City Block Builder

Unity, C#, Game Pipelines, UI, CI/CD

I joined Tentworks Interactive in March of 2021 to work on their tycoon game: City Block Builder. For more info about the game, check out the link below.

City Block Builder on Steam

Traffic

The first thing I worked on was a traffic system. The existing system had the following issues:

  • No model for acceleration/deceleration.
  • Improper pivots, cars slide around turns
  • Cars used navmeshes and raycasting for navigation, poor performance

After replacing the car system, I added the ability for the cars to navigate the town using Dijkstra’s algorithm. My efforts resulted in more natural looking and more performant cars.

URP/HDRP Post Processing Effects

The team needed effects for highlighting objects in the world and blurred UI panels. I first built these for URP then ported them over to HDRP when we made the switch.

URP to HDRP Conversion

The project was using URP when I joined. After our art lead described what he wanted, it seemed to me they had chosen the wrong pipeline. They wanted high fidelity graphics with a lot of lights. We needed deferred rendering. At the time URP did not support this. I pitched HDRP then wrote some scripts to start the conversion process. The bulk of the work was done in a few days. Our art lead was super happy. Performance was on par with URP and eventually superseded.

Art Cleanup

It was the wild west when it came to art assets. Each artist had their own pipeline. Most of what was delivered was incompatible with our render pipeline or any Unity pipeline for that matter. I created a workshop to walk the artists on the team how to create the deliverables we needed. I also created scripts and tools to assist in the process. It was a huge success! The assets delivered were much cleaner and fit the project’s requirements. Below are the slides I made for that workshop.

View Workshop Slide Show

Application Demo

I made this demo as part of my application to Tentworks. All assets made in Unity except floor texture.

View Source

Terraria 3D (Mod)

C#, Shader Programming, IL Injection

This is a mod that renders Terraria in 3D. The constraints of the shader model made this a challenging project. I got the render function sub 1ms making gameplay butter smooth.

View Source

Background

Terraria 3D was originally an unreleased feature from my paid Terraria modding work in 2014 (see Terraria Modding and Rendering Terraria in 3D). In January 2019 I dusted off the idea and rebuilt it from scratch for tModLoader, the dominant mod loader for the game. This rendition was better than the original in almost every way. The big issue was performance.

It was running in a few days, and a few more days after that it was running smoothly. The biggest hurdle was being limited to SM2 in XNA. I spent about another 3 weeks adding features and squashing bugs.

The Poor Man’s Ambient Occlusion

I came up with a super cheap set of instructions to do AO in my shader. I’m stuck with SM2/3 and instruction count is super limited. Pretty pleased with how much depth it adds to the image.

Virtual Reality

Started playing with this mod in VR. I couldn’t render the headset view on a separate thread. This is an issue because Terraria is capped at 60 fps. For a smooth VR experience it should be 90fps+. Here is a puketastic capture from my experiments.

Pixel City Bros

Unity, C#, Game Pipelines, UI, CI/CD

I joined the team on this project in June of 2018. I did all of the programming for it: Fight mechanics, UI, AI, etc. I spent a lot of time building tools and pipelines for creating content for the game:

  • World Creation: Created a pipeline for level editing, sprite ordering, and automatic collision authoring.
  • In Game Cutscenes: I made some tools that made it easy to direct the actors and events in our scenes.
  • Enemy AI: More great tooling to define enemy AI logic.

I wish I had better visuals to show for this one. This sizzle reel is a bit boring. 😁

Team

Everyone worked part time and as needed on this project. We had a project manager, QA, artists, and a sound designer.

Video Documentation

I did a lot of video documentation for in game tools. Here is an example of some of that documentation I did for the team.

Random 3D Printing and Electronics

3D Printing, CAD, Electronics

Video Game Playing Robot

Electronics, AutoCAD, 3D Printing, C++ (ATmega328P), C# Windows application

A friend challenged me to beat his score in a mobile game. I was not up to the task so I built a robot to do it for me 😈

In early 2017 a friend challenged me to beat his 20% high score on what was then the hardest level of Rolling Sky. The robot reaches 100% while getting all of the collectibles. The first prototype was cardboard; once I got a 3D printer I redesigned it, with a custom board holding the electronics.

Singing 3D Printer

I wrote a program that converted MIDI into gcode for my 3D printer to play back.

Drawing 3D Printer

Is it just a 2D printer with extra steps? Yeah. Is it cool? I think so.

Faye and The Wondrous Flame

C++, UE4

Faye and the Wondrous Flame is an action-adventure side-scrolling platformer. The game was going to be combat heavy: the player would unlock four new forms as they progressed, each unlocking new combat and locomotion abilities. Our goal was to build a demo to submit to Epic’s grant program.

I joined this project for a few months back in 2016. I was responsible for all of the programming and for learning UE4. I mostly worked on player locomotion: getting moving around to feel nice, wall jumps, ledge grabs, sliding, etc. I had a ton of fun working on it.

Team (2ndborne)

The bulk of the project was done by a 3D artist and me, with support from a concept artist and an animator. Everyone worked on it in their free time. It was an amazing group of people to work with.

Time

Started in late November 2016; my last commit was mid February 2017.

Postmortem

This was my favorite project I’ve worked on. It was my first UE4 project and I’m proud of what we made. Unfortunately our group disbanded before we were able to submit for grant consideration.

Pillars of Eternity / Tyranny Trailers

C#, Unity, Modding, VFX

I worked on several trailers for Paradox Interactive as a subcontractor. My contribution was modding the games to give us more control over our gameplay footage.

I added XInput so we could control the camera with a gamepad: pan and zoom with smoothing filters, and record camera moves to play back while the user controlled the in-game actors. I also added the ability to force actors into specific animations and to move or delete them, so we could choreograph our shots. I also did some smoke effects and handled production management in the final week of the Tyranny trailer.

Game Jams

Time for a rapid fire round. Here are some miscellaneous game jams / side projects.

Cooties

Ian Strandburg and I set out to build a shopping simulator where sick shoppers can sneeze and spread infection.

Voxel RPG Game… Thing

🤷

Voxel Destruction Tech Demo

C#, Unity, Heavy Optimization, Custom Asset Pipeline

A voxel destruction tech demo for a game concept where each voxel type had special properties. An enemy might have armor voxels that take more force to break; once the skin was broken it would start taking damage, and hitting an organ voxel was fatal. There was also a concept for using the tech in a VR mech 1v1 boxing game.

The challenge was updating meshes and colliders as quickly as possible: characters with over 100,000 voxels had to be recalculated in fractions of a second. I solved it with a multithreaded solution with models split into chunks. Voxelized models came in as binary files; meshes and materials were built on import and at runtime when destruction occurred, with voxel textures driven by Substances so we could quickly stylize them.

The destruction took a few days to get running with mesh and collider builders on their own thread. I spent a day exploring rendering with a geometry shader instead of rebuilding meshes, but it required SM4 and had limitations, so I abandoned it. About a week went into iterating on the asset pipeline.

Squirm Food

C#, Unity, iOS, Android, Web Services

Another game Ian Strandburg and I worked on, started at the beginning of 2015. A puzzle game where the player navigates levels to get monster parts to the bottom of the machine. Built for iOS and Android and ran great on both, but was never released.

I was responsible for everything that required programming: gameplay, art-pipeline tools, a level editor, UI, and a web version where testers could play levels. Our web server collected data about playthroughs and tester feedback for each level. My counterpart shared game design and did all of the art.

Zelda Dungeon Recreation

In November 2017 I took a challenge to clone a Zelda dungeon in 7 days. I was solo, so I did all the gameplay, all the glorious programmer art, and the level. I finished within the 7 days, then took 3 extra days for polish.

Play in browser

View Source

VR Frogger (8 hour jam)

An 8 hour VR game jam in 2015: a spooky first-person Frogger with a single level and cars as obstacles. Another jammer provided the art. Easter egg: look behind you into the sky and you’d see the window of an arcade machine, as if you were inside it, with a creepy face peering in that mirrored your headset’s head movement.

Terraria Modding

C#, Shaders, Networking, SQL, Game Decompilation

I spent about a year getting paid to mod Terraria, a side-scrolling sandbox game, starting in late 2013.

Role

I was hired to add a suite of new features under the direction of my employer, including:

  • Creative Mode: item browser, infinite reach to make building easier, detached camera, NPC spawner, godmode / toggle enemies / control weather, and too much more to list
  • Multiplayer (custom server): login system; admin tools (peek player inventory; kick/ban/teleport to players; undo a player’s modifications; see who last modified a block to find griefers); protected regions; groups with custom permissions
  • Capture the Flag game mode
  • UI system
  • Introduction of the 3rd dimension! (see Rendering Terraria in 3D)

Team

My employer and me. We decided together which features to implement and I brought them into the game.

Time and Environment

About a year, mostly 20–30 hours a week, with crunch when new Terraria releases were imminent (60 hours at most). Fully remote from home in New York.

My work was later open sourced as HERO’s Mod, which I’m super excited about :D