Andy Gavin

From Wikipedia, the free encyclopedia

Andy Gavin (b. 1970) is a programmer notable for co-founding the video game company Naughty Dog with childhood friend Jason Rubin in 1986. Naughty Dog's games (most famously, Crash Bandicoot) are known for their combination of exceptional technology, great graphics, and polished gameplay. The sophistication of Naughty Dog technology is often credited to Gavin's background in LISP at the MIT Artificial Intelligence Laboratory.

[edit] Education

Gavin studied for his Ph.D. at M.I.T. where he did research for the Jet Propulsion Laboratory on the Mars Rover Vision Project, under his advisor Rod Brooks. While still a student, Gavin learned LISP, a meta language among computer programming languages. Influences from M.I.T. and his own work lead him to develop a number of custom programming languages that improved the quality of graphics, controls, sounds and artificial intelligence in Naughty Dog video games. He also has a B.S. from Haverford College in Neuro Biological Science.

[edit] Career

Together, Gavin and Rubin sold their first video game called Math Jam in 1985. A few games later they sold Keef the Thief in 1989 to Electronic Arts. In the early 90’s, they created a fighting game called Way of the Warrior which eventually led to a multi-title deal with Universal Interactive Studios. It was under the auspices of this Universal deal that they produced the multi-million selling Crash Bandicoot series from 1994 until 1999, and later segueing into the successful Jak and Daxter series of games. At the end of 2000, Rubin and Gavin sold Naughty Dog to Sony Computer Entertainment America (SCEA). All in all, they created 14 Naughty Dog games including Math Jam (1985), Ski Crazed (1986), Dream Zone (1987), Keef the Thief (1989), Rings of Power (1991), Way of the Warrior (1994), Crash Bandicoot (1996), Crash Bandicoot 2: Cortex Strikes Back (1997), Crash Bandicoot: Warped (1998), Crash Team Racing (1999), Jak and Daxter: The Precursor Legacy (2001), Jak 2 (2003), Jak 3 (2004) and Jak X: Combat Racing (2005).

Shortly after leaving Naughty Dog, Gavin co-founded a new Internet startup called Flektor with his former business partner, Jason Rubin, and former HBO executive Jason Kay. In May 2007, the company was sold to Fox Interactive Media, which is a division of News Corp. Fox has described the company as: “a next-generation Web site that provides users with a suite of Web-based tools to transform their photos and videos into dynamic slideshows, postcards, live interactive presentations and video mash-ups.” In October of 2007, Flektor partnered with its sister company, MySpace, and MTV to provide instant audience feedback via polls for the interactive MySpace / MTV Presidential Dialogues series with presidential candidate Senator Barack Obama.

Gavin continues to work for Fox Interactive Media.

[edit] Technical Notes

For Crash Bandicoot Gavin created GOOL (Game Oriented Object Lisp). This was a mixed interpreted and compiled LISP dialect used for all of the gameplay code in the first three Crash games. For the PlayStation 2 and Jak and Daxter, Gavin revamped this idea and created the GOAL (Game Oriented Assembly Lisp) programming language. Consequently, the game runs in a variant of LISP on the Playstation 2, instead of the more conventional C++ programming language. GOAL is a fully compiled (only native code runs on the target) full powered LISP/Scheme dialect. 95% of the runtime code in all 4 Naughty Dog Jak games was written in GOAL. The language is a full featured fully object oriented LISP variant. It does not use a garbage collector at runtime generically, but relies on a more game oriented heap system (with some garbage collection of dynamic game objects). It has a full development environment including a source level debugger, profiler, and editor (all built into Emacs!). Several features make it fairly unique. It has a full interactive listener that can dynamically compile and run arbitrary code. Any code, down to the function or constant level can be compiled and patched into a running game image. Additionally, it supports integrated inline assembly for all PS2 processors with integrated register coloring. This unique feature allows assembly, particularly vector unit assembly, to be used seamlessly in the middle of high level code. Even the extensive library of highly optimized assembly render code written for VU1 (the main vector processor) was written using GOAL.