Senior Software Engineer with 14 years of game industry experience,
and 20 years in software. Devoted to building self-contained, data-driven systems,
and streamlined visual editing workflows. My fellow developers are my customers.

Experience

2020 –     

Rec Room

Rec Room - Creative/Social, Unity, PC/Console/VR/Mobile
  • User Generated Content: Rangefinder, glass prop
  • R&D: Instanced rendering, collision optimization
2019 – 2020

Hardsuit Labs | Paradox Interactive

Vampire: The Masquerade - Bloodlines 2 - Unreal, PC/Console
  • Animation timeline asset and editor UI
  • Game testing menu, play any part of story/world
  • Integration with Paradox telemetry
2013 – 2019

Z2 | King | Activision Blizzard

TapCraft - Multiplayer Action RPG, Unity, iOS/Android
  • Behavior Tree AI, networking, flowchart editor, in-game debugging
  • Spreadsheet editing in Unity, with Excel import/export
  • Localization UI in Unity with REST backend
Paradise Bay - Resource Management Sim, Zengine, iOS/Android/PC
  • Reduced client load time by 25%
  • Reduced server load permitting 50% more players per server
Fiction Factory - King in-house engine, iOS/Android/PC/Web
  • Runtime configuration and profiling tools, data-driven event system
Zengine - Z2 in-house engine, iOS/Android/PC
2007 – 2013

ArenaNet | NCSOFT

Guild Wars 2 - MMORPG, ArenaNet in-house engine, PC
  • Automated import/export of voice-over and localization scripts
  • Data mining API (C++) and search UI scripting (C#/Python)
  • Interactive content validation
Wild Lands (unreleased) - MMORPG, ArenaNet in-house engine, PC
  • Schema-driven gameplay content editor
  • Interactive content validation
2005 – 2007

Amazon.com

  • Web service APIs for software deployment
2001 – 2006

Century Auto Business Systems

  • Texas OCCC-approved used car contract calculation and printing

Education

2001 – 2006

University of Texas at Austin

Bachelor of Science, Computer Science, 3.75 GPA
Rec Room Glass Prop

I implemented the shader for the glass prop in Rec Room, which includes a few designer-configurable properties with some commentary on their effect, such as:

The shader uses the Fresnel term (evaluated via Schlick or Unity's approximation, configurable per platform) to vary the alpha and specular terms, where alpha corresponds to transmission, and specular corresponds to reflection sampled from an environment map or light probe. Nothing particularly fancy here, but some basic research made this look much more like glass than the basic Unity transparent shader.

Animation Timeline for Unreal Engine 4

This video shows the editor experience for the new Unreal Engine 4 animation asset I created for Vampire the Masquerade: Bloodlines 2. An Animation Timeline asset can be used anywhere a normal animation asset is required. Other animation assets can be dropped onto the timeline, and adjusted for blending at runtime. Non-additive animations can be converted to additive animations by providing a base pose animation. In this example, two animations that normally target the male character skeleton, have been retargeted to drive Lou's female character skeleton.

Behavior Tree Bubbles

When debugging a behavior tree in Unity, I added these bubbles which float above AI-driven characters to show what they are thinking.

Behavior Tree Debugger

The video above shows the Unity editor experience for debugging behavior trees while the game is running. Users can select an AI agent to debug either from the list on the left, or by clicking on a behavior bubble floating over the character in the game view. The behavior tree is rendered showing the green path to the chosen leaf behavior. By stepping the simulation, the user can allow the game to continue until the agent makes a different decision.