Portfolio

Here are the games (and a patent!) I have been credited for working on, with a little information about what my contribution was.

Published Games

Red Dead Redemption
Rockstar Games, May 2010
XBox 360, Playstation 3

When I joined the project, I was the only physics programmer dedicated to the team for quite some time and I remained one of the main go-to guys for physics throughout the project. I had situational awareness if not some degree of involvement with most aspects of the physics within this game, including direct authorship or assigned ownership of many systems. It was common for me to be working with teammates from all disciplines to resolve extraordinarily complex problems in a fast paced and occasionally high pressure environment. In addition to mentoring new members of the physics team, I was often working with designers to ensure they got what they needed, with artists to help them prepare assets more effectively, and with the RAGE engine group members where I mainly tried to learn as much as I could from those geniuses just to keep up. On a project of this scale nearly every system is worked on by multiple people and accordingly my code contributions are all over the place. I was involved with many aspects of vehicles, character movement, trains, mine carts, explosions, water simulation, and a host of other gameplay and asset processing systems that were usually (but not always) related to the physics or vehicle simulations. This was a long and complex project with far too many challenges and accomplishments to summarize here and I will just say it was a wild and satisfying ride that I couldn't be happier to have been a part of.


Untold Legends: Dark Kingdom
Sony Online Entertainment, November 2006
Playstation 3

I came to this team rather late to help them launch the title in time for the Playstation 3 launch. I spent most of my time implementing support for audio hooks, voice chat, physics triggered sounds, script related sound controls and generally providing programmer support for all things related to sound.


EverQuest: The Serpent's Spine
Sony Online Entertainment, September 2006
Windows

I continued enhancing pathing systems to better interface with destructible objects so that pathing routes would be enabled or disabled as needed when a large destructible object changes state. I also provided numerous enhancements to the pathing system and pathing data generator to accomodate changes in the recently released heightfield terrain system.


EverQuest: Prophecy of Ro
Sony Online Entertainment, February 2006
Windows

I did the technical design and implementation of many aspects of the technology required to support player set traps, spheres of influence and destructible objects. I provided other programmers with specifications and helped guide the implementation of various subsystems of these features. I took lead on these tasks because these systems utilized advanced features of the collision and pathing systems I had written previously. Additionally, I implemented a texture proxy system which allowed the game client to defer the loading of textures from disk until they were actually required for display. This was very useful in reducing memory requirements that had grown during the course of the many expansions adding new global items to the game.


EverQuest: Titanium Edition
Sony Online Entertainment, January 2006
Windows

A compilation pack where I helped with file management, in game reward keys, and various other tasks that are required to get such products out the door successfully.


EverQuest: Depths of Darkhollow
Sony Online Entertainment, September 2005
Windows

I spent much of this development cycle optimizing pathing and collision systems, resulting in measurable reduction of server hardware requirements. I also began promoting the idea of the "Progression Server" which leveraged existing content to create a new type of server which proved very popular with players and increased subscriptions.


EverQuest: Dragons of Norrath
Sony Online Entertainment, February 2005
Windows

This expansion had a number of issues related to generating navigation data for extremely large zones and for optimizing the use of this data on instanced server farms. I designed and implemented the Audio Trigger system, an in-game mechanism for associating player-defined sounds with incoming chat messages.


EverQuest II
Sony Online Entertainment, November, 2004
Windows

My procedural pathing system is used to generate data for this game's AI. I provided some small service to the team helping them understand and integrate my architecture within EverQuest II.


EverQuest: Omens of War
Sony Online Entertainment, September 2004
Windows

Continued work on the collision, movement and pathing systems to deal with issues related to new content. During this project I also finished the new sky system for EverQuest which is a fairly complex procedural object with many features including real time blending between weather systems, multiple cloud layers, time of day projected 2D vertex color animation, and many other tricks to make it look cool. I also implemented the "thick line" system which is a real time extrusion of a collection of 2D sillouettes along a 3D spline which is used by the "player find" feature to display a "mystical path" to the player's destination in the form of a swirling, UV animated tube that undulates in space along the control points resulting from a pathing query performed by the server. I participated in an IGN interview for this expansion, and they have a few shots of the sky system in the article.


EverQuest: Platinum
Sony Online Entertainment, July 2004
Windows

