Live data from Hacker News

Super Mario 64 was built with a system written in Lisp

franz.com

31–40 of 51 posts

Re: Super Mario 64 was built with a system written in Lisp

#31

Doom was built with a system written in Objective-C. Clairvoyant, those 90s game developers were.

Can you describe it? I thought the code was all C? Or were the tools written in Objective-C? Either way, that's very interesting (big Objective-C fan, here).

John Romero wrote up a pretty cool post about the use of NeXTSTEP and Objective-C at id Software during the 90s.

http://rome.ro/2006/12/apple-next-merger-birthday.html

Re: Super Mario 64 was built with a system written in Lisp

#33
It's a little disingenuous for Franz to claim any credit for Nichimen. Nichimen N-Graphics was the spinoff of the Symbolics S-Graphics system, written in ZetaLisp. Symbolics ceased new development and there were customers for the graphics system, so it needed to be ported to a Lisp environment that would run on available hardware.

Franz Allegro CL is a further development of Maclisp, developed during Project MAC at MIT. ZetaLisp was also a direct development of Maclisp. I'm guessing this shared ancestry helped in the software porting and made Franz the natural choice for the N-Graphics. But the press release just blows a lot of smoke about the speed and scalability of Franz.

Re: Super Mario 64 was built with a system written in Lisp

#34
post #17

In 1983, Rescue on Fractalus and Ballblazer, the first releases from Lucasfilm Games, were built with a system written in Lisp. It was a 6502 assembler with Lisp syntax and a Lisp-style macro facility, written in Portable Standard Lisp, running in Berkeley Unix on a 4MB VAX 11/750. Unfortunately it was eventually abandoned because the developer had left and it was a bit of a strain on the VAX that was shared by the w…

Fond memories of Ballblazer. An amazing creation for a ~2 MHz 8 bit cpu.

> An amazing creation for a ~2 MHz 8 bit cpu.

I ran it on an Apple II. It had a 1 MHz 6502. And yet, it felt more responsive than my first IBM PC... Odd times.

Re: Super Mario 64 was built with a system written in Lisp

#35

In 1983, Rescue on Fractalus and Ballblazer, the first releases from Lucasfilm Games, were built with a system written in Lisp. It was a 6502 assembler with Lisp syntax and a Lisp-style macro facility, written in Portable Standard Lisp, running in Berkeley Unix on a 4MB VAX 11/750. Unfortunately it was eventually abandoned because the developer had left and it was a bit of a strain on the VAX that was shared by the w…

> It was a 6502 assembler with Lisp syntax and a Lisp-style macro facility

And I had to use Merlin... Sadly, I couldn't afford a VAX :-(

Re: Super Mario 64 was built with a system written in Lisp

#36
post #8

Thanks for sharing this link. I'm giving a talk on Lisp and computer games at my university in less that two weeks from today. It's great to have more examples to share. BTW. Abuse is a half-C, half-Lisp game.

Good timing. You can also use the results of the Lisp Game Jam that starts today. http://lispgames.org/

> NEW: Lisp Games Development Screencast 1

Oh please, use something like blip.tv, as it handles podcasts properly. This way I can watch it on my TV and hack from the couch. I need to get away from my desk to get the creative juices flowing.

Re: Super Mario 64 was built with a system written in Lisp

#37
post #33

It's a little disingenuous for Franz to claim any credit for Nichimen. Nichimen N-Graphics was the spinoff of the Symbolics S-Graphics system, written in ZetaLisp. Symbolics ceased new development and there were customers for the graphics system, so it needed to be ported to a Lisp environment that would run on available hardware. Franz Allegro CL is a further development of Maclisp, developed during Project MAC at M…

Why that? Symbolics S-Graphics was a graphics suite exclusively for the Symbolics Lisp Machines. N-World was a very different port of that to Allegro CL on SGI machines. That Allegro Cl was chosen and that this relatively complex piece on software ran on their Lisp is something they had any right to be proud of.

Re: Super Mario 64 was built with a system written in Lisp

#38
post #23

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 t…

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.

Re: Super Mario 64 was built with a system written in Lisp

#39
post #23

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 t…

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.

Re: Super Mario 64 was built with a system written in Lisp

#40

Doom was built with a system written in Objective-C. Clairvoyant, those 90s game developers were.

my memory is blurry on the topic, so don't quote me on any of the following...

if i recall correctly, directtv boxes are all essentially just web servers and even expose some methods via http. i believe i heard that their hud/gui/etc is all written in javascript and html. incidentally, they also did this a decade ago (or so) when javascript was still quite young.

Post reply on HN