Hi, I'm Tom!

I’m a Technical Game Designer with over a decade of experience in AAA game development, spanning FPS, MMORPG, and mobile platforms. My work focuses on designing, scripting, and optimizing gameplay systems that bring depth and responsiveness to player experiences. I’m passionate about system architecture, AI design, and mentoring future designers. I believe the designer's role is to serve as the advocate for the player throughout development to ensure the best possible player experience.

At Zenimax Online Studios, I architected AI behavior systems using a utility-value model, developed scalable awareness and combat systems, and created flexible AI weapon frameworks built on hierarchical state machines. Previously at High Moon Studios, I designed and balanced the Scorn enemy faction for Destiny 2 and scripted the Call of Duty: Warzone “Power Grab” mode, both of which highlighted my ability to deliver engaging, polished AI experiences on tight deadlines.

I’m passionate about advancing AI to create memorable, player-driven encounters and believe my background with multiple engines and scripting languages (C++, C#, Blueprint, Lua, GSC), along with deep experience in AI modalities such as utility-value systems, behavior trees, state machines, and goal-oriented action planning, would make me a strong fit for your team. I would welcome the opportunity to discuss how my expertise could contribute to the success of your team's projects.

Design Philosophy

Keep it simple.

"Keep it simple" is a very common adage among game developers, but I think most of us wrestle with it throughout our careers. The appeal of more complex systems with more dynamic inputs is initially very attractive, and it's easy to get lost in those designs without considering the costs to implement and maintain them as well as author content that uses them. Systems should only be as complex as needed to sell the gameplay fantasy to the player, even if they aren't technically "correct". In fact, players often have misconceptions based on media like TV and movies more than in the real world. Attempting to simulate the real world can actually feel wrong to many players because it doesn't match their expectations.

My personal method to address this challenge is to implement complexity in layers starting from the absolute most simple, but functional, version of the system with full understanding it is unlikely to be the final system. Ideally, have a few additions you expect to need thought out and at least lightly documented so when your system is "too simple" you know exactly where to go, but don't get too far ahead of the current implementation. It's vitally important to stop when the system works, when it feels good, and existing documentation can make it easy to complicate the system in ways it doesn't need to be. If at a later point it's clear that the system needs additional complexity, you can add it then.

Unreal Engine

Unity Engine

Proprietary Engines

Blueprint

C++

C#

Lua

JavaScript

GSC (Call of Duty)

System Design

Prototyping

Mentoring & Training

Cross-Discipline Collaboration

Balancing & Tuning

Gameplay Scripting

AI Systems

Debugging

Areas of Expertise

Technical Skills

Game Design