I spent a whole evening last week playing with Hy Lisp (written in Python). It was fairly easy to write to the Keira’s APIs. Can anyone share any interesting HyLang uses/ applications?
(^ this last one is very practical. If you reach the point of wanting to implement a practical interpreter, this paper will force you to consider many unexpected cases.)
+1 for the link about Andy Gavin's work on Crash Bandicoot and Jak and Daxter. This past winter I dusted off my PS2 and started playing Jak and Daxter again, the first time in about 15 years. I noticed something I had never noticed before: even though it is one of the first games released on the PS2, the game loads almost instantaneously when you hit the "New" or "Load" buttons.
I had to know why, and came across that exact link you referenced. AG had figured out how to do a lot of preprocessing while the game boots up, obviating the need for a lengthy "Loading..." screen. Naughty Dog wrote some very impressive software, that is for sure!
Yes! I've been fascinated with GOAL / GOOL for nearly a decade. I ripped a copy of Last of Us and tore through the game data looking for the lisp code, but unfortunately they only ship the compiled output.
What I wouldn't give to see the source... And Viaweb's source, and HN's source, and gosh there are so many amazing Lisp systems out there.
Edit2: Whoops, fixed the link. I meant to link to this lisp codebase, not SICP. :)
Suffice to say, Abuse is amazing. Thanks! This is an absolute gem of a reference for seeing what worked in practice for Lisp-based gamedev. And in 1995 too!
At least with HN, there's an old mirror. https://github.com/wting/hackernews There's quite a bit of old code floating around out there (even for Zork iirc), of course there's newer code being written all the time (as you know :)).
Besides code I'd also wish for accompanying code reviews and deep dives, like Fabien does for game engines, though for smaller things the code is usually just fine to just dive in and explore.
https://gist.github.com/lispm/d752d5761f7078de4041d4e453e70c...
Tasks to explore:
Check that it is actually equally to the published code.
Check that it can interpret itself.
Understand the language it implements and the consequences of no error checking...