(^ 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.
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?
19 comments
[ 4.0 ms ] story [ 50.5 ms ] threadOn Lisp: https://www.lurklurk.org/onlisp/onlisp.pdf
Lumen - a Lisp for JavaScript and Lua: https://github.com/sctb/lumen
The Art of the Interpeter: https://dspace.mit.edu/bitstream/handle/1721.1/6094/AIM-453....
(^ 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.)
Simulating circuits with Lisp: https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
My favorite part of SICP: https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
War stories: http://paulgraham.com/avg.html
Lisp in Jak 'n Dexter / Crash Bandicoot: https://all-things-andy-gavin.com/2011/03/12/making-crash-ba...
Fun fact: Lisp is still used today in gamedev! Last of Us uses it heavily: https://www.youtube.com/watch?v=Ox2H3kUQByo&t=2415s
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!
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.
arc.news https://github.com/nex3/arc/blob/master/lib/how-to-run-news
& early version of reddit:
https://github.com/reddit/reddit/wiki
http://abuse.zoy.org/
https://archive.org/details/abuse_sourcecode
my
you just made my week, month, and year. I've been looking for a practical Lisp-based game design since I was a teen! Dude.
Thank you.
EDIT: THIS IS SO COOL http://abuse.zoy.org/browser/abuse/trunk/data/lisp/guns.lsp
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!
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.
Thanks for the inspirational links!
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...
https://github.com/marcpaq/arpilisp
- C: https://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-imple...
- Python: https://github.com/mario-goulart/not-the-whole-truth
- Javascript: https://kybernetikos.github.io/Javathcript/
- Swift: https://www.uraimo.com/2017/02/05/building-a-lisp-from-scrat...
in C: ECL compiles Common Lisp down to C or allows it to be embedded in a C program
Python: "Hy" allows to write Python with lisp syntax
Javascript: Parenscript compiles a Common Lisp subset to javascript. Clojurescript compiles a Clojure subset to javascript.