This was a compilation pack, and my contribution to this was minimal as I was deep in Omens of War tasks at this time. Compilation packs aren't really something that requires much attention from programmers, but I was involved with most things at a organizational level to some degree due to being an assistant lead programmer at this time.


EverQuest: Gates of Discord
Sony Online Entertainment, February 2004
Windows

Designed and implemented the client-server collision system used by the update of the graphics engine for EverQuest. The collision system is a scalable, multicore capable design that has no OS dependencies and provides a wealth of collision detection, regional object detection, and movement detection services. At this time I became a key person responsible for game security systems due to the fact that so many exploits take advantage of flaws in movement and collision systems. Additionally, I was responsible for implementing a world server player caching system that allowed EverQuest to overcome disk access bottlenecks that were the cause of cascading server failures occurring at the peak of EverQuest popularity.


EverQuest: Lost Dungeons of Norrath
Sony Online Entertainment, September 2003
Windows

Finished the geometry analysis and procedural pathing data generator and corroborated with another programmer on the creation of a new A* pathing system used by EverQuest using my experiences creating pathing systems for Earth & Beyond. This pathing system is an evolution of the system originally conceived of while previously discussing the problem with Patrick Smith. It is a highly optimized connected graph of data representing all the passable space in the map, and is implemented in such a way that the pathing system is able to navigate several distinctly different types of connectivity graphs - point to point, surface-sharing convex volumes, and AI bridges (ie teleporters, etc) - to deliver a complete pathing solution to NPCs to help them navigate to their goals. This system was a major undertaking, implemented in a manner that made it suitable for use by other games and continues to be at the core of the navigation systems used by EverQuest and EverQuest II today. The procedural data generator made it possible for designers to automate the pathing of a level, saving many man-months of effort (if not years at this point) that would have been spent manually editing pathing graphs. Additionally, the 3D volumetric nature of the pathing data enables the NPC logic to navigate through open space for flying NPCs as is seen in EverQuest II.


EverQuest: The Legacy of Ykesha
Sony Online Entertainment, February 2003
Windows

Tasks involved helping make the new Froglok player race work with existing systems and various project management tasks. During this time I started work on the geometry analysis systems used by the procedural pathing data generator and related pathing logic system used by the next expansion.


Sovereign
Sony Online Entertainment, 2003

I worked on this MMO RTS project as a senior programmer responsible for the game editor that made heavy use of an integrated Javascript interpreter that provided control of native code objects. It made a lot of sense for me with my Earth & Beyond and C&C3 background to work on this game which was to be a mix of MMO and RTS genres. Unfortunately, Sony Online Entertainment shelved this project about 5 months after I arrived.


Command and Conquer 3
Westwood Studios, 2002

Westwood Studios originally started working on C&C 3 but not long after starting it the studio was shut down by Electronic Arts. I had the pleasure of helping with the preproduction of the first iteration of C&C 3 while Westwood Studios was still operational and during this time I did research on various 3rd party engines including Unreal for possible use with this title.


Pirates: The Legend of Black Kat
Westwood Studios, Februrary 2002
Playstation 2, XBOX

My work on this project mostly involved NPC pathing, behavior and combat AI. I also helped with the asset management pipeline.


Earth & Beyond
Westwood Studios, 2004
Windows

I was hired in 1997 to be the second programmer on this team. For several years there were only a handful of us working on this project known only by code name "G", never to be discussed outside the team. I was responsible for many core systems including terrain rendering, economic simulations, path finding, user interfaces, LOD systems and a variety of 3D special effects. It was my work on 3D terrain systems that convinced management it was time to commit to a fully 3D environment as opposed to porting the Command & Conquer game engine for terrain mode. After working on this project for 3.5 years, I left the team in 2000 to help out with the Pirates game.


Patent
While working at Sony Online Entertainment, I was often involved with some pretty new ideas related to online gaming, many still covered by non-disclosure agreements. I can however mention that I invented something called a System and Method for Regulating Overlapping Media Messages which we were able to patent. The short description of the patent is that you can connect to multiple media streams, time compress individual blocks, and play them back serially at a higher rate so that a person can essentially listen to multiple conversations at once. Think of it as taking two people who talk slowly, make them talk twice as fast, and then listen to one sentence from each person at a time.