4 ms·
This comes up on HN periodically. Here are few points to keep in mind: - In 1994, when Andy started on GOOL, the tools around C/C++ were far more limited. Basi
by dmbaggett 8y ago
This comes up on HN periodically. Here are few points to keep in mind:
- In 1994, when Andy started on GOOL, the tools around C/C++ were far more limited. Basically all we had was GCC; there wasn't even a decent debugger in the beginning if I recall correctly. So it was less crazy to make a whole DSL for game control code then than it may seem now.
- There was no GC; the PS1 only had 2MB of RAM so we had to be incredibly careful and precise with memory management. It was also slow (33Mhz) so GC pauses were obviously not going to be OK.
- At least in Crash Bandicoot (I didn't work on Jak), lisp was not used for the rendering engine, the collision detection, or the camera control code -- that was all written in C (or MIPS assembly). Lisp was used for character control logic and various non performance intensive tasks, like the load/save interface.
- It really wasn't that hard to "make a whole new language" in our case because Andy used Allegro as the basis for the compiler -- and of course with lisp, code is data. :)
It was a labor saving device and a boon to rapid prototyping of character behaviors to have a simple very high-level language for this. This advantage was ultimately offset over time as the platforms got faster and gained more RAM. But at the time, there was no Python, Lua, etc. -- and even if there were, they'd be too RAM-intensive to use. (Maybe embedded variants of these languages would have worked, though.)
- girvo 8y agoThis is why I love HN! Thank you for building amazing games that made my childhood better