Game Industry Experience
Seven Studios - (SixFlags FunPark, Scratch:UltimateDJ, Nine, and Wild [Wii, XBox360, PS3, PC, DS]) (2007, Dec. - 2008, Feb.) Culver City, Ca
Seven strives to create blockbuster entertainment for all current and new generation video-game platforms from offices in
Los Angeles, Utah, and Taiwan.
Tools Programmer - Responsibilities include:
Asset Management: SkeletonMatcher.
Wrote a utility which isolated and reported discrepancies between models in 3DStudioMax after exporting to Collada and Havok. This enabled
developers (primarily technical artists) to quickly identify any mismatches (and to do so simultaneously among an arbitrary number of
models) so they could be corrected to run smoothly through the asset-pipeline into the cross-platform game-engine for consistent rendering.
[Perl, PAR, Collada, Havok, XML]
Tool Deployment: PAR.
The Perl ARchiving toolkit was used to deploy standalone Win32 executables so artists,
programmers, and designers could use elaborate Perl utilities without concern for any of the associated dependencies
(i.e., ActiveState Perl interpreter installation, external module configuration,
shell environment setting, etc.).
[Perl, PAR, CygWin, dmake]
Art Scripting: LevelEditor.
Designed and prototyped a level-editing script in 3DStudio's MaxScript which enabled designers to paint down swaths of locators with
designations as spawn-points, particle-emitters, sound-effects, etc.. This utility informed the tools team of the capabilities of
MaxScript and its potential fitness for all projects' level-editing purposes when compared to the alternative compiled plug-in architecture.
[3DSMaxScript, Vim, Perl, C++]
Syntax Highlighting: MaxScript.Vim.
Developed an intricate syntax color highlighting file containing several custom regular-expressions to match MaxScript's syntactic
idiosyncrasies and thousands of keywords split among logical token categories to streamline MaxScript coding for 3DStudioMax9 from within
Created a general utility to partition large data-files and their corresponding processing operations heuristically. ChopData resolved
silent unpredictable crashes of 3DStudio during exhaustive batched asset-exports by accepting maximum thresholds for file-count, running size, and component data elements (e.g., too many memory-leaking locator-nodes
encountered) which designated when the underlying processing application should be clean-slated with a fresh invocation of its executable.
[Perl, PAR, 3DSMaxScript]
Designed and implemented a single unified MaxScript to consistently and coherently supplant a disorderly array of batch files
and scripts that had previously automated asset-exporting into Collada and basic Havok files. This replacement supported several new
Havok behavior exporting options through an elegantly unified interface and printed out detailed diagnostics for improved conflict-resolution.
[3DSMaxScript, Collada, Havok]
Configuration Management: GenerateHavokConfigs.
Designed and developed a generation utility to handle a combinatorial explosion of Havok configuration files varying along three
independently growing axes:
- Projects (jumped from one to four within weeks)
- Target Platforms (Win32, Wii, PS3, and XBox360, likely to grow to DS and maybe PSP and PS2 as well)
- Data Configurations (animations [with a variant for optimized extractions], model rigs, rigid-bodies, rag-dolls, etc.)
The developers who had been manually constructing and maintaining the proliferation of all these variations became quickly mired in a
level of confusing data-redundancy which this single templated generation solution handily alleviated.
[Perl, PAR, Havok, XML]
Version Control System.
Developed a plan for transitioning the studio towards more scalable revisioning practices (including decentralized
distributed systems). Since the company was coordinating development between three studios which were time-zones apart (California, Utah, and
Taipei), extensive manual integrations (and "reverse integrations") were constantly undertaken among diverse projects and branches. My
careful analysis of the conditions and evaluations of the latest in DVCS technologies resulted in a compelling resolution plan.
[Git, SVK, Mercurial, Subversion, Perforce]
Trilogy Studios - (Virtual Pimp My Ride [PC]) (2007, Sep. - 2007, Nov.) Santa Monica, Ca
Trilogy is an upstart developer of virtual-world and casual MMO properties with a background in console games.
Tools Programmer - Responsibilities include:
Designed and implemented a thorough rewrite of an arcane system for handling resource copying between variant
There.Com engine builds and the revision control system. The old system included dozens of overlapping and conflicting tiny utilities which were all succinctly replaced by two documented Perl library modules. [Perl, Tk, Perforce, XML, VBS, Bat]
Developed utilities to streamline repetitive art construction procedures. [Maya MEL, Perl]
Emergent Game Technologies - (Server and Metrics Elements [PC, PS3, 360]) (2006, Sep. - 2007, Jul.) Walnut Creek, Ca
Emergent is responsible for the Gamebryo engine (used successfully in Oblivion and Civilization IV) as well as several other
middleware Elements designed to streamline general-purpose video-game development.
Server Tools / Quality Assurance Programmer - Responsibilities include:
Server Element: Entity Modeling Tool (EMT).
Designed and built an interactive graphical utility for editing Server Framework entity model data. EMT handles two XML file formats and
uses a highly efficient visual interface for constructing and maintaining entity mix-in hierarchies. This utility was coded single-handedly in
two weeks as a prototype of a new interface concept for an existing C# version of EMT which was entirely Windows forms-based and tedious to
use. After the prototype was demonstrated, the team unanimously adopted it as already superior (and in spite of the company-wide architecture
mandate to standardize on C# for content tools). [Perl/Tk, XML]
Server Element: Basic Card Game Engine (BCGE).
Wrote design documents and implemented code to exercise core client/server MMO infrastructure such as basic gateway and lobby negotiation,
persistence, reflection, untrusted clients, etc.. The implemented test applications are text-mode BlackJack and Texas Hold'Em.
The ongoing development for BCGE should see the porting of game logic from Perl to Python and C++ as well as the construction of both 2D and 3D
(i.e., Gamebryo) clients which are alternate renditions of identical underlying client-side game-state mediated through network traffic which
remains consistent irrespective of client-side variations in rendering. There are also designs to implement subsets of more advanced games
such as Magic: The Gathering and a Street Fighter card game. [Perl, Server Element]
Metrics Element: Automated Testing.
Designed and built parts of an automated testing framework for exercising the Metrics Element product in preparation for a 2007 version 1.0
release. [Java, C++, Flex, Ant, Perl]
Metrics Element: Manual Testing.
Performed product component feature analysis, contributed to test planning and documentation, and performed some manual black-box testing of
builds. [TWiki, Bugzilla, ScrumWorks]
Test Server Administration.
Installed and configured several testing servers to have operable MySQL daemons, Apache Tomcat services, Java JREs, and other utilities.
Wrote several Perl scripts to streamline procedures, generate or manipulate testing data, and report avoidable performance issues with
Perforce services. [Gentoo, Perl, MySQL, Tomcat, Java, Perforce]
Sony Computer Entertainment of America U.S. R&D - (PSGL, Collada [PS3]) (2005, Nov. - 2006, Mar.) Foster City, Ca
Sony's United States Research and Development laboratory has been responsible for critical PlayStation hardware and software
developments that have shipped with SDK's for every existing PlayStation video-game platform. SCEA R&D is awarded credit for pioneering
research in everything from low-level graphics and computation libraries to operating systems to open-source AI and asset formats.
Build Programmer / Server Administrator - Responsibilities included:
PSGL SDK testing and releases.
Built and tested PSGL (the PlayStation OpenGLES Graphics Library) core and samples (including Collada and advanced rendering code) on old CEB
and new DEH PS3 dev-kits in preparation for release to Japan for inclusion in PS3 SDK's distributed through the PlayStation 3 developer
network. Also worked on establishing an automated build process. [PS3, C, make]
Subversion and TWiki administration.
Installed, configured, and administered an internal GNU/Linux server for the PSGL and Collada projects as well as related samples and
projects associated with shaders, debuggers, run-time rendering, pipelines, conditioners, factories, and trade-show demonstrations. Made many
modifications to the TWiki code-base to meet our particular project-management needs to facilitate special modular project status
summarization, tracking, and archiving. [PS3, Debian, SVN, TWiki, Perl, XML]
Z-Axis / Activision - (X-Men: The Official Movie Game [PS2,XBox]) (2005, Aug. - 2005, Oct.) Foster City, Ca
Z-Axis is responsible for the successful Aggressive Inline games and has become a key component of Activision's market strategy.
Z-Axis aims to become a premiere developer of many popular current and next-gen licensed titles.
Build Programmer - Responsibilities included:
Build-process, disc burning, testing, and labeling.
Managed build process, daily disc burning, testing, and distribution, revision-control labeling. [Perforce]
Created utilities to parse source-code and asset libraries to help designers and artists reverse-lookup hash codes in debugging message
outputs. Wrote configuration files and scripts to generate all the code and data necessary to add and remove game levels (which had previously
been an arduous 15-step manual process due to poor scalability in engine design). [Perl]
Digital Eclipse / Backbone Entertainment / Foundation 9 Entertainment - (Death, Jr. [PSP], shipped 8/16/05) (2004, Feb. - 2005, Aug.) Emeryville, Ca
Backbone Entertainment is the largest independent game development company in the world with major offices in California,
Canada, Hawaii, Boston, and Europe. Digital Eclipse is responsible for shipping over 80 titles primarily for hand-held platforms such as Gameboy
Advance and Gameboy Color.
Design Tools Programmer - Responsibilities included:
Designer Data Tool (DDT): An Interactive Design Data Editor. Created DDT for programmers and designers to
interactively create, structure, and edit tunable data for Death, Jr. (as well as a previous project which was cancelled). DDT handled four
XML formats, could generate templated animation definitions and construct specialized FSM's for animation previews, and contained counts of
enemies, props, triggers, and particle emitters per-level and per-zone with highlighting for any exceeding their budget. [Perl/Tk]
Game Data Conversion and Build Process / Dependency Management with Perl and XML. Wrote utilities to convert Excel
design data into XML, created validation schemas, setup build tool-chain dependencies, wrote many asset-management utilities, crafted regular
expressions for unifying the C++ codebase, and made tools to generate C++ headers with struct declarations from XML hierarchies and code files
to instantiate those structs with corresponding data values. Coded general-purpose classes to tidy XML indenting and automate the merging of
tons of XML data documents, maintained Perl libraries of naming and abbreviation conventions for automation, contributed to
Collada as author of a specification chapter and chairman of the Assets
working group, and created an interactive FSM tool for editing character behaviors and enemy AI. [Perl, XML, RELAX NG, Ant, C++]
Designed level progression, themes, and control-schemes, addressed play-balancing and tuning. Being technically a
member of the Design Team, contributed critical solutions to many design / game-play problems, proposed adopted level progression mechanism,
suggested many important ideas towards game-play characteristics and content, helped Combat Designer tune and balance player and enemy
hitpoints, damage, knockback, combo timing, recovery, invulnerability, and other pertinant values. [DDT]
Artificial Intelligence. Coded, tested, and tuned AI system engine code for many enemy types (each with several
subtypes) and worked on and maintained all enemy state machines which governed reactions to signals such as taking damage, target in view /
range, destructible prop obstructing path, assorted timers expiring, etc. [XML FSM's, C++]
Big Ape Productions - (Celebrity Deathmatch [PS2,XBox], shipped 10/21/03) (2001, Jun. - 2003, Jun.) Novato, Ca
Big Ape specializes in big name licenses including The Simpsons, Star Wars, and MTV's Celebrity Deathmatch. Big Ape had accounted for nearly
five million game units sold by the time it closed at the end of 2003.
Programmer - Responsibilities included:
Design-related play-balancing and tuning. Worked under supervision of Lead Designer to detect and resolve
play-related issues such as per-move damage specification, move advantage allocation, invulnerability and collision-detection ranges, attack
and react animation speeds, and infinite-combo avoidance. [C]
Artificial Intelligence and projectile behavior scripting. Coded, tested, and tuned dynamic AI system for handling
enemy difficulty progression, move rating and success / promotion mechanism. Wrote the majority of projectile behavior scripts with logical
control structures, physics events, and handled speed / memory optimization while tuning. [Perl, proprietary AI/event language]
Art Department tool / Maya development. Created myriad art pipeline optimization utilities including:
vertex-weight and keyed-animation copying between divergent skeletons, interface / toolbar customization, transparent asset-management
versioning system. [Maya MEL]
Interactive Republic Corporation - (Kelly Slater's Pro Surfer [PS2], shipped 9/16/02) (2001, Feb. - 2001, May) Costa Mesa, Ca
Interactive Republic Corporation (IRC), a small coastal video-game development house which prides itself on being the employer
of a highly cohesive team of laid-back yet seasoned developers. IRC specializes in extreme sports and water-sport titles utilizing proprietary
game-platform-optimized liquid dynamics and physics routines.
Junior Programmer - Handled tool development, server administration, and internal support. Developed a PS2
memory-manipulation tool which could tweak in-game values directly from a PC-side Perl/Tk application. The designers used this tool heavily for
level set and wave configuration. [Perl/Tk, C]
Blizzard Entertainment - (StarCraft, Diablo, WarCraft II) (1997, Jul. - 1998, Mar.) Irvine, Ca
Blizzard Entertainment, established in 1994, is responsible for World of WarCraft (WoW), Diablo, and the StarCraft series of
best-selling games, as well as the huge global online free gaming service, Battle.Net, which boasts millions of
Quality Assurance Tester / Programmer - Play-tested StarCraft, Mac Diablo, and foreign-language versions of WarCraft II
through alpha and beta crunch. Wrote utilities to automate testing and break black-box builds. [C++]
Expertise: Octology, Perl (and the CPAN), C, Maya's MEL, GNU/Linux, Tk, PCRE, MySQL, CGI, zsh, proprietary AI/event scripting
Experience: C++, Java, Scheme, x86 Assembly, 3DStudio MaxScript, and GNU/Linux server administration (DVCS [Git, SVK, Hg, Darcs], CVCS [Perforce, Subversion (SVN), CVS, RCS], Apache, and TWiki)
Other: an enthusiastic, dedicated, and productive member of several game development teams, hardcore competitive fighting gamer for over a
decade, organizer of annual international fighting game Evolution tournament, proud member of Alpha Epsilon Pi (the national Jewish fraternity in the United States), the Libertarian Party, and the
International Game Developers Association, built custom arcade-style fighting sticks for use on home consoles
(DreamCast, XBox, and PS2)