HackerTube

RacketCon 2013: Dan Liebgold - Racket on the Playstation 3? It's Not What you Think!

Racket3 HN recommenders · recommended in 3 months, 2014–2022
YouTube
talk · intermediate · evergreen · 2014–2022 on HN

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.

HN cites it whenever Lisp in games, Naughty Dog or Racket in production comes up, as the main first-hand account.

12 comments from Hacker News

@neilv2022-01 · in “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 shooter.) link This is one of the Racket success stories. They seem to happen because someone already knows they want a Lisp, they end up picking Racket without needing anyone else's permission, and the people using it are capable of designing and building whatever missing pieces they need.

Recommends View on HN
@steinuil2019-01 · in “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 View on HN
@kevingadd2014-04 · in “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 View on HN
@franknine2020-12 · in “GameLisp: Scripting language for Rust game development”

Found an old postmortem on Jak and Daxter from 2002 talking about pros and cons of using GOAL: link And Andy Gavin talked briefly about GOOL on Ars Technica Crash Bandicoot interview: link It seems Naughty Dog later decided not to maintain their own Lisp and moved to Racket: ▶ this video I am really curious about how they use Lisp nowadays.

@neilv2019-09 · in “Technical Breakdown of a new NES game written in Lisp”

Neat, I didn't know Naughty Dog also used Allegro CL, in addition to Racket: * "RacketCon 2013: Dan Liebgold - Racket on the Playstation 3? It's Not What you Think!" ▶ this video * "Functional mzScheme DSLs in Game Development" (MzScheme was the name of the main PLT Scheme interpreter that was renamed Racket) link