Andrew Aye

Mobile: (949) 266-4467
E-mail: andrew.aye@gmail.com
Web: http://www.andrewaye.com

Professional Experience
Lead Technical Engineer [2006(Mar)-Present]Obsidian Entertainment [Irvine, CA]
Shipped Games: Neverwinter Night 2 (PC)

  • Shared in the design of a brand new engine code base to be used for a new AAA title (Xbox360, PS3, PC).
  • Implemented a cross-platform rendering system and render resource manager.
  • Implemented an asynchronous loading system for all level assets.
  • Implemented a basic scene graph for frustum culling, per-object light lists and shadows.
  • Implemented a cross-platform engine job system for cpu load balancing of work units.
  • Implemented base actor class. They served to keep the system entities synchronized (animation, rendering, physics, pathing and game) and to serve as a base for the update cycle (specially movement) with a concentration on concurrent processing.
  • Improved the engine framework to work in a multi threaded environment. Modified the game loop to allow for concurrent processing and fixup of game data.
  • Render system is run completely concurrently and asynchronously to the game thread - shared in the responsibility to create the methods in which the two threads update each other and control asset management.
  • Restructured the way that render data is exported and then loaded by the engine. The format went from a multi-packet (with differentiated load systems) to a single packet, single load system.
  • Integrated Havok into the code base. Implemented a simple interface into the Havok system for game side collision requests. Implemented a robust interface for interacting with the Havok Physics system.
  • Helped guide the development process, and mentor the programming team.
  • Worked with the Art Technical Director to define render features and the art pipeline.
  • Liaison with Art and Design to make sure that we were meeting requirements and that assets would be delivered in time.
  • Wrangled the milestone deliverables.
Senior Programmer
  • Pathing system was based on an A* two dimensional model. Wrote a series of routines for constructing an arbitrary walk surface based on a collection of objects (placeables) that had artist defined walk surfaces. Created a routine to validate face to face pathability that was used by the pathing system.
  • Analyzed and optimized the engine to improve performance for a range of PC hardware.
  • Isolated and fixed some rendering issues that were producing ill behaviour, either in visual appearance or in execution time.
  • Modified text and font routines to work with FreeType v2.0 and in general fix issues that arose with UTF8 support (localization).
  • Troubleshooting and firefighting for the shipping product.

Simulation Engineer [2003(Oct)-2006(Feb)]Terminal Reality [Dallas, TX]
Shipped Games: Bloodrayne 2 (PC,XBOX,PS2), Aeon Flux (XBOX,PS2)

  • Integrated O.D.E. (open source physics solver) into the engine code base.
  • Created primitive vs triangle-mesh routines to calculate the penetration depth and normal of intersection, providing for interactions with arbitrary environments.
  • Created continuous collision detection (swept volume) for interactions involving high-speed and/or small geometries.
  • Corrected/Improved a majority of the existing primitive-primitive penetration functions.
  • Implemented a new collision primitive (flat-capped cylinder) using a true mathematically defined cylinder. The common practice is to model a cylinder as an extruded octagon (or other n-gon).
  • Refined the mathematical parameterization of constraints.
  • Modified the methods used to solve the physical simulation ( the calculation of the forces generated by a given set of dynamics and constraints ).
  • Implemented limitations on the system to prevent mathematical divergence in the solution system.
  • Created a debugging visualization system.
  • Refined collision calls for performance on console systems (specifically the PS2).
  • Rigorously tested the collision system for stability and performance. Specific care was taken with floating point limitations (extreme value cases ).
  • Tweaked capsule collisions to provide the predictable, stable results for soft body simulation.

Consultant/Programmer [2003(Feb)-2003(July)]Confidential [Toronto, ON]
Feasibility study for an existing film production company, expanding into video games.

  • Rough budgetary requirements taking into account the ramping from an initial technical team to a full development team for a game.
  • Preliminary technical design documents for game engine software design.
  • Interviewed/Reviewed potential staff members for an implementation team.

Lead Programmer [2001(Apr)-2002(Sept)]Sunstorm Interactive [Indianapolis, IN]
Shipped Games (PC): Airport Tycoon II (Partial), Bridge Builder, Mahjong, Super Ball

  • Managed a programming team of five people and communication with the out-sourced art team.
  • Created a data driven text-based open simulation system to allow for ease of customization and expandability.
  • Refined existing graphic engine for increased performance to allow for greater visual capabilities.
  • Created a specifically crafted physics simulation for Bridge Builder ( truss structure simulation ).
  • Created an API layer for the internal engine.

Forum Manager [1994-1997]The Microsoft Network (MSN) [Internet]
Created an online community for people interested in role playing games for MSN.

  • Managed a community team of fifteen people.
  • Responsible for multiple message boards, online chat-based games and event organization.
  • Official representative for the Illuminati: New World Order CRPG from Steve Jackson games.

Co-Op Experience
Game Designer [1995-1997]Steve Jackson [Internet]
  • Helped with the development and testing of the Illuminati: New World Order expansion, INWO: Subgenius.

Programmer [1996(May-Aug)]Canadian Space Agency [Montreal, QC]
  • Implemented an interactive simulation environment for testing a haptic device to be used as a controller for the Canadian Arm.

Programmer [1995(Sep-Dec)]Cognos [Ottawa, ON]
  • Ported code base to UNIX Platforms (HPUX, DGUX, AIX, Solaris, SunOS)
  • Developed/debugged code for the new release of the product

Network Specialist [1995(Jan-Apr)]Royal Canadian Mounted Police [Ottawa, ON]
  • Engineered the RCMP PC Network for the Canadian Capital Region (Users: ~5000)
  • Provided services & support for the transition to the new network structure

Programmer [1994(May-Aug)]Royal Canadian Mounted Police [Ottawa, ON]
  • Developed an in-house program for reducing police oriented paperwork

Research Assistant [1990 (June-Aug)]Atomic Energy Canada [Chalk River, ON]
  • Assisted in the development of an aqueous gamma radiation probe

Education
1993 - 2000B.MathComputer Science, HonoursUniversity of Waterloo (Waterloo, ON)
1993 - 2000B.A.Sc.Mechanical Engineering, HonoursUniversity of Waterloo (Waterloo, ON)
1993 -B.A.Film, Fine Arts HonoursUniversity of Waterloo (Waterloo, ON)