Resume

Rich Whitehouse
Solicitations are not welcome.
Document created October 24, 2004.
Last updated April 17, 2010.

Goal

To make use of my skills and abilities as a programmer and game developer, in order to assist in the production of high-quality video game titles. I am always interested in expanding my knowledge into other realms of software and hardware development, and enjoy helping and teaching others by making use of my existing knowledge.


Experience Summary
  • Over ten years of experience in the field of video game programming and development.
  • Experience on numerous commercial titles for the PC, PlayStation 2, GameCube, Xbox, Xbox 360, and iPhone. Titles include Solider of Fortune Gold, Jedi Knight II, Jedi Academy, Soldier of Fortune II, X-Men Legends, and Prey.
  • Functioned as multiplayer/network programmer on two commercial Quake III engine titles, as well as one Doom III engine title.
  • Experience instructing and educating other employees, as well as working professionally with third parties.
    • As an owner of a small video game development studio, I've contracted and managed my own employees from all necessary creative disciplines (such as design, art, localization, and voice talent).
    • As an independent contractor, I've managed my own product and other third party contractors assigned to my product (in the areas of art, high-level game logic, level design, and menu design), in cooperation with producers and other employees assigned by my publisher.
    • Working at numerous well-established studios, I have helped designers, scripters, artists, and other non-programmers, by teaching them how to use technology features, and showing them how to work with and utilize various game/design mechanics in their work.
    • I've worked with and educated many other programmers in the areas of optimization and debugging, and have tutored/supervised new employees (until they got into the swing of things).
    • Lots of experience working with third parties, as a representative of not only myself, but also my employer (such as Creative Technology, Ltd. and Digital Interactive Streams, Inc., during and after the creation and/or implementation of their respective technologies on Prey).
  • 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.
  • Acted as the primary debugger/troubleshooter on numerous commercial titles, and created/deployed proprietary debugging and troubleshooting software for Quality Assurance/publisher use.
  • I've have had my hands in hundreds of aspects of software engineering, all the way from subjects pertaining to video games, to reverse-engineering, security, and cryptology.

Skills
  • Extensive knowledge of C/C++ and other low-level/high-level languages.
    • Excellent knowledge of x86 assembly for optimization and debugging.
    • Excellent knowledge of MMX/SSE/SSE2/etc. SIMD instruction sets.
    • Excellent knowledge of ARM assembly.
    • Experience working with Objective-C and Cocoa on Apple platforms.
    • Brief experience working with other scripting/programming languages (as needed) such as php (with mysql), C#, pascal, java, javascript, perl, MIPS assembly, PPC assembly, and many more.
  • Extensive knowledge of modern rendering techniques, from working on cutting-edge rendering technology in a variety of API's, including Direct3D and OpenGL.
  • Extensive knowledge in the area of network optimization and architectural design.
  • Extensive knowledge of (and professional shipped title experience with) general Microsoft Windows programming, including MFC, and Windows GDI. Low-level experience with Kernel-level/driver programming, working with thread contexts, etc. as well.
  • Vast knowledge of actual system design (with full implementation experience), which spans all technical aspects of game development, including:
    • General rendering architectures on a variety of platforms, each with unique requirements and limitations.
    • Real-time per pixel lighting and shadowing techniques, as well as numerous static/pre-calculated lighting techniques, including lightmaps (using packed light vectors and scale-and-biased specular offsets).
    • Numerous approaches to weighted models with skeletal transforms, on a variety of platforms and architectures (from fixed point 66mhz processors to GPU-side skinning against matrix batches).
    • Procedural particle systems.
    • Spatially attenuated sound systems.
    • 2D and 3D software rendering.
    • Physics/clipping with basic types and meshes.
    • Networking with a client/server architecture (as it applies to multiplayer games and many other uses).
    • AI/path-finding systems, including a number of pre-calculated and dynamic approaches.
    • Reverse-engineering on a variety of software and data formats.
  • Excellent debugging and problem-solving skills, accumulated through years of experience.
  • Excellent team and leadership skills. Ability to work with and manage others, from many disciplines of game development (including programming, art, and design), to accomplish goals in a wide variety of circumstances.
  • Knowledge of what makes a game feel solid and fun, having been responsible for actual game logic and design on a number of critically-acclaimed titles.
  • An unusual volume of motivation for a man of my ancient wisdom and stature.

History

2009-2010
  • Currently working toward the completion of a self-funded, multi-platform video game title, with the assistance of several industry-professional contract employees.
  • 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).
  • Established Swinecrafters LLC, a video game development/software engineering company.
