Andy Gavin

all-things-andy-gavin.com · Personal blog · on HN since 2011

Andy Gavin, co-creator of Crash Bandicoot at Naughty Dog, writes about how the game was made, including its Lisp-based GOOL language.

What HN saysCommenters call his Making Crash Bandicoot series a perennial classic and a favorite developer diary, citing the GOOL part and PlayStation techniques like level streaming.
97HN people shared it
82linked it in comments
79stories submitted
1.1Kstory points
4 months agolast shared
2011people per year2026

Most-shared posts

  1. 1
    Making Crash Bandicoot
    40 people · 75 points · first shared 2011 · 2 comments on HN
  2. 2
    Making of Crash Bandicoot - GOOL
    25 people · 103 points · first shared 2011 · 10 comments on HN
  3. 3
    Making Crash Bandicoot (2011)
    15 people · 251 points · first shared 2015 · 40 comments on HN
  4. 4
    Making crash bandicoot part 3
    7 people · first shared 2011
  5. 5
    Making crash bandicoot part 5
    4 people · first shared 2011
  6. 6
    Lispings ala John McCarthy
    3 people · 28 points · first shared 2011 · 9 comments on HN
  7. 7
  8. 8
    Crash Bandicoot - More Development Secrets
    2 people · 7 points · first shared 2011 · discussion on HN
  9. 9
    Making the Solution Fit the Problem
    2 people · 4 points · first shared 2025 · discussion on HN
  10. 10
    So you want to be a video game programmer? - Reasons Why
    2 people · 4 points · first shared 2011 · 1 comments on HN
  11. 11
    Crash Bandicoot as a Startup
    2 people · 2 points · first shared 2011 · 1 comments on HN
  12. 12
    Making crash bandicoot part 2
    2 people · first shared 2011
  13. 13
    Video games archive
    2 people · first shared 2011
  14. 14
    Making crash bandicoot part 6
    2 people · first shared 2011
  15. 15
    Game of Thrones CGI
    1 people · 210 points · first shared 2011 · 67 comments on HN

What HN people wrote when they linked it

rahen · 2025-11-25
Part 9 elaborates on GOOL, the Lisp dialect they designed in-house to create the gameplay. This is my favorite part: https://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-go…
xmprt · 2025-04-11
Naughty Dog has always been at the forefront of PlayStation development. Crash Bandicoot and Uncharted couldn't have been made if they didn't have a really strong grasp on how to use it. I love rereading this developer "diary" where they talk about some of the challenges with making Crash: https://all-things-andy-gavin.com/video-games/making-crash/
knome · 2024-06-12
Not to mention actively streaming levels from the disk while you were playing them. The whole thing is a great story. https://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-pa…
Nition · 2024-06-12
Weirdly the excellent devblog that I got all this info from[1] mentions crazy compression algorithms for the vertex animation and for the level files, but not specifically for the occlusion data. [1] https://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-pa… Especially part 3.
oakesm9 · 2021-12-20
See also this brilliant series written by Andy Gavin which goes into a lot more detail https://all-things-andy-gavin.com/video-games/making-crash/
ArtWomb · 2021-10-03
>>> using the already created awesome universe of DK from the super NES Speedrunning those classic SNES titles: DK3, Contra IV, Super Metroid, Castlevania IV, FFIV. Still fun in 2021 ;) PS1 Crash Bandicoot "making of" really gets into detail the transition to 3D in the 90s: https://all-things-andy-gavin.com/video-games/making-crash/
hbn · 2021-09-03
If you want a great and long read, Andy Gavin has a pretty extensive series about Crash Bandicoot on his blog, some entries more technical than others. I've never even played the games for more than a few minutes, but I had a great time reading through these https://all-things-andy-gavin.com/video-games/making-crash/
coldpie · 2021-06-23
Thanks for your great comment. > This meant that you either had to do heroic pre-computation (sort polygons ahead of time) Much more detail on this is available in this amazing series of blog posts: https://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-pa…
stordoff · 2020-02-29
The article mentioned in other comments (https://all-things-andy-gavin.com/2011/02/04/making-crash-bandicoot-pa… seems to go into it: > First and foremost, they didn't follow PlayStation's library restrictions. Other developers often complained that Crash was using some sort of secret Sony library. That is the exact opposite of the truth. The truth is that Crash used as little as it could of Sony's library and the programmers basically hacked everything right to the hardware.[...] > Hitting the hardware directly was against the rules. But by the time Sony saw the results they needed a Mario killer. It was too late for them to complain.
pritovido · 2020-02-28
The most interesting thing for me was the use of Lisp they did: https://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-go… To read this was a very important resource for my own education. I was shown the power of Lisp by a man that looked wired to emacs and so fast typing I could not follow him on the screen that solved problems orders of magnitude faster than me using this "wizard language" I could not understand. It was mind blowing but at the same time very confusing, so I started searching material over Lisp that I could digest one step at a time and(combined with books I bought) that was very useful because it talked about real problems, not super simple simplifications like books did.
djmips · 2019-09-13
Going back a few more years as many of you know, Naughty Dog used a LISP like called GOOL on Crash Bandicoot on PS1. https://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-go… And later a follow up language GOAL for PS2 https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
scoggs · 2019-03-19
That entire Development Story is such a massive gem. Everyone interested in programming, game programming, and video game creation in general should fully dig into it: Making Crash Bandicoot ---------- As one of the co-creators of Crash Bandicoot, I have been (slowly) writing a long series of posts on the making of everyone’s favorite orange marsupial. You can find them all below, so enjoy. https://all-things-andy-gavin.com/video-games/making-crash/
codetrotter · 2019-02-07
And while we're on the subject of people making their own languages to make games, see also Andy Gavin. He made Game Oriented Object Lisp (GOOL) for himself and the other people at Naughty Dog to use when making Crash Bandicoot for the original PlayStation. He later made another language, Game Oriented Assembly Lisp (GOAL), for the Naughty Dog game Jak and Daxter: The Precursor Legacy for the PS2. https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp He has written a series of articles about the making of Crash Bandicoot on his website. Well worth a read! https://all-things-andy-gavin.com/video-games/making-crash/
justbaker · 2019-01-14
Article on GOAL/creating Crash Bandicoot by creator, Andy Gavin: https://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-pa… Certainly my favorite Lisp game.
stavrus · 2018-07-02
One of the level designers for WoW has apparently written a book on the game's original development. The Kickstarter [1] for it failed due to an unrealistic funding goal, but if you're looking for something along those lines it might be something you'd be interested in keeping track of as he's planning on re-launching a funding campaign with a smaller budget. Not a book, but the blog posts on making the original Crash Bandicoot [2] make for a great read, especially due to some of the issues they ran into in trying to squeeze out every last bit of performance from the original Playstation. [3] [1]: https://www.kickstarter.com/projects/476291819/the-world-of-warcraft-d… [2]: https://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-pa… [3]: https://www.quora.com/Whats-the-hardest-bug-youve-debugged
ali_af · 2017-06-22
Andy Gavin wrote a series on the creation of Crash Bandicoot [1]. It covers some of the intricate details and compromises of developing for the Playstation. It's one of my favorite pieces of writing, definitely recommend it to anyone who likes development articles. [1] http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-par…
vanderZwan · 2017-03-04
Time to post this series on the development of CB again. I'm sure the LISP fans here will love it, even if most of them will have already read it: http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-par…
icebraining · 2016-09-22
According to this great series on the making of Crash Bandicoot¹, Spyro used walls to reduce the number of polygons visible concurrently. ¹ http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-par…
joshstrange · 2016-09-06
I can't remember for sure but if you haven't already you need to read this blog series on the making of Crash Bandicoot http://all-things-andy-gavin.com/video-games/making-crash/ It's one of my favourite reads.
mijoharas · 2015-07-01
Andy Gavin has a great series of articles on the making of crash bandicoot[0], [1]. (I'd recommend reading the entire series as it's very interesting). It seems that in order to create an immersive world on the original playstation and keep up the speed of development, iteration and dynamism required for a game he wrote his own compiler (into assembly for the playstation one) for a lisp that he created called Game Oriented Object Lisp (GOOL)[1]. [0] http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-par… [1] http://all-things-andy-gavin.com/video-games/making-crash/ [2] http://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-goo…
shabble · 2011-12-19
There was a bit I'm reminded of in the write-up on the Crash Bandicoot series,[1] where they mention 'Dynamic Difficulty Adjustment.[2] Essentially, fail enough times at a given point, and it gets a little bit easier (sloppier timings, more power-ups nearby, etc) until you get past it. "Good player, bad player, everyone loved Crash games. They never realized it is because they were all playing a slightly different game, balanced for their specific needs." Reminds me a lot of what I'm sure was a Mariokart64 behaviour - that the powerups you received were directly proportional to your race position, giving everyone behind you much better options to ruin your day. [1] http://all-things-andy-gavin.com/video-games-archive/ [2] http://all-things-andy-gavin.com/2011/02/07/making-crash-bandicoot-par…
eXpl0it3r · 2011-09-06
Maybe I don't know enough about that 'Tech Talks' blog, but normally you link ripped of texts to the source, or when you've the permission, or is written by the author you write a little introduction. It's a 1:1 copy from the following blog: http://all-things-andy-gavin.com/2011/08/29/video-game-programmer-why/
dgallagher · 2011-04-22
I loved the "Making Crash Bandicoot" series on your site. It's well worth the read: http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-par…
sillysaurus3 · 2018-07-13
To see how quickly HN changed in the old days, skim the feature requests thread: https://news.ycombinator.com/item?id=363 Some feature requests were a matter of days, like user profiles: https://news.ycombinator.com/item?id=481 A brief essay on some HN design decisions: https://pastebin.com/bSW5dfRQ (from https://news.ycombinator.com/item?id=8424502) I think the arc codebase is worth studying and understanding, primarily so that you can extend its simplicity into your own projects. The reason HN was such a success is because it handles so many cases in the same way: Stories, comments, and polls are all the same thing: items. If you want to add a new thing, you just create a new item and add whatever fields you want. These rapid prototyping techniques have downsides, but the cure is to keep in mind what you can't do. (For example, you can't rename item keys without breaking existing items, so be sure to choose good names.) Like emacs, HN's design is borne out of simplicity and generality. It's what you get when you write the next most important feature as quickly as possible, then cut as much code as possible, every day. Both halves are equally important. It's fine to say that our modern applications are so much more complicated that the old lessons don't apply. And in extreme cases, that may be true. I don't think SpaceX has the luxury of rapid prototyping their software. But the typical app is CRUD. For those, data processing flexibility is perhaps the most important…
shawn · 2017-09-06
The future is long. Computers will be around for thousands of years. They've only been useful for the last ~60 years. A programming language needs at least two things to succeed: a niche, and corporate backing. Almost every successful language has had both. Lisp's benefit is that it is discoverable. Programmers hundreds of years from now will continue to stumble across the roots of lisp: http://www.paulgraham.com/rootsoflisp.html http://ep.yimg.com/ty/cdn/paulgraham/jmc.lisp The axioms are too simple not to discover by accident. What are some promising niches for Lisp? I think gamedev is a likely candidate. The whole gamedev industry still uses C++ / C#. But Lisp can be just as fast -- you can even make a statically-typed Lisp, which avoids any possibility that Lisp's performance will bite you. The benefits for gamedev in particular are immense: http://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-goo… The reason this hasn't happened is because it takes a certain personality type to write languages. In 99% of cases, your language will fail. Meaning, if you spend 3 years on it, that's 3 years you didn't spend learning React or Vue or %salary-du-jour. You have to love it. That love is quite the feeling. When you design your own language from the ground up, and break down all barriers of complexity, it stops mattering whether anyone else ever uses your language. Making it was reward enough. In concrete terms, I think self-hosted Lisps are a…
agavin · 2011-12-23
There is such a difference in coding output. Having had perhaps 50 work for me over the years (and being one myself), the top guys do perhaps 10x the output of the merely "very good" guys. And near infinite with the mediocre ones who on tough projects actually suck more time than they contribute. The good guys also come in and contribute right off the bat. Like Christophe Balestra, who now is co-president of Naughty Dog. When he arrived on Jak 2 he was pounding out real working stuff the first or second day. By the end of the game (one year later) it was clear he was so kick ass that we promoted him across like 15 others guys to be co-lead with me on Jak 3. And he continues to kick ass to this day. I just site him, but I had the pleasure to work with around half a dozen other totally awesome guys too. Still, the "good" guys will take a system and do a great job with it over weeks. The great guys will knock it out in like 24-48 hours. Lots of articles on this kind of stuff at my site too: http://all-things-andy-gavin.com/video-games
endymi0n · 2011-09-11
Okay, so this is gonna be a bit longer, but bear with me, because I think reading this might help you. I've been exactly where you've been. AND I did almost all the things that people here suggest. Thought I had ADHD and took Ritalin. Thought I had a depression and took Prozac (both of which I definitely cannot recommend, as they screwed badly with my short term memory). I've tried gazillions of plugins, "hacks", to-do lists and the like, only to see that if you're smart (I assume you are because you're posting here), your subconcious is only smarter. If there's one universal truth I got out of these, it's: You can't shit yourself. I've personally read Getting Things Done, The Now Habit, Eat That Frog and consumed lots more of self-help from some of the distinguished authors there are, including Tony Robbins, David Allen, Steven Covey, Brian Tracy, Keith Ferrazzi, Leo Babauta etc. (just to name a few). I can honestly say that all of those books gave me something, some pushed me over the edge for a week, but then I slipped back into procrastination and self-pity. So here's the deal: For some of us, it's just much harder to stay focused on our goals and dreams. All that can and will change, but only with the right leverage, and your missing piece of the puzzle might be a different one that someone else needs. Anyway, I'll be listing the things from all those excellent books above that helped me most (repeating some of the excellent suggestions here), and finishing with my…
plinkplonk · 2011-03-12
From the article, "Programming languages are not immutable truths handed down from on high, but tools created by people to solve particular tasks." Or, as the foreword to "Essentials of Programming Languages begins, "This book brings you face to face with the most fundamental ideas in Computer Programming - the interpreter for a computer language is just another program" Insightful, but often forgotten, . Great post (and series). There are other thought provoking paragraphs in the other posts in the series. "my partner and friend Jason Rubin offers the following thoughts on this section: Andy and I always liked trying to find opportunities that others had missed. Fill holes in a sense. We had done Way of the Warrior in large part because the most popular games of the time were fighting games and the new 3DO system didn’t have a fighting game on it. Our decision to do a character action game on the PlayStation was not only based on bringing the most popular genre on consoles into the 3D, but also because Sega already had Sonic and Nintendo already had Mario. Instead of running headlong into either of these creative geniuses backyard, we decided to take our ball to a field with no competition. Filling a hole had worked to an extent with Way of the Warrior. The press immediately used Way as a yardstick to make a comparison point against other systems and their fighting games. This gave it a presence that the game itself might never have had. And as a result,…
1bpp · 2026-07-12
Here's the fun part about Crash running on a custom LISP: https://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-go…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close