6 ms·
I recommend watching this: https://youtu.be/izxXGuVL21o https://youtu.be/izxXGuVL21o Naughty Dog Co-founder Andy Gavin discusses various hacks that were used o
by georgewsinger 5y ago
I recommend watching this: https://youtu.be/izxXGuVL21o https://youtu.be/izxXGuVL21o
Naughty Dog Co-founder Andy Gavin discusses various hacks that were used on the Playstation to get Crash Bandicoot to run smoothly. The fuller version is also worth watching.
- Waterluvian 5y agoThis one is my favourite. I would call this kind of programming both art and beauty.
- sushsjsuauahab 5y agoIf I remember correctly the two main hacks were making draw lists such that only certain polygon faces were rendered based on Crash's xyz position (the theory being that it isnt possible for other faces to be seen from that location), and also that he removed functions/files from Sony's standard C libs on the PS1 SDK?
- Waterluvian 5y agoI believe two other huge wins were how they padded the disc for faster reads(though maybe this was common) and how they could trivially cull polys based on the constraint that the game is on a rail. By knowing your position on the rail you just lookups what polys can be culled via precalculated tables.
- sushsjsuauahab 5y agoRight, for the polys I think we are talking about the same thing :) For the disk, I guess they viewed the disk as merely just an extension of RAM? If the read/write speeds were sufficient for them... page files galore :) I also remember that they used to write bytes to disk in specific orders so that they would maximize the correct bytes being read into the buffer every microsecond
- sgtnoodle 5y agoThey realized that untextured polygons were way faster to draw than textured ones, so rather than texture the Crash model, they cranked up the polygon count and simply colored them. Often times, the triangles were on the same order of size as the pixels. It also avoided the playstation's lack of perspective correction on textures. It both made the character look gorgeous for the day, and made the code run faster.
- sushsjsuauahab 5y agoYes, I played many many hours of crash as a kid and he looked extremely vivid and bright. When I code in Three.js these days I also skip loading textures and just go for hex colors on polygons :)
- omegaham 5y agoFor those who like text, his series of blog entries is also extremely good. https://all-things-andy-gavin.com/video-games/making-crash/ https://all-things-andy-gavin.com/video-games/making-crash/
- shapefrog 5y agoThe art of working with constraints does not seem to be lost; just look at late cycle console games. A PS4 was/is effectively unchanged hardware between Nov 2013 and today, yet the late lifecycle games look great. Upon release of the hardware devs had plenty of performance to play with, then 5 years in they have honed their craft and are able to use all the tricks at their disposal to squeeze as much graphical and performance life out of a limited resource budget.