Resume

Rich Whitehouse
Solicitations are not welcome.
Document created October 24, 2004.
Last updated November 2, 2023.

Experience Summary
  • Over twenty-five years of experience in video game programming and development.
  • Experience on numerous commercial titles for Windows/PC, Xbox, Xbox 360, Xbox One, Xbox Series X, PlayStation 2, PlayStation 3, PlayStation 4, PlayStation Vita, GameCube, Nintendo 3DS, Nintendo Switch, iOS, and others. Titles include Star Wars: Jedi Knight II, Star Wars: Jedi Knight - Jedi Academy, Soldier of Fortune Gold, Soldier of Fortune II, X-Men Legends, Prey, ReCore, Fortnite, and Atari 50: The Anniversary Celebration.
  • Functioned as multiplayer/network programmer on two commercial Quake III engine titles, as well as one DOOM III engine title.
  • Experience instructing and educating employees, as well as working professionally with third parties.
    • Contracted and managed multiple employees, as the owner of a small video game development studio.
    • Worked directly with publishers and third-party developers, as an independent contractor.
    • Performed lead and management roles at well-established studios.
  • Experience in maximizing performance and visual fidelity on a large variety of devices and platforms, from limited embedded/mobile systems to cutting-edge PC/console systems.
  • Experience developing and maintaining complex software tools for a public audience.
  • Experience debugging in high-pressure scenarios, often called upon to address extremely difficult/evasive bugs.

Skills
  • Extensive knowledge of C/C++ and other low-level/high-level languages.
    • x86/x64 assembly for optimization and debugging.
    • MMX/SSE/SSE2/NEON/etc. SIMD instruction sets.
    • C# under numerous environments, including Mono/IL2CPP via Unity.
    • Python under numerous environments, including Pylons and Shotgun.
    • Objective-C with Cocoa on Apple platforms.
    • Experience with other scripting/programming languages as needed, including: PHP, Java, JavaScript, Pascal, Perl, ARM (numerous series) assembly, MIPS (numerous series) assembly, 6502 and 65C816 assembly, Motorola 68000 (and variants) assembly, PPC assembly, and many more.
    • Comfortable learning new languages on the job.
  • Capable of implementing fast and accurate software emulation from the ground up.
  • Extensive knowledge of rendering architecture and optimization across many generations of hardware.
    • Various lighting and shadowing techniques, combining pre-computed and dynamic solutions to suit hardware capabilities.
    • GPU pipeline and shader optimization.
    • 3D software rendering.
    • Experience with most console-specific graphics API's, as well as common multi-platform API's such as Direct3D and OpenGL.
  • Implementation experience in most other technical areas of game development.
    • Animation systems.
    • Particle systems.
    • Audio systems.
    • Physics and collision, both with and without third-party library support.
    • Networking with a client/server architecture.
    • AI and path finding systems.
    • Domain-specific (including animations, textures, meshes, and audio) compression.
  • Extensive knowledge of general Microsoft Windows programming and associated API's, including MFC and GDI. This includes low-level experience with Kernel/driver programming.
  • Extensive knowledge of reverse engineering, with specialization in disassembling programs and understanding proprietary data formats.
  • Excellent debugging and problem solving skills.
  • Excellent team and leadership skills.
  • Excellent technical writing skills.
  • Good at public speaking, and conveying a technical narrative in a way that's still fun and engaging for a non-technical audience.
  • Knowledge of what makes a game feel solid and fun, having been responsible for game logic and design on a number of critically-acclaimed titles.

History

2020 - Present
  • Head of Digital Conservation at the Video Game History Foundation
    • Responsible for ingesting source code artifacts and overseeing source-related projects.
    • Create environments, provide documentation, and create patches/modifications as needed in order to build source code and recover data.
    • Reverse engineer data/protocols and perform deep artifact analysis.