2008-2009
  • Worked on contract for ngmoco:), developing a robust general game and rendering technology solution for the iPhone platform.
  • Developed an unannounced title with ngmoco:), using the iPhone technology I had developed.
  • Created and released AVALANCHE, a wholly unofficial and free fan-game set in the Final Fantasy VII universe. This game was very well-received, and was featured in numerous physical and online publications. Among these publications was the popular, internationally published magazine Retro Gamer, who said of very own artwork (I know, I know, programmers aren't allowed to make art): "Avalanche: If a new Final Fantasy VII was released today, chances are it might look a little like this." :)
  • Worked on several hobbie projects for Sony's PlayStation Portable, learning about ideal storage and rendering formats for the device in the process.
2007-2008
  • Returned to work full-time at Human Head Studios, Inc. in mid-February 2007.
  • 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 (slightly modified Direct3D 9 with HLSL) and PC concurrently, dealing with the needs of each platform (resolving, predicated tiling, and EDRAM limitations among them).
2006-2007
  • After seeing Prey to its completion, left Human Head to resume work on several of my own technologies and projects.
  • Completed and released a demo with my multi-purpose game engine, which is now featured in several games, and has received some press coverage (from a number of outlets, including Edge Magazine's web site).
  • Briefly went back to work for Human Head Studios, Inc. remotely, on a contractual basis, to work on Prey patch issues, and begin work on an unannounced title.
  • Took a short hiatus from commercial work, and developed a Quake engine, featuring numerous next-gen features, built around the idea of an open-ended island environment. This project was named Quake Royale.
2005-2006
  • Employed as Senior Programmer at Human Head Studios, Inc., working as network and technology programmer on Prey.
  • Wrote numerous Windows applications to assist in debugging and bug-finding on the project, including a comprehensive application to do stack walking on a given process, reading stack memory for automated detection of context records (a fuzzy error-recovery method which, to my knowledge, has not been implemented in any other exception tracer).
  • Managed relations with third party Digital Interactive Streams, Inc. for Triton integration in Prey.
2004-2005
  • Development and research with the Gameboy Advance. Developed a working sidescroller engine and made a sample game with it, in addition to other games and applications.
  • Development of a full-featured OpenGL engine, with a working client-server core, 3D sound, various per pixel lighting features, and other at-the-time cutting-edge features. Development continued periodically up until beginning employment at Human Head Studios, Inc.
2001-2004
  • Employed as a programmer at Raven Software, Inc. Worked on numerous commercial titles, including Jedi Knight II, Jedi Academy, Soldier of Fortune II, and X-Men Legends.
2000-2001
  • Contract employment for Crytek. AI and path-finding work for a game called Englaus. This was one of Crytek's very first titles, but it was never completed.
  • Worked with Raven Software, Inc. from a remote location 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 Solider of Fortune Gold (and Platinum Edition).
1996-2000
  • After experience with various "small-time" Quake mods, developed and released the Famkebot, the first publicly available Quake II multiplayer AI opponent.
  • Also developed the Jumbot, which still stands as one of the most popular Half-Life mods and is hailed as the number one Half-Life Deathmatch/Teamplay bot even today. This project saw millions of downloads worldwide.
  • Continued development of various mods and freeware applications. Some notable projects include Head Soccer and Scientist Hunt, which each gathered a rather large following of their own.

Self-summary

I have a long history of experience in the field of video game development. I have 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 have enjoyed every one of these roles in their own unique aspects, and am glad to take on any challenge presented to me (especially if it's a tough one). I find that I have many motivating factors in game development, from both the video game and the technical aspects. I enjoy creating and conceptualizing, and the process of bringing things that I imagine into reality through my work. I also enjoy continually expanding my own knowledge of software development, particularly on low-level platforms, and helping those around me to do the same.

As for my language preferences, I write everything that I can in C++. I've spent many years finding that fine line between over-abstraction and under-abstraction in systems, and I love blending template-based classes/containers with C-style module-based layouts in well-contained systems whenever it's at all appropriate (I guess because I'm so oldschool, and because I like efficient calling conventions almost as much as I like inline functions). I did spend a couple of years writing a lot of things in pure C (mostly for Quake 3 titles), as well, and can often mentally compile C code to x86 instructions in accordance to the most recent version of the MSVC compiler. But it depends on how much C debugging I've been doing that year. :) I'm absolutely not the kind of guy that gets "set in his ways" or "set in his conventions", and am rather the kind of guy that's a fan of whatever is the most practical/effective solution for the problem or task at hand.

On the design end, I believe that it's very important for a development team to be fully behind, and to believe in the merits of, the product they are making (particularly when it comes to big-budget AAA titles). I love working on a title which is spearheaded by a truly talented and passionate designer. I absolutely believe in and support the "design visionary" creative model, and believe group design, while not without merit, often serves to only detract from what would've been a unique and brilliant idea. If I had to pick my favorite game designer in the world, it would have to be Tomonobu Itagaki. His games aren't flawless, but he has shown that he is truly not afraid to follow his own vision, and in doing so has appealed to a once-forgotten audience while simultaneously achieving massive commercial success.

I'm also aware that too much opinionated design philosophy on a programmer's resume can be off-putting! However, my desire to work at successful studios, with the ability to complete and publish unique and successful titles, requires such opinions to be made clear. :)


References

References will be supplied on request.



247028 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.