Comment by OneDeuxTriSeiGo

Comment by OneDeuxTriSeiGo 2 days ago

3 replies

Lol yep. Emacs as the IDE, Allegro Common Lisp as the interpreter + HAL implementation, and GOAL itself being a Scheme-like.

Naughty Dog in general was actually a primarily Lisp studio for a long time. It was only in the PS3 era with Uncharted and The Last of Us that they switched to C++ because trying to maximise the performance out of a Lisp interpreter environment with the complexity the Cell Processors added on a time and cash budget simply wasn't feasible for them.

The Crash Bandicoot games were written in GOOL (Game Oriented Object Lisp) which they wrote prior to GOAL and the Jak and Daxter games. GOOL/Lisp of course was extremely important for the Crash Bandicoot legacy because by writing their own higher level interpreter they were given an excuse to through away the entire standard library that Sony gave them and start from scratch. That process allowed them to write a massively more performant stdlib and execution environment leading to Crash Bandicoot being able to support game environments an order of magnitude more complex than other games at the time could. And of course this allowed them to build in a system for lazy loading the environment as the player progressed through the levels which firmly cemented Naughty Dog in the video games history books.

Andy Gavin actually has an incredible blog site (including a 13 part series on Crash Bandicoot and a 5 part series on Jak and Daxter) that has over the decades documented the history of their studio's game development process and all the crazy things they did to make their games work on hardware where it really shouldn't have been able to with the tools they were provided.

https://all-things-andy-gavin.com/video-games-archive/

OneDeuxTriSeiGo 2 days ago

Oh I should issue a minor correction. After talking with some people more familiar with it than me, Crash had a lot written in GOOL but it's not 100% GOOL like how Jak is 100% GOAL.

Instead it's mostly enemy AI and the like which are built in GOOL and the game itself is instead a more traditional systems language (I believe C++). So instead of 100% it's more like 40/60 which tbh is still quite good.

tetris11 2 days ago

Those blog posts are amazing. I never realised CB was Sony's unofficial flagship mascot to pit against Nintendo's Mario

  • OneDeuxTriSeiGo 2 days ago

    Yeah I absolutely loved reading through them when I discovered them the first time. An absolute treat and a portal in time.