2018 - Present
  • Owner and Engineer at Swinecrafters LLC
    • Atari 50: The Anniversary Celebration
      • Created a brand new Atari Jaguar emulator, facilitating the inclusion of Jaguar titles. A standalone version of this emulator is also available. This is the first Atari Jaguar emulator to boast compatibility with the entire retail library (including Jaguar CD titles), along with excellent performance.
      • Reverse engineered and created patches for various titles in the collection, offering brand new gameplay enhancements and bug fixes.
    • Teenage Mutant Ninja Turtles: The Cowabunga Collection
      • Reverse engineered and created enhancement options for every title in the collection. Enhancement features included new gameplay modes and new playable characters for select titles.
      • Selectively improved the quality and performance of emulation across various systems.
    • Disney Classic Games: Aladdin and The Lion King
      • Created a new version of Aladdin with special features and enhancements.
      • Reverse engineered an Aladdin CES demo build, fixing critical bugs and restoring functionality to make the build suitable for commercial distribution.
      • Reverse engineered Aladdin and The Lion King across all available platforms (Nintendo Game Boy, NES, Sega Genesis, and SNES) where source code was not available, in order to provide reference material to the art staff and create patches for the games.
    • Blizzard Arcade Collection
      • Extracted and converted exclusive content from the Sega Genesis version of The Lost Vikings without the aid of source code.
      • Implemented text hooks and synchronized overlays for The Lost Vikings and Blackthorne so that the emulated titles could be seamlessly localized for many new languages.
      • Reduced emulated load times without compromising timing/accuracy by translating decompression and APU load routines into native C/C++ routines.
      • Reverse engineered each game in the collection on platforms where source code was not available, in order to provide reference material to the art staff, create patches for the games, and facilitate additional "Definitive Edition" features.
    • Boiling Point: Road to Hell
      • Cracked the original release's copy protection, facilitating a new Steam release without the need for source code.
      • Created a custom module hook in the newly cracked executable, making additional fixes (such as support for modern Windows scaling/DPI functionality) trival to implement despite the lack of source code.
    • Ballance
      • Debugged and fixed numerous bugs which made the software unusable on modern Windows machines, without access to source code. This also meant having to understand the game's particle system through pure x86 assembly, as a particle system bug was responsible for causing hangs/crashes under tenuous circumstances.
    • Fireteam Rogue Project
      • Reverse engineered compression, tile, and sprite formats for a Fireteam Rogue SNES prototype.
      • Reverse engineered game-level logic/data, including object types and state machine routines/data, in order to create a custom build of the game featuring various debug and accessibility options. This build was used by the client to assess the game and scope out additional work.
    • Unannounced Unity Project
      • Implemented a full-featured character customization system in Unity.
      • Created a native plugin to handle asynchronous loading and batching of character resources, allowing for over 100 fully detailed and customized characters to be renderered simultaneously.
      • Maintained native functionality and performance across platform targets, including Microsoft Windows (D3D11 and D3D12), Xbox One, and Xbox Series X.
      • Implemented a unique solution for specular antialiasing under Unity's URP.
    • Virtual Camera Project
      • Created new rendering, scene graphing, streaming video device, and resource systems.
      • Integrated AprilTag support for real world camera and display tracking.
    • Medical Imaging Project
      • Implemented a custom volume renderer.
      • Implemented support for numerous popular medical imaging standards, including DICOM.
    • Debugging and Analysis Support
      • Found and fixed multiple crash bugs in a popular video game title after launch.
      • Provided production staff with weekly reports on content issues and performance.

  • Independent
