Pip Stuart

Address:

Mobile:

812 Mallard Ave. Apt.#6 Oshkosh, Wi 54901 - PipStuart@GMail.Com

(920)636-6271

Objective:

To competently create excellent Perl tools and applications which remarkably improve the efficiency and effective abilities of any end-users.


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 Vim. [Vim, 3DSMaxScript]

  • Automation: ChopData. 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]

  • Exporting: Max2ColladaHavok. 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:

  • Asset Management. 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]

  • Art Scripting. 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]

  • Utility programming. 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++]

Game Industry
Experience

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 active users.

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++]

Other
Experience

Aircraft Technical Publishers (2003, Jul. - 2003, Oct.) Brisbane, Ca

Aircraft Technical Publishers (ATP) has been the industry leader in providing mission critical maintenance and regulatory information to the general aviation community since 1973.

Consultant - Decipher legacy software systems and recode in Perl and Java.

MindFireIS.Com, TelcoBid.Com, BCIGroup.Com, OhGolly.Com (1998, Jun. - 2001, Feb.) Southern Ca

Lead Internet Programmer - Worked with and led teams of engineers and web designers to perform rapid software design, prototyping, and implementation. [Perl, MySQL, CGI]

Education

University of California at Irvine - (Information and Computer Science Major) (1995 - 2000) Irvine, Ca

ICS Student - Studied standard computer science full-time for two and a half years and part-time for two years.

Skills

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)