From: Rainer Joswig
Subject: Crash Bandicoot and Lisp
Date: 
Message-ID: <joswig-1811990015380001@194.163.195.67>
Hey,

you guys might want to read about the use of Lisp
in the Sony Playstation game "Crash Bandicoot":

-------------
http://www.gamasutra.com/features/19991112/GavinWhite_03.htm

  Technical risk: How do you program, coordinate, and
  maintain the code for several hundred different game
  objects? 

Object control code, which the gaming world
euphemistically calls AI, typically runs only a couple
of times per frame. For this kind of code, speed of
implementation, flexibility, and ease of later
modification are the most important requirements. This
is because games are all about gameplay, and good
gameplay only comes from constant experimentation with
and extensive reworking of the code that controls the
game's objects. The constructs and abstractions of
standard programming languages are not well suited to
object authoring, particularly when it comes to flow
of control and state. 

For Crash Bandicoot we implemented GOOL (Game Oriented
Object LISP), a compiled language designed
specifically for object control code that addresses
the limitations of traditional languages. 

Having a custom language whose primitives and
constructs both lend themselves to the general task
(object programming), and are customizable to the
specific task (a particular object) makes it much
easier to write clean descriptive code very quickly.
GOOL makes it possible to prototype a new creature or
object in as little as 10 minutes. New things can be
tried and quickly elaborated or discarded. If the
object doesn't work out it can be pulled from the game
in seconds without leaving any hard to find and
wasteful traces behind in the source. In addition,
since GOOL is a compiled language produced by an
advanced register coloring compiler with reductions,
flow analysis, and simple continuations, it is at
least as efficient as C, more so in many cases because
of its more specific knowledge of the task at hand.
The use of a custom compiler allowed us to escape many
of the classic problems of C. 

-------------

Sounds like everything is possible. You
just have to do it.

Rainer Joswig

Rainer Joswig, ISION Internet AG, Harburger Schlossstra�e 1, 
21079 Hamburg, Germany, Tel: +49 40 77175 226
Email: ·············@ision.de , WWW: http://www.ision.de/
From: Bob Ingria
Subject: Re: Crash Bandicoot and Lisp
Date: 
Message-ID: <2750ac20.e17432e0@usw-ex0101-007.remarq.com>
In article <·······················@194.163.195.67>,
······@lavielle.com (Rainer Joswig) wrote:
> Hey,
> you guys might want to read about the use of Lisp
> in the Sony Playstation game "Crash Bandicoot":
> -------------
..
> For Crash Bandicoot we implemented GOOL (Game Oriented
> Object LISP), a compiled language designed
> specifically for object control code that addresses
> the limitations of traditional languages.

Interesting.  I wonder if the 'Object LISP' part of the name is there
just because it implements 'object control code', or if it actually
shares some heritage with ObjectLISP.  This was one of the OO
extensions to Common LISP that was floating around before CLOS.  I
recently dug up some of the documentation for it and was startled to
discover that ObjectLISP was prototype-based.  I could easily see this
aspect of the language making it very easy to play with and discard a
new kind of object easily and painlessly, as described in the article. 
Or, it could just be a coincidence.

-30-
Bob Ingria
As always, at a slight angle to the universe.


* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!