2013 - 2018
  • Principal Engineer at Armature Studio, LLC
    • Lead engineer on The Unfinished Swan for PlayStation 4 and PlayStation Vita.
    • Lead engineer on a partner project with Riot Games. Project details cannot be provided at this time.
    • Lead engineer on an optimization team for an external PlayStation 3 title. Implemented SPU-based rendering (building of the commandbuffer) and culling, and coordinated efforts to develop SPU-based postprocessing and other game/animation-related tasks. Additional project details cannot be provided at this time.
    • Engine and pipeline work on Fortnite, including fixes and additions to Unreal Engine 4.
    • Engine and optimization work on the Borderlands: The Handsome Collection post-release performance patch for PlayStation 4 and Xbox One.
    • Engine and optimization work on Batman: Arkham Origins Blackgate for Nintendo 3DS and PlayStation Vita.
    • Engine work on Injustice: Gods Among Us for PlayStation Vita.
    • Engine and optimization work on ReCore.

  • Contracting
    • Reverse engineering and content pipeline work on Battlezone 98 Redux for Rebellion.
    • Model and animation content pipeline work for TNB Games.

  • Independent
2011 - 2013
  • Pipeline Engineer at Sony VASG
    • Worked on a proprietary technology related to realtime motion capture.
    • Worked on an unannounced internal video game project.
    • Developed a client-facing web interface with server/database support.

  • Contracting
    • Model and animation pipeline work for MachineWorks Northwest.
    • Worked on motion capture, content pipeline, and rendering technology for the Mirror.ly project at Cloud Cliques, Inc.

  • Independent
    • Added dozens of additional formats and features (including FBX support) to Noesis.
2010 - 2011
  • Contracting
  • Independent
    • Created a personal motion capture solution using the Microsoft Kinect with OpenNI/NITE libraries. One of the videos for this project went viral, and was featured across various web sites and television networks.
    • Added a Python implementation to Noesis, providing a fully translated plugin API and numerous example scripts.
    • Started working on a MIPS R5900 CPU emulator.
    • Continued to maintain personal tech and content pipelines.
2009 - 2010
  • Owner and Engineer at Swinecrafters LLC
    • Shipped a self-funded, multi-platform video game title, with the assistance of several industry-professional contract employees under Swinecrafters LLC. The title, Corporate Fury, was initially released for the iOS platform, and received with great critical praise from a variety of major gaming media outlets:

      "There are a ton of wacky characters, plenty of crude humor, and enough fighting to satisfy any gamers needs in Corporate Fury, and it stands out as one of the more unique offerings for the iPhone." -TouchArcade.com (front page article)

      "The iDevice did not have a proper brawler that delivered until Corporate Fury came along. With a funny (yet crude) premise, and a well deserved 17+ rating, this game is easy to recommend for those who love mindless violence." -nodpad.com (4/4 stars)

      "Corporate Fury has just about everything that I could want in a video game." -148apps.com (4/5 stars)

      Corporate Fury maintained a 4-5 star average on iTunes through its entire lifespan.

    • Continued maintenance on my own game engine and content creation/import/export pipelines. (added support for 10-15 new geometry/animation formats, including COLLADA import/export)
    • Created Noesis, a free asset processing/conversion tool which handles translating data between hundreds of unique file formats.
2008 - 2009
  • Contracting
    • Worked on contract for ngmoco:), developing a robust general game and rendering technology solution for the iOS platform.

  • Independent
    • Created and released AVALANCHE, an unofficial and free fan-game set in the Final Fantasy VII universe. The game was very well-received, and was featured in numerous physical and online publications. Among these publications was the internationally published magazine Retro Gamer, which featured AVALANCHE with the caption "Avalanche: If a new Final Fantasy VII was released today, chances are it might look a little like this."
    • Worked on several hobby projects for Sony's PlayStation Portable, learning about ideal storage and rendering formats for the device in the process.
2007 - 2008
  • Senior Programmer at Human Head Studios, Inc.
    • Implemented new game/technology systems and rendering features for an unannounced title. Rendering features included:
      • Robust texture streaming. (with real-time texel area determination)
      • Hardware vertex blending/animation.
      • Shadowmaps with dynamic frustum grouping/LOD.
      • Adapting a variety of old OpenGL/fragment program functionality to Direct3D 9 with HLSL shaders.
      All rendering features were developed on the Xbox 360 and PC concurrently, dealing with the needs of each platform. (resolving, predicated tiling, and EDRAM limitations among them)
2005 - 2007
  • Programmer at Human Head Studios, Inc.
    • Technology programmer on Prey - various low-level systems and SIMD optimizations, also responsible for getting Prey portals to work in the DOOM III engine.
    • Multiplayer and gameplay programmer on Prey - handled networking code and gameplay systems related to multiplayer.
    • Wrote numerous Windows applications to assist in debugging and bug-finding on the project, including an application to do stack walking on a given process, which could also sift through stack memory and check pointer memory to recover otherwise-lost context records.
    • Worked with third party Digital Interactive Streams, Inc. for Triton integration in Prey.
    • Worked remotely on Prey patch issues, and began work on an unannounced title.

  • Independent
    • Released a demo game using my proprietary game engine technology, which is now featured in several games.
    • Developed a Quake engine featuring various "next-gen" (at the time) features.
2004 - 2005
  • Independent
    • Homebrew programming with the Gameboy Advance. Developed a working sidescroller engine and made a sample game with it, in addition to other games and applications.
    • Developed a full-featured game engine, with a client-server networking architecture, OpenGL-based renderer, proprietary collision/physics systems, various per pixel and pre-baked lighting methods, and other at-the-time cutting-edge features. Development continued periodically up until beginning employment at Human Head Studios, Inc.
2001 - 2004
  • Programmer at Raven Software, Inc.
    • Multiplayer Programmer on Star Wars: Jedi Knight II: Jedi Outcast. Responsible for everything relating to the multiplayer codebase, including all network/game code, and feature parity with the network-incompatible singleplayer codebase.
    • Multiplayer Programmer on Star Wars: Jedi Knight - Jedi Academy. Carried over responsibilities from Jedi Knight II, and worked on various engine/technology systems.
    • Programmer on Soldier of Fortune II. Worked on game systems, and provided foundation for multiplayer codebase.
    • Programmer on X-Men Legends. Technology and effect work.
2000 - 2001
  • Contracting
    • Worked on AI and path finding for Crytek, on a game called Engalus. This was one of Crytek's very first titles, but it was never completed.
    • Worked with Raven Software, Inc. remotely, in order to develop the hidebot, a multiplayer AI opponent for the original Soldier of Fortune. The bot was later included in the retail distribution of Soldier of Fortune Gold. (and Platinum Edition)
1996 - 2000
  • Independent
    • After experience with various Quake mods, developed and released the Famkebot, the first publicly available Quake II multiplayer AI opponent.
    • Developed the Jumbot, still often hailed as the number one Half-Life Deathmatch/Teamplay bot. This project saw millions of downloads worldwide, and is primarily what kicked off my career in game development.
    • Continued development of various mods and freeware applications. Some notable projects include Head Soccer and Scientist Hunt.

Self-summary

I've been making games for most of my life now. I've worked in a wide range of roles within the confines of my job as a programmer, from high-level logic and design, to low-level debugging and optimization. I've enjoyed the unique aspects of each of these roles, and am glad to take on any challenge presented to me. I do most of my work in C and C++, but have experience with a wide variety of programming languages. My love for low-level assembly coding has repeatedly proven valuable for the purposes of optimization and debugging.

Having a broad knowledge of both technical and general production aspects of video game development has also made me a valuable asset in project evaluations and planning. I've performed many unique assessments across a wide variety of projects, creating detailed documentation, charting out milestones, and identifying risks. These assessments have proven to be exceptionally accurate, and have played a big part in establishing efficient budgets and timelines across projects of varying scope.


References

References will be supplied on request.



8322948 page hits since February 11, 2009.

Site design and contents (c) 2009 Rich Whitehouse. Except those contents which happen to be images or screenshots containing shit that is (c) someone/something else entirely. That shit isn't really mine. Fair use though! FAIR USE!
All works on this web site are the result of my own personal efforts, and are not in any way supported by any given company. You alone are responsible for any damages which you may incur as a result of this web site or files related to this web site.