Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Lisp powers Jak & Daxter at Naughty Dog

63 views
Skip to first unread message

Craig Reynolds

unread,
Mar 9, 2003, 1:08:46 AM3/9/03
to
Sorry if you have already seen this. I asked the-usual-suspects who
else might be interested in the message below and comp.lang.lisp was
one of the suggestions. This issue has been mentioned here before:

Re: Success Stories
Date: 2002-04-11 09:57:54 PST
http://groups.google.com/groups?selm=lak7reuqel.fsf%40buzz.in-fusio.com

The specific URL for the Game Developer magazine article mentioned in
that post (free registration required):

Postmortem: Naughty Dog's Jak and Daxter: the Precursor Legacy
http://www.gamasutra.com/features/20020710/white_02.htm


Craig Reynolds
http://www.red3d.com/cwr/


-------- Original Message --------
Subject: Lisp powers Jak & Daxter at Naughty Dog
Date: Sat, 08 Mar 2003 12:38:58 -0800
From: Craig Reynolds
To: the-usual-suspects

I had a surreal experience yesterday at the Game Developers Conference.
The director of a successful software company was complaining about how
hard it was to find good Lisp programmers.

Stephen White, of Naughty Dog, Inc. spoke on "The Technology of Jak &
Daxter". Naughty Dog (http://www.naughtydog.com/) is a game studio in
LA, known for its popular Crash Bandicoot series and now Jak & Daxter.

He also talked in glowing term of how the power of Lisp (well, Scheme,
well GOAL: Game Object Assembly Lisp) helped them create the complex
runtime code of a major commercial console game. The text of a few of
his slides is included below.

(In Crash Bandicoot, they used a game engine written in C which they
scripted in GOOL, an earlier Lisp-like language.)

I thought this would be of general interest to TUS, and perhaps even a
job opportunity for someone. Naughty Dog is hiring and they need Lisp
programmers. Can anyone suggest other Lisp-friendly communities I
could send this to?

What is GOAL?
* GOAL is our custom compiler based on Lisp (well, actually Scheme).
* Practically all of the run-time code (approximately half a million
lines of code) was written in GOAL.
* Only the IOP code and a small amount of kernel code was written in C.


GOAL Features
* Object-oriented language.
* Extremely simple syntax.
* Powerful macro capability,
far superior to C's preprocessor or C++'s templates.
* Listener
* Code can be executed live at a "listener".
* Code can be compiled, downloaded,
and linked without interrupting gameplay.
* Data structures can be inspected or modified live.
* Rapid tuning and debugging.

Olivier Drolet

unread,
Mar 9, 2003, 6:23:07 PM3/9/03
to
c...@red3d.com (Craig Reynolds) wrote in message news:<39514d33.03030...@posting.google.com>...
>(...)
> What is GOAL?
> * GOAL is our custom compiler based on Lisp (well, actually Scheme).
>(...)

Is it correct to understand that, using Franz' Allegro CL (says so on
Franz' website), they developed GOAL as a scheme-based language to
program in?

Olivier

Duane Rettig

unread,
Mar 10, 2003, 2:25:45 PM3/10/03
to
tri...@mac.com (Olivier Drolet) writes:

Franz Inc and I are under nondisclosure with Naughtydog from a
contract we did for them, so I must be careful what I say.
However, I did get permission from Andy Gavin from ND to say what
I like as long as it's good :-).

Yes, Goal looks a little scheme-like, and yes, it was developed
to compile on Allegro CL. I would characterize goal in broad
terms as a cross-compiler, written in Allegro CL, for a game language
to run on a mips r5900. It has CL-like qualities, scheme-like
qalities, and game-specific qualities. As far as I can tell,
though, the overriding factor in what Goal looks like is its
orientation toward game play. The compilation is direct; there is
no interpreter on the target game boxes, as I understand its
predecessor GOOL had.

To back up into a more general point of view, I believe that this
is one of the most perfect applications of Common Lisp, since it is
one of the only language that can do it, and CL is certainly the
only current language which advocates it in its culture.

The "this" of which I'm speaking is the fact that Lisp is an
excellent language for writing languages. Many of the more
successful large projects in Common Lisp are written by inventing
a language which best describes an application-specific domain, and
then writing the language in CL. An example of this is a CAD system,
with such constructions as "defpart". Other languages can be invented
and written using CL macros, classes, and straight functionality, and
they can tehn be easily maintained due to the extreme flexibility in
late-binding and redefinition.

Note that any language can easily be written in Common Lisp, including
Common Lisp. This also includes Scheme. So to the extent that
ND made good use of CL to write their Goal language, I'd say that CL
was successful in doing what it does best.

--
Duane Rettig du...@franz.com Franz Inc. http://www.franz.com/
555 12th St., Suite 1450 http://www.555citycenter.com/
Oakland, Ca. 94607 Phone: (510) 452-2000; Fax: (510) 452-0182

0 new messages