This page covers a few of the tools I have created or designed to streamline production workflows, for everyone from individual artists up to studio executives.

UE3 XBOX360 Build Distribution Tool

To facilitate daily playtesting on a console FPS, I created a one-button XBOX360 build acquisition tool for our team. The tool is an HTA script and GUI, with data populated by reading the build directory on the server for the list of builds and a few “current state” files stored as plain text. When a new build is promoted by a user, the “Latest Build” variable is written to the latest build state file. When a match is launched by a user, the “Current Build” variable is written to the current match state file. This allows one-button access for end users, as clicking “Join Match” queries the state files to get the current build and connect to the dedicated server automatically. Builds are promoted using UE3 cooker sync, and transferred over the network to clients using XDK file copy commands. This is transparent to the users.

UE3 Batch Exporter

Reich Scene Manager (Maxscript above, dotNET below)I created a batch exporter for UE3 that has been used exclusively and production-proven on several projects to date. The exporter has the following features:

  • Scene manager view with all relevant meshes determined by naming convention.
  • Automatic pairing and batch exporting of UCX collision meshes with static meshes.
  • Exporting of animated (UDK) and dynamic (Reich) destruction assets.
  • UE3 Map export.
  • FBX and ASE file formats.

Custom Bevels

Before explicit normal support was added to Unreal Engine 3 for static meshes, we added it ourselves on Reich to support a custom form of beveling allowing large flat surfaces to be adjacent to single edge bevels. This drastically reduced the amount of vertices required to retain the integrity of surface normals around beveled edges, and reduced the need for custom baked normal maps in general. In order to make creating these kind of bevels easy for the artists, I created a maxscript that could be used in place of the standard chamfer command. Previewing meshes inside of 3DSMAX was accomplished with an additional script that processed the normals prior to export.


An asset checking tool with customizable pass\fail criteria and plugin architecture, designed to drive streamlined QA processes on a wide variety of projects in 3DSMAX, Maya, and Photoshop. Checkbox was designed to process a directory of source art files quickly to gather all relevant information in one file, without requiring artists or producers to open and check each file by hand.

XSI Transition Tools

A suite of tools created to give new XSI artists some of the tools they were familiar with from 3DSMAX and Maya, along with a few popular plugins.

3DSMAX Lightmapping Suite

As possibly the first team creating a first person shooter using the Bigworld MMO engine, I implemented a lightmapping suite for artists to create lightmaps and shadowmaps using our custom Bigworld lighting format directly inside of 3DSMAX. This allowed the most quality and flexibility without needing a customized GI renderer to be implemented inside of Bigworld Engine.

Photoshop Texture Exporter

A Photoshop tool designed to export source textures to custom client formats, critical to efficient iteration and delivery of large quantities of assets. The tool works by reading a configuration file at launch containing all format definitions. On export, specific folder groups in the current PSD file are exported to the textures and channels specified in the configuration file. For example, the ‘DIFFUSE’ group might be exported to the RGB channels of a texture ending with “_dif.tga” while the SPECULAR, GLOSS, and EMISSIVE groups might be mapped to the R, G, and B channels of a texture ending with “_masks.tga”. See the Lightmapping and Photoshop Tools video for details.


A suite of project management, time tracking, and integrated source control tools to manage a large outsourcing team. I worked with an experienced web application developer to design the front end, database, and client tool to meet the combined needs of the executive team, management team, producers, and artists. xNet is used on daily basis to track, deliver, and report on all projects at Exigent.