|March Madness '98 (1998)||(AI Programming)|
|Lester the Unlikely (1994)||(Additional Thanks To)|
|Bill Walsh College Football (1993)||(Special Thanks to)|
SYSTEMS: Windows XP, XBox, PlayStation, Nintendo DS, Game Boy Advance, MS-DOS, Atari 800.
LANGUAGES: C++ (10+ years), C (10+ years), 8086-Pentium assembly (5 years), Java, BASIC, 6502 assembly.
TECHNOLOGIES: STL, MFC, Visual Studio, Code Warrior, DirectDraw, DirectPlay, DirectSound, NetBIOS, VTune.
TECHNIQUES: Object oriented game design, game play tuning, genetic programming, neural networks, fuzzy logic, self-teaching/learning game AI algorithms, multi-player programming, and script processing engines.
SKILLS: Meeting deadlines, team leadership, finding creative solutions, game design/tuning, and teamwork.
4/08 - 9/09 Lead Programmer – RingZero Game Studio, Bangkok, Thailand. 1/02 - 9/02 Senior Game AI Programmer – NovaLogic, Calabasas, California. 3/01 - 11/01 Senior Game AI Programmer – Presto Studios, San Diego, California. 5/98 - 11/00 Game Programmer/Lead Game Programmer – Blue Planet Software, San Francisco, California. 3/97 - 5/98 Game AI Programmer – Electronic Arts, San Mateo, California. 8/96 - 3/97 Software Engineer – The 3DO Company, Redwood City, California. 10/94 - 6/96 Software Engineer – Mindscape, Novato, California. 1/93 - 10/94 Software Engineer – Visual Concepts, San Rafael, California. 3/90 - 1/93 Software Engineer – EPYX, Redwood City, California. 8/87 - 3/90 Programmer/Analyst – Plourde Computer Services, San Ramon, California.
ARTIFICIAL INTELLIGENCE AND GAMEPLAY EXPERIENCE:
• Shipped in 1994 - Designed game systems and programmed artificial intelligence for Dominus, a real-time strategy game. Dominus combined aspects of Populous and Dungeon Keeper to create an immersive world full of interesting creatures. Designed systems for combining trap components, mixing spell components, interrogating prisoners, delegating responsibilities, etc. and programmed all artificial intelligence including searching, coordinated battles, retreat, interrogation of prisoners, commander intelligence, casting spells, etc. Used Watcom C++ for MS-DOS. Developer: Visual Concepts. • Developed in 1997 - Battle AI programmer for the 3D space combat portion of Galactic Conquest, a space conquest game (similar to Masters of Orion) where players pre-program their ships for combat. Orders could be given, like, "Attack the cargo ship until you are down to 25% health, then retreat to the healthiest ship, and attack its target.” The battle AI was designed to learn from the human player by determining how his new strategy stacks up against its known tactics (from its database), then use it against him. Written in C++ using RenderWare for Windows 95. Developer: The 3DO Company. • Shipped in 1998 - Performed the AI programming for the cross-platform, 3D college basket ball game March Madness '98. My tasks included complete zone defense simulation, offensive and defensive transitions, windows of opportunity, collision detection and consequences, game momentum evaluation and its effect on game play, genuine hand/ball collision detection, player movement with accurate foot registration, as well as many other areas of game play. It was written in C for both the PlayStation and Windows 95-98 (Windows version delayed due to core engine problems). Publisher: Electronic Arts. • Developed in 2000 - Designed and programmed AI for Hanasaki Gassen, a real time strategy game. There were many factors that the AI needed to evaluate, and simulated annealing was used to allow the AI to learn strategies by playing itself overnight, adjusting its internal weights until the best strategy was found. The AI could thus adjust to changing game rules, and even discover new strategies! It was written in C++ with STL for the GBA. Developer: Blue Planet Software. • Shipped in 2002 – Designed and programmed FSM AI for Whacked!, a comical, 3D, third-person shooter with wacky weapons and quirky personalities. I worked primarily on the FSM, path-finding, jumping (getting up to speed using various techniques), task organization and prioritization based on personalities and difficulty, icy-ground physics and special effects, general AI debugging display, and general bug-fixing. Written in C++ for XBox. Publisher: Microsoft. • Shipped in 2003 – Designed and programmed AI for two First Person Shooters at NovaLogic. The first was an undead shooter name Necromancer and the other was Delta Force: Black Hawk Down. Both projects utilized A* for quick path-finding with path optimization and avoidance for disbursal of agents (providing more ‘mob-like’ movement). I also implemented an extensive in-game node editor to facilitate placing and testing node layouts while running the simulation. They were written in C / C++ for Windows 2000/XP. Publisher: NovaLogic. • Shipped in 2008 - Lead programmer for Des Chiffres et des Lettres for Nintendo DS. Designed multi-level AI for opponents as well as fast dictionary word searches and exhaustive number equation searches (weighted toward human-like responses). Also worked on sprite engine, sound, networking packet strategy, animating letter tiles, etc. Developer: RingZero Games. • Awaiting Publisher 2009 - Game design, AI (including path finding, flocking, and distinctive behaviors) and hardware engine programming for a handheld game system (system and title withheld because game is under development). • Completed in 1996-2009 - Designed and programmed several AI research applications including a fuzzy logic, a genetic programming, and a neural network project on my own time. The fuzzy logic project was designed to allow independent AI agents 'flock' together in interesting and life like patterns. The genetic programming project would test many generations consisting of 500 programs each, thus evolving a highly fit maze-searching autonomous agent. My neural network project would accept ship positions as input and attempt to determine the formation they were positioned in based on the training data provided. They were all written in Visual C++ using STL and/or MFC for Windows 95-XP. Developer: Myself.
MULTI-PLAYER GAMES EXPERIENCE:
• Completed in 1992 - Designed and programmed BattleNet (I had the name before Blizzard!), on my own time just for fun. BattleNet is a multi-player, real-time battle simulation that runs over any file-sharing network and allows up to 14 players to play simultaneously (which we did every Wednesday night for over six months). BattleNet is similar to Command & Conquer in game play. BattleNet's many features include: Randomly generated or pre-designed maps, grouping units, allies, repairing/refueling pieces, producing new units, transports, aircraft carriers, anti-aircraft guns, launching missiles from subs, giving units to your allies, bulldozing terrain, custom configuration of all unit strengths/speeds/capacities and much more. Written in Turbo-C and 8086 Assembly for MS-DOS. Developer: Myself. • Completed in 1994 - Designed and programmed a top-down real-time maze shooter named HeroNet on my own time just for fun. HeroNet boasted randomly generated maze-like maps with rooms and power-ups that multiple players could explore and fight in. There were power-ups like arrows, cloaks to make you invisible, boots for speed bursts, and fireballs to burn large sections of the maze (perfect for those "dead-end" passages). The players could run around and explore using a cool line of sight algorithm that effected both exploration, and visibility of enemy monsters and players. It used NetBios for communication and was written in Borland C and 80386 assembly for MS-DOS. Developer: Myself. • Shipped in 1996 - Upgraded the real-time strategic missile war game Metal Marines. My tasks included NetBios support, random island creation, island customization interface (similar to Populous), AVI support and much more. Metal Marines was written in Microsoft Visual C++ using MFC for Windows 3.1 and 95. Publisher: Mindscape. • Shipping in 2009 - Lead programmer for Countdown for Nintendo DS. Designed network communication strategies for keeping wireless games in sync for two-player games, as well as all AI and the low level engine, including the sprites, VRAM swapping, animating tiles and transitions, extended sprites with transparencies, etc. Developer: RingZero Games.
SCRIPT PROCESSING AND MISCELLANEOUS GAME ENGINES:
• Shipped in 1992 - Designed and programmed a standalone cinematic engine, on my own time for fun! It was later used in Dominus (which shipped in 1994). The program included delta animation for backgrounds, sprites, music/sound effects support, mouse support, and a comprehensive scripting language. The cinematic engine was written in Borland C++ and 80386 Assembly for the IBM. Developer: Visual Concepts. • Developed in 1996 - Developed and programmed the isometric graphics engine for a server-based multi-user dungeon (MUD) game named Sprawl. The engine included opening and closing doors, automatic removal of upper stories (like X-COM), graffiti and other damage to walls, animated coast lines, rolling 3D mountains, automatic transition between different floor types, and more. Program was written in Microsoft Visual C++ using MFC for Windows 95. Developer: Mindscape. • Shipped in 2001 - Designed and programmed an event-driven, object-oriented, pre-compiled scripting language used in an updated version of Black Onyx, a figure skating demo and Barbie Team Gymnastics. Functions and events handlers could be overridden or enhanced (similar to virtual functions), passed parameters (which they could modify and return). The script could control everything in the game including movies, sounds, Caviars (animated voxel characters that z-buffer into movies or still backgrounds), sprites, animated sprites, database access, arrays, mouse collision with object, etc. The script compiler and processor were written in C++ using MFC. Developer: Blue Planet Software. • Shipped in 2008 - Joint lead programmer on Nintendo DS Ready Steady Cook and la Prova del Cuoco. Responsible for the game engine which used a sprite manager to handle all low level animation and supported scaling, rotation, transparency, flipping, hardware / software / extended sprites, animation, callbacks, automatic VRAM management, sorting, etc. Actual game content supervised by other lead. Developer: RingZero Games.
• Technical support provided in 1993-1994 - Provided technical support for many published Visual Concepts games including John Madden Football '94, Bill Walsh College Football, ClayFighter, Mickey's Big Day and Lester the Unlikely. Developer: Visual Concepts. • Shipped in 1987-1990 - Designed and programmed several applications for Plourde Computer Services, including HelpDesk (a problem solving database written in compiled dBase III+), and a Point of Sale Application written in Turbo C. Developer: Plourde Computer Services. • Shipped in 1992 - Upgraded a poster, greeting card and banner printing application named Print Magic / Studio of Greetings. The upgrade included a redesigned user interface, high resolution printing, and much more. Program was written in Microsoft C and 8088 Assembly. Publisher: EPYX. • Written in 2003-2007 - Wrote over 1,400 pages of a fantasy novel ShadowMage (working title). Currently trying to reduce page count to around a thousand, revise it for publication and find a publisher or self-publish.
Last updated: Sep 05, 2009