Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Mario 64 wasn't itself written in LISP at all. It's models were built in Nichimen graphics, a SGI based 3D design tool written in Allegro CL.

As far as I know, the games we did at Naughty Dog (Crash 1-3, Jak 1-3 + X), and later Uncharted were the only major console games which large amounts of runtime Lisp. The Jak & Daxter series was 99% written in my Scheme dialect GOAL, including all the assembly. The only parts that weren't were libs talking to Sony's libraries (C++).

http://all-things-andy-gavin.com/category/games/



I loved the "Making Crash Bandicoot" series on your site. It's well worth the read:

http://all-things-andy-gavin.com/2011/02/02/making-crash-ban...


Much respect!

Reading about GOOL and GOAL is what got me into Lisp.

Working at a previous game company, on a PS2 title, we spent a lot of time oohing and aahing over J&D's beautifully fluid animations.

I'm actually still playing through the game as part of my "PS2 classics" backlog. Very nicely done!

I didn't realize Uncharted used any runtime Lisp -- could you elaborate?

/gush


Uncharted uses a DSL for gameplay scripting. The compiler is implemented in Racket. You can see what it looks like in Jason Gregory's 2009 presentation: http://www.gameenginebook.com/gdc09-statescripting-uncharted...

The compiler is written on top of the low-level system in Dan Liebgold's 2008 presentation: http://www.naughtydog.com/docs/Naughty-Dog-GDC08-Adventures-...

More or less, the sexps that define a state-script get run through a maze of Scheme macros - there's even a pretty decent expression language in there which is compiled to bytecode - and the result is big honking C++ structure which is fed to the Uncharted runtime and interpreted.

In particular, note all those wait-blah-blah calls; those are using call/cc to implement coroutines. Which is something you really really want in a game but which C++ of course doesn't have. (GOAL had native coroutines.)

It's also nice to be able to iterate on the language syntax without having to fool with BNF grammars and so on.


I would guess that the 'worlds' in Super Mario 64 were also done with the software. There are somehow similar 3d worlds in a movie (Jetsons) done with the Symbolics S-Graphics software.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: