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.
- 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 - 2000 | B.Math | Computer Science, Honours | University of Waterloo (Waterloo, ON) |
| 1993 - 2000 | B.A.Sc. | Mechanical Engineering, Honours | University of Waterloo (Waterloo, ON) |
| 1993 - | B.A. | Film, Fine Arts Honours | University of Waterloo (Waterloo, ON) |