RacketCon 2013: Dan Liebgold - Racket on the Playstation 3? It's Not What you Think!
Why Hacker News recommends it
HN cites it whenever Lisp in games, Naughty Dog or Racket in production comes up, as the main first-hand account.
What it is
Dan Liebgold of Naughty Dog gives a RacketCon 2013 keynote on using Racket in PlayStation 3 game development. He explains the Racket-based DSLs used for game data and scripting, which replaced the studio's earlier GOAL-based toolchain.
Recommended by 3 HN commenters across 3 different months, 2014 to 2022.
What Hacker News said
Recommends kevingadd · 2014-04 · on “Racket on the Playstation 3? It's Not What you Think [video]”
The speaker actually begins talking about racket and how they use it at about 6 minutes into the video. Here's a link: [this video] Interesting to hear how they replaced GOAL in their toolchain. The people I've met who used GOAL in the past talked at length about how much they miss it.
Recommends steinuil · 2019-01 · on “Halo was written with a Lisp dialect called blamscript (2014)”
Other than the games they wrote entirely in GOAL, all of their PS3+ games use a series of lispy DSLs implemented in Racket that get compiled to C and C++ for defining data to be loaded in the game and dependencies between these data, light scripting, dialogues, stuff like that. There's a talk by one of the engine devs at RacketCon from a few years ago on youtube about how they use these DSLs and how they came to be: [this video]
Recommends neilv · 2022-01 · on “OpenGOAL: Port of Jak and Daxter, written in GOAL, a custom Lisp by Naughty Dog”
Related talk by Dan Liebgold from Naughty Dog, at RacketCon 2013: [this video] Starting at around 10m into the talk, Liebgold says their DC language for TLOU (to get what they most needed from a DSL even if using C++ instead of GOAL) was implemented in Racket. For anyone not familiar with TLOU, it was a critically-acclaimed game, and my personal all-time favorite game for storytelling that somehow grabbed me. (I dislike all zombie franchises, but at a key point towards the end of the nonlinear narrative and playing in the game, I was surprised how much I really wanted to protect the kid. Which I'll partly attribute to a Lispy DSL that helped them execute immersive storytelling in a zombie stealth
Cites soegaard · 2015-02 · on “How to Program Racket”
Dan Liebgold (Naughty Dog) at RacketCon 2013. "Racket on the Playstation 3? It's Not What you Think!" [this video]
Cites 59nadir · 2015-03 · on “John Carmack: “I just dumped the C++ server I wrote for a new one in Racket””
While I understand your frustration with 'too many languages', Racket is older than quite a few (started in '95). I also think the danger of having this attitude is that if we all thought like this nothing would become better. If no one wanted to get out of C++ we wouldn't have had many languages. The premise behind Racket, in broad strokes, is to provide a platform and programming language for making new programming languages. The most important identifier/keyword in Racket is '#lang' (specified at the top of a file to tell Racket which language the file is in). It's a whole ecosystem in which a multitude of languages exist and the only thing they really need to have in common is that on so
Cites fa · 2015-03 · on “Why Racket? Why Lisp? (2014)”
I'm working through the admittedly beautiful and very thorough documentation [1]. It's a very simple idea, really: you write your document and sprinkle racket s-expressions wherever you want. You can put your definitions at the top of your document, or in another file. You describe your templates in Racket also, because like Butterick says in his RacketCon video [2], "S-expressions and XML are the same thing". You can use tags that you haven't defined, they just get placed in the resulting HTML. You still have to roll your own CSS and any JavaScript. As far as I can tell it doesn't help you out with things like keeping track of footnotes numbering or citations and such: you roll your own for
Cites stchang · 2015-07 · on “John Carmack working on Scheme as a VR scripting language”
They switched to Racket when moving to the PS3. Here's a talk discussing the use of Racket in developing The Last of Us: [this video]
Cites samth · 2016-02 · on “The Lisp Curse (2011)”
That's not quite right. These days Naughty Dog uses a DSL called DC built in Racket to write all the "data" in the game (everything from cut scenes to character attributes). Running DC produces data files shipped on the DVD of the game, and used by the big C++ engine that's running on the PlayStation. Dan Leibgold gave a talk about their system at RacketCon a few years ago: [this video]