How Crash Bandicoot Hacked Playstation


Naughty Dog's Andy Gavin talks about 90s memory management and 3D animations.

“The memory in Crash Bandicoot was so lacking that I had to steal small pieces of extra memory from Sony libraries. I just tried to remove those parts that, as it seemed to me, I did not use, and checked whether everything continues to work. If everything worked, then I marked them as free and made hacks of their code, changing the byte codes. I thought: I can do it, if Sony does not want to fix it myself, then I just change their code. It was free memory. [laughs] Memory was limited. But nobody absolutely allowed us to do this. ”

Hi, I'm Andy Gavin, co-founder of Naughty Dog Inc and lead programmer at Crash Bandicoot. We decided to create the first action platformer with a three-dimensional character, and to do everything right, we literally had to hack into equipment.

That was part of Naughty Dog’s philosophy of doing everything possible, using every CPU or GPU cycle, every byte of memory. If there was such an opportunity in the car, then we tried to figure out how to get the most out of it, regardless of whether it was useful to us or not, and whether we would use some crazy tricks. In the summer of 1994, my partner Jason Rubin and I completed a 3DO fighting game called Way of the Warrior and thought about which game we want to make next. The most popular genre on consoles at that time was action-platform games, such as Super Mario World and all sorts of other classics of 16-bit platform games. At the same time, new 3D equipment appeared on arcade machines and some genres began the transition from traditional 2D to 3D.


Games like Street Fighter II and Mortal Kombat were still at their peak, but Virtua Fighter had already appeared. It used 3D graphics, it was cool and it became obvious that the games would move this way. New consoles will work in 3D. Can I create a 3D platformer? Nobody has done this yet, but it was about to happen. Think about how Sonic flies through pipe loops in 3D. How will it look like? Until the fall of 1994, Naughty Dog consisted only of us, Jason and Andy, forming a real synergy. We both dealt with all the creative aspects, we were best friends, roommates, Jason was a phenomenal artist, and I was a game programmer, and I think it's pretty good. [laughs] Of the two of us, he tried to make the game look amazing, and I tried to make the technology work,and both of us strove to make the game truly fun. Jason and I sold the rights to Way of the Warrior to a new division of Universal Studios called Universal Interactive. In fact, they told us: come to California, stop at the Universal venue next to Steven Spielberg, we will give you a bungalow and everything you need for free. You can do whatever you want, you just need to show it to us. We took the dog, a dog named Naughty Dog Morgan, got into my Honda Accord and drove through the country, so we had a lot of time to talk. We discussed: what will the platformer look like in 3D?come to California, stop at the Universal venue next to Steven Spielberg, we will give you a bungalow and everything you need for free. You can do whatever you want, you just need to show it to us. We took the dog, a dog named Naughty Dog Morgan, got into my Honda Accord and drove through the country, so we had a lot of time to talk. We discussed: what will the platformer look like in 3D?come to California, stop at the Universal venue next to Steven Spielberg, we will give you a bungalow and everything you need for free. You can do whatever you want, you just need to show it to us. We took the dog, a dog named Naughty Dog Morgan, got into my Honda Accord and drove through the country, so we had a lot of time to talk. We discussed: what will the platformer look like in 3D?

We discussed something like Sonic the Hedgehog games. Imagine you are looping, running and jumping on platforms and collecting objects in 3D. The camera is always behind the player. You see the world, and everything looks great, but it’s like a game about Sonic’s ass. All you do is look at Sonic's ass. But the character is most expressive when we see it in front. Is it possible to make levels where the player moves to the camera? But how to see where he is running? In fact, such reflections gradually led us to the cobblestone levels from Crash Bandicoot. Should there be levels where the player moves sideways, should he look over his shoulder at the screen? We simultaneously designed the game, which will become Crash Bandicoot, and at the same time, as if choosing a platform for it.

We knew that since it will be a 3D game, we will need one of the new 32-bit platforms. So, there was 3DO, for which we already made one game, but this car was like a curve, half a 3D machine. In addition, it was very expensive and did not sell very well. There was also Atari Jaguar. We considered it a misunderstanding. And there were serious guys about to release new cars. We knew about some mysterious car from Nintendo, but could not find out what Nintendo was cooking. They did not communicate with the Americans at all. Sega had two projects. She had 32X, the release of which began that fall; she was supposed to strengthen the capabilities of Genesis. In addition, she created a new car; I don’t remember if it was already called Saturn, but as a result it turned into Saturn. And there was also a dark horse Sony. This company has never made video games before.We heard that she has a powerful new machine, so we contacted Sega and Sony and studied the information they gave us. To conclude an agreement with them, you had to lay your soul and first-born, after which you can order cars if you give them a pledge and all that. And Sony had a new car, as if in full 3D. It did a good job with 2D as well, and it was a new clear architecture, very similar to commercial high-end 3D equipment like Silicon Graphics, but with many simplifications that made the console more economical; PlayStation 1 had two main specialized chips - a graphics module and a specially made CPU with MIPS architecture. But modern GPUs are much more complex and they perform a bunch of calculations that the old 90s GPUs weren’t capable of.The PlayStation 1 GPU simply rendered triangles on the screen, but it did pretty well. He could draw about 120,000 triangles per second, which at that time was phenomenal. On the PC of that time there was no equipment for 3D graphics. They had VGA boards. You would be lucky if you could get a couple of hundred polygons, because all the calculations were performed programmatically. And there was a PlayStation that cost 199 or 299 dollars.

- 299.

- And it was a finished machine with a CD-drive, memory and everything necessary. The difference between consoles and PC at that time was huge. We are talking about the times of Windows 3.1 and DOS. To start the game, you usually needed to have a boot disk with special autoexec.bat and config.sys, which had to be opened in the machine. The PC world was not very game friendly at that time. And on the PlayStation or Genesis or Super Nintendo, it was enough to just insert a cartridge or CD - and the boom, everything loaded. Most of all I liked Sony. She was cool, clear, powerful, and thought for 3D. I really thought that this is the only one of the machines that could withstand our plan.

The basic idea of ​​Crash Bandicoot as a game was that it should have mechanics, like in a game like Donkey Kong Country. The player had to go through countdown levels, enemies and jumps. It had to be platform with a cartoon animal character, and we did not want it to look very much like a video game. We wanted her to be like the Looney Tunes cartoon, where the character is well animated and moves smoothly. If it was crushed by a huge rolling stone, then it turned into a rolling flat pancake. We wanted to create a world similar to the animated one, with the emotionality of classic animated tapes, which was then rediscovered by television series such as Duck Tales and The Simpsons. The animation became cool again. And there was Crash in the frame, we had 30 frames per second and about 1,500 polygons on the screen.600 of them were occupied by Crash. That's how important he was to us. Most games used around 80 polygons and the characters looked like weird walking blocks. We wanted him to look like a real cartoon character. This required a lot of details, so he took away a third of our landfill budget.


Creating Crash, we constantly invented something new. No one has yet made a 3D game in the genre of action-platformer. At the same time, it was clear that the PCs that were commonly used to develop games would not. I repeat, then there was the time of Windows 3.1, the lack of 3D graphics and, in fact, only 640 KB of RAM available. We ventured to buy companies for all, and then there were five of us, Silicon Graphics workstations, mainly Indigo2 Extremes. Workstations at a price of 75 to 100 thousand dollars. They had 3D graphics. Software for creating 3D-graphics also cost about 75 thousand per car. Shortly before that, films such as Terminator 2, Abyss, and Jurassic Park were created on such software. Therefore, we decided to choose Alias ​​PowerAnimator as the software,which at that time was one of three possible options [laughs].

So, we got a clumsy big box - an early prototype of the PlayStation, and it turned out to be a pretty good machine. But first you need to understand something. It came with a bunch of manuals that turned out to be incredibly poorly translated from Japanese cryptic texts. We had amazing discussions of what they meant by this or that funny set of English words. To really figure it out, we had to test everything empirically. We took individual parts and wrote test code to perform a certain action with the machine and see how it copes. This is similar to how you drive a car on a racetrack and check how fast it can turn. The console had many different graphics modes, for example, half speed operation in high resolution mode;however, the medium resolution mode was obviously invented at the last moment, because it worked at the same speed as the low resolution mode. Jason had already created the character Crash Bandicoot, which looked almost the same as in the game, so I brought it to the display and we reduced it to the size that would fit on the screen. I wrote code to calculate the number of pixels occupied by each polygon, and it turned out that on average it was 1.2 pixels. Therefore, I suggested: why do we even need to texture these polygons? We decided that we would not use the texturing mode for the characters. We will use a faster and easier mode when shading, which most developers do not use. Most just used textures. And partly this was due to the fact that we conducted tests and foundthat in non-textured mode, the game runs twice as fast. If the developers did not conduct tests and believed the numbers from the instructions, then they received one number. And we found out that the PlayStation can actually draw a pretty decent number of polygons per second on graphic equipment, but we need to perform calculations to know where these polygons should be located.


Today, almost every computer and even phone has powerful vertex-block GPUs, and they can perform a huge amount of computation, often gigaflops of summation multiplications. And at that time, most computers could perform multiplication and addition in the CPU one at a time, so they managed to do hundreds or thousands, but not billions of calculations. This was a serious obstacle.

The fundamental problem with the PlayStation was that the interaction of hardware and software from a mathematical point of view was not ideal. We seemed to understand that the problem was software, that Sony simply wanted to use the libraries it wrote, but it did not operate the machine to the maximum. Somewhere inside, the designers added equipment designed to summarize multiplications, because millions of such operations are needed, but all this was hidden under a layer of C language libraries written by Sony: you passed them numbers, they did multiplication sums, but the performance was terrible. Although the graphic unit could draw 100-120 thousand polygons per second, the libraries managed to transform mathematics, perhaps for 5-10 thousand, which was clearly not enough.That is, if you test the basic performance of vertex maths on the PlayStation 1, using the official Sony instructions and calling the graphics libraries, you could lose a whole order of magnitude, use iron for a tenth. The code just didn't work fast enough.


We did about the same as any good scientist would have done - we took the system apart and realized that there was enough power inside, but the console was hiding it from us. In the case of this specific problem, through my friends at Sony, I proposed a creative solution - we exchanged two sheets of paper, handing over in person. "I have not told you anything." [laughs] But actually it was enough. We just systematically worked through all this, and it turned out that inside the specially designed Sony CPU there is a mathematical “brain” called a coprocessor, capable of performing the very highly specialized and limited calculations necessary for transforming vertices. And he manages to execute them at such a speed that the GPU is able to consume this data.Almost any specialized gaming equipment since the time of arcade machines has always had two main “brains”: a graphics module and a CPU. The good old CPUs processed single numbers and this allowed them to do everything that computers are capable of, but at the same time they could only “think” one thought. The graphics module provided a way to render graphics hardware. In the early games of the 80s, even in games as simple as Galaga, where you just had to shoot alien ships, this graphic was called sprites. At that time, the CPUs could not render sprites. Small graphic modules capable of creating sprites and scrolling background were invented. In fact, all computer graphics technologies have evolved thanks to video games. But you always had to keep the balance between the graphic brain and the brain in these machines,engaged in general mathematics. Today, GPUs can sometimes perform thousands of the same operations, and therefore the processing power of the GPU is much greater than that of the CPU. They have many gigaflops, sometimes even teraflops. They do not perform general calculations.


Let me explain the gameplay to you in a 2D platformer. Take Donkey Kong Country. A player can move forward and backward in a level, that is, left and right, jump up and down platforms, but in essence the game is linear. Usually you move to the right and encounter obstacles. It all comes down to the principle that appeared in Pitfall in 1980. You can swing on the vine to jump over the spikes. Monsters can roam the platforms, and bees fly over them. The game is developing linearly. You see where you are moving, and the game is very fast paced. Jump-jump-kick, jump-jump-kick. Therefore, it goes well with 2D. The designer measures almost the musical rhythm of the game, and thanks to this, such games are very exciting and addictive. You’re getting a better understanding of the game, first learn the basics of management, become Donkey Kong,then you study the movements of enemies and objects at the level, remember the route. It is like playing music in a rhythm game. But in 3D, everything is different. We have added a new dimension. Now you can move from side to side. If you have three turtles coming to you at Donkey Kong Country or Mario, then you need to jump over them or jump on their heads to knock all three off one by one. In 3D, you can simply move to the right and quietly go around them. We have added a whole new dimension of space, and space has become too much. This seemed to change the balance between choice and conflict. We had to figure out how to compensate for this in order to maintain the active course of the game. We realized that we had added a new dimension, so it would be easiest to subtract it, but subtract different dimensions. Suppose this was on the levels with cobblestones. Measurementwhich we actually took there was time.

This is not one of the three spatial dimensions. Due to the danger of the level (the stone will crush you if you do not constantly move, move, move), you do not have the luxury of choosing other dimensions, so this makes you move along a narrow corridor so quickly that the gameplay feels intense. And the level with the boar moves in the opposite direction - instead of moving an object moving towards you, you will jump toward the objects. It’s as if you are sitting on a boar and cannot control its speed. This is a wild hog and you basically need to move left and right, after which a more ordinary 3D level begins. For example, at Insanity Beach, we placed jungle walls to narrow the space, not completely, but partially. There are other elements that make it possible to narrow it down, for example, enemies, say crabs or skunks at these levels,they bypass the player on the side. This does not mean that we cannot use the new dimension if desired, because we have a box on the left and a box on the right. You can do interesting things, for example, the player must choose whether to face the threat and move to the box. And if the player is at a level like Hog Wild, then we did it on purpose. Suppose we had a pole with spikes and a box on the left, and the path without obstacles on the right. Therefore, in order to more easily survive this obstacle, you can move to the right and just drive past the pillar. But then you won’t get the box. To get it, you need to move to the post at the last second and then slide to the side. That is, the game gives the player a choice or elements of time calculation, as at some levels of the 3D type with rolling cobble stones, followed by levels with platforms. The player needs to jump, but then you can increase the voltage,causing the platform to collapse. The platform, as it were, has its own validity period. The player climbs on her, and she moves and falls. And we also had levels of a different format, where we again took one dimension. For example, in the game there are many levels that represent for example a wall, that is, they seem to occur in 2D. Yes, you can move to the side, but we already did something like a 2D level, fixing the camera so that it looked from the side. And there was one more type of levels in which the camera went up and Crash moved as if along a grid, but there was almost no movement up and down, and instead of open space the player was on bridges under which there is some kind of mortal danger.where we again took one dimension. For example, in the game there are many levels that represent for example a wall, that is, they seem to occur in 2D. Yes, you can move to the side, but we already did something like a 2D level, fixing the camera so that it looked from the side. And there was one type of levels in which the camera went up and Crash moved as if along a grid, but there was almost no movement up and down, and instead of open space the player was on bridges under which there was some kind of mortal danger.where we again took one dimension. For example, in the game there are many levels that represent for example a wall, that is, they seem to occur in 2D. Yes, you can move to the side, but we already did something like a 2D level, fixing the camera so that it looked from the side. And there was one more type of levels in which the camera went up and Crash moved as if along a grid, but there was almost no movement up and down, and instead of open space the player was on bridges under which there is some kind of mortal danger.in which the camera went up and Crash moved as if along a grid, but there was almost no movement up and down, and instead of open space the player was on bridges under which there was some kind of mortal danger.in which the camera went up and Crash moved as if along a grid, but there was almost no movement up and down, and instead of open space the player was on bridges under which there was some kind of mortal danger.


In each of these cases, we liked to add restrictions or lower degrees of freedom in order to narrow the space and increase the intensity of the gameplay. Because of the extra dimension, the game is more diverse than the traditional 2D game, because at different levels we take away different dimensions. We had about 7-10 different strategies for limiting measurements. The boxes were actually also invented in order to fill the void. There are not many enemies on the screen, because the machine would not have coped with a large number, but we actively filled empty spaces with drawers. In addition, they can fall apart in whole stacks and create puzzles; for such a simple object of just a few polygons, it was incredibly universal.

We were sure that we wanted to create the type of animation that was never used in video games. It was supposed to resemble the style of Looney Tunes, such a deformed animation. This is a very elastic, rubbery style of animation, implemented in traditional animation. Therefore, the characters actually needed to be animated. In the era of low-poly graphics of the 90s, characters were traditionally created from a small number of bones: the humerus, the forearm bone, the head bone; all the character’s right hip graphics were attached to the bone of the right thigh. And a bone is a rigid object, like a hinge. It can be rotated or moved. It is somewhat reminiscent of an imitation of a robot, and if you need fingers, you will have to create a lot of bones. For the PlayStation, this is too much computation. We knew that she would never cope with a bunch of bones.And it would certainly have been impossible to create an animation of hitting the hand with a hammer, as happens in cartoons. What do we see there? The hand swells like a ball, or flattened into a pancake, or something like that. We could not do all this with a single bone system. In games like Virtua Fighter, arcade machines used the classic bone system. It was quite suitable for fighting games, because there are not so many deformations, but the characters looked a little constrained. Using bones is almost impossible or very difficult to create facial animation, and we knew that we really wanted to implement it. Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?as happens in cartoons. What do we see there? The hand swells like a ball, or flattened into a pancake, or something like that. We could not do all this with a single bone system. In games like Virtua Fighter, arcade machines used the classic bone system. It was quite suitable for fighting games, because there are not so many deformations, but the characters looked a little constrained. Using bones is almost impossible or very difficult to create facial animation, and we knew that we really wanted to implement it. Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?as happens in cartoons. What do we see there? The hand swells like a ball, or flattened into a pancake, or something like that. We could not do all this with a single bone system. In games like Virtua Fighter, arcade machines used the classic bone system. It was quite suitable for fighting games, because there are not so many deformations, but the characters looked a little constrained. Using bones is almost impossible or very difficult to create facial animation, and we knew that we really wanted to implement it. Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?In games like Virtua Fighter, arcade machines used the classic bone system. It was quite suitable for fighting games, because there are not so many deformations, but the characters looked a little constrained. Using bones is almost impossible or very difficult to create facial animation, and we knew that we really wanted to implement it. Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?In games like Virtua Fighter, arcade machines used the classic bone system. It was quite suitable for fighting games, because there are not so many deformations, but the characters looked a little constrained. Using bones is almost impossible or very difficult to create facial animation, and we knew that we really wanted to implement it. Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?Which character does not like smiling or winking? Is it even possible to achieve such an animation on a Silicon Graphics workstation?

Jason created this Crash model and was ready to create cool cartoon animations; he found out that it is really possible to force PowerAnimator to do this, because it had powerful tools like bones and vertex weights, as well as distortion fields. But the way they were implemented by PowerAnimator was not playable on the PlayStation. All these things used expensive equipment for working with floating point in a Silicon Graphics workstation, and even she could not perform them in real time. She had to render animations, and the video game takes place in real time. We needed to have time to do everything in 1/30 of a second. This became another serious problem, because we really wanted to implement these animations.

I suggested: well, we can read the positions of all the vertices. If we know where the positions of all the vertices are in each frame, then the type of bones is not important to us. Although SGI uses at least a thousand bones, the principle will be the same. We simply draw polygons and vertex positions, and this can be done pretty quickly. We do not have to perform bone calculations, so CPU resources will not be spent on bones. But with such a strategy, the problem was that if we have an animation with 30 frames per second, and Crash consists of about 500 vertices and somewhere around 600 polygons, then we need to store the position in each animation frame for each vertex. This is a large amount of data. But at the same time, we were already fascinated by this crazy strategy for memory with a thirtyfold increase in the amount of data, so that we could process a little more data than others could.So we decided to bake animation data using all of Jason's sophisticated effects in PowerAnimator. So I did, and it worked, because the PlayStation development kit had something like 8 or 32 megabytes of memory. Therefore, it was possible to allow a much larger volume than would be available on a real machine. We worked on this for several months, and I constantly thought that somehow we would have to fit everything in our memory. The volume was just huge. It needs to be done less. But I had a feeling that in the mathematical sense there is not so much data that you could write a specialized compression algorithm. How to understand this: in the theory of computer science, data has a certain degree of complexity. They have a pattern and limitations, and in our case, these animations may well suffer the loss of their part.According to the same theory, jpeg works, and it is thanks to it that he completely changed the Internet and the way images are stored. In the case of jpeg, we convert the image to a frequency range, this is a complex mathematical transformation, and then we discard the high-frequency garbage, reverse it and depending on the amount of garbage discarded, the image starts to look better or worse, but it still contains the most important parts, occupying 20 or 30 times less space, because we got rid of unimportant information. I was very sure that with the data of the animations the situation would be the same, that we can get rid of high-frequency animations, for example, at the vertices of the character’s waist, because they do not move very much up and down.In the case of jpeg, we convert the image to a frequency range, this is a complex mathematical transformation, and then we discard the high-frequency garbage, reverse it and depending on the amount of garbage discarded, the image starts to look better or worse, but it still contains the most important parts, occupying 20 or 30 times less space, because we got rid of unimportant information. I was very sure that with the data of the animations there will be the same situation that we can get rid of high-frequency animations, for example, at the vertices of the character’s waist, because they do not move very much up and down.In the case of jpeg, we convert the image to a frequency range, this is a complex mathematical transformation, and then we discard the high-frequency garbage, reverse it and depending on the amount of garbage discarded, the image starts to look better or worse, but it still contains the most important parts, occupying 20 or 30 times less space, because we got rid of unimportant information. I was very sure that with the data of the animations there will be the same situation that we can get rid of high-frequency animations, for example, at the vertices of the character’s waist, because they do not move very much up and down.but it still contains the most important parts, occupying 20 or 30 times less space, because we got rid of unimportant information. I was very sure that with the data of the animations there will be the same situation that we can get rid of high-frequency animations, for example, at the vertices of the character’s waist, because they do not move very much up and down.but it still contains the most important parts, occupying 20 or 30 times less space, because we got rid of unimportant information. I was very sure that with the data of the animations there will be the same situation that we can get rid of high-frequency animations, for example, at the vertices of the character’s waist, because they do not move very much up and down.


Mark Zerny wrote a program for analysis. He took a set of animations and analyzed each component and each vertex, calculated a kind of dynamic range and the magnitude of the changes that occurred between the animations. He found that the information actually changes quite slightly. Therefore, it turned out that we can use a very specialized algorithm that determines the range and everything else, and also creates a map at the beginning, in which, for example, it is written that the Y coordinate of vertex number seven contains little information, so it only needs two bits. That she moves in such a range and she needs so many bits. In the end, we got a compression ratio somewhere in the range of 50-81, that is, the data became 50 times smaller.


If you look at the design of the PlayStation 1, despite the correct design and balance, the machine had only two megabytes of RAM and one megabyte of VRAM. But she also had a CD-drive, which could store up to 640 megabytes of data for reading, and this is much more. This ratio is very large. That is, theoretically it was possible to make levels much more than two megabytes. Like in a regular game, let's say in Twisted Metal, you get to the Eiffel Tower level and the game loads the Eiffel Tower level into one megabyte of memory. They have a certain amount of graphics and animations, occupying about one megabyte. Now you can come up with different methods of data compression, but there is no way to get around this limitation, and people did not really try. So, in principle, everything worked. A computer, i.e. CPU and GPU, could only accesswhat is currently in memory. Every 1/30 second in memory there is what you need to render the frame. Everything that you will draw now, any animation and any sound that will be used now, must be in memory, because you can quickly access memory. A CD drive takes about 1/3 of a second to move the head to any point on the CD. It takes some time to load the data. It can download a megabyte in six seconds or so. Therefore, you can’t just draw one frame and start downloading a new megabyte from the disk, because it will take another eight seconds to get it. And what will you do - wait eight whole seconds? This can be done between levels. Therefore, when switching between levels in a regular game, there is a loading screen when it reads a whole megabyte, or how much it needs there, from the disk.CD is a more “distant” drive. It is bigger, but also slower. Use it longer, but why not use it? He is, after all. In early PlayStation games, developers created levels of one or two megabytes, and 640 megabytes fit on a CD, that is, 300 levels can be recorded on it. Did they have 300 levels? No, otherwise it would take ten years to create the game. Therefore, the CDs were mostly empty, or they were filled with music or video, because it is voluminous data. But very often, the discs were simply empty. Games like Twisted Metal could take up only 50 megabytes of disk space. Therefore, the levels of so many games look like they occupy about a megabyte, well, maybe a megabyte and a half. That was enough. So many games were created for the PlayStation, but in my theory we did not have to stick to this.


My idea was to use sophisticated virtual memory techniques to replace data blocks. Suppose, if a level takes up 30 megabytes, then at a particular moment in time we may need only one megabyte, but the whole level is actually 30 megabytes. I decided to break the entire level into 64 KB pages, creating data blocks from them. They can be something meaningful, for example, Crash animation, its code, or part of the background. Blocks should be less than 64 KB, we push them into a page until it is almost completely filled, but they cannot be divided into several pages, or you have to break the blocks into even smaller blocks. When a level consists of 30 megabytes of pages, 16-18 pages can fit in memory. The problem is if I can distribute the level blocks in such a wayso that at any point in the level I will never need more than 16 pages of data; it was also possible to take one block, duplicate it on several pages, if this would help to work better throughout the system. The game in advance, but constantly determines which pages it will load if the player moves in one of the ways, discards old pages that it does not need, loading others in their place. Any page can replace any other, if we never need more than 16 active pages at a time. All Crash textures are sharp enough with lots of colors, and Tomb Raider textures seem to be blurry and pixelated, because there is little memory allocated for them. The developers did not have a place to store additional texture. And for this we had 20-30 times more space. Or take the number of polygons per level.Games like Tomb Raider look very cubic, with square corridors, and Crash has crazy shapes and much more, because we had a lot more polygons. There were many other technologies that served this purpose, but memory was very important. Thanks to this, I got a whole bunch of patents because I was one of the first people who realized how to actually use the space on a CD or disk as a dynamic part of the game to expand it. Today it happens all the time.who understand how to actually use the space on a CD or disk as a dynamic part of the game to expand it. Today it happens all the time.who understand how to actually use the space on a CD or disk as a dynamic part of the game to expand it. Today it happens all the time.


I believe that one of the most important lessons of Crash Bandicoot was that games, it turns out, can have their own unique stylistic personality and artistic style. And yes, to some extent, others have done this before. In the end, Mario has his own style, which largely determined the style of video games of the past. But Crash has its own holistic world with obvious borrowings from the style of American cartoons. And all Crash products (I mean the first four games) adhered to this style. It’s still interesting to play in the original versions and they look pretty good even on the PlayStation 1, because such a style surpasses pixel limitations. In the early stages of development, we had a completely arrogant half-hope, half-sense: an important factor in choosing the PlayStation was that Nintendo has Mario,and Sega has Sonic. And Sony, it seems, has not yet had a mascot, so if we create a game with a character similar to a mascot, then we will have no competitors. And Sony was really immediately interested, they wanted this game. We had to ensure that it only appears on the PlayStation. We deliberately decided to create such a situation and then explored our possibilities. But the fact that it worked was a miracle. We dreamed that Crash would become a mascot. But even when Sony agreed to cooperate, she never made it official - they said that it was not a mascot, that they did not have a mascot, but everyone considered it a mascot, and the company supported it so much that it even bought the rights from Universal.And Sony was really immediately interested, they wanted this game. We had to ensure that it only appears on the PlayStation. We deliberately decided to create such a situation and then explored our possibilities. But the fact that it worked was a miracle. We dreamed that Crash would become a mascot. But even when Sony agreed to cooperate, she never made it official - they said that it was not a mascot, that they did not have a mascot, but everyone considered it a mascot, and the company supported it so much that it even bought the rights from Universal.And Sony was really immediately interested, they wanted this game. We had to ensure that it only appears on the PlayStation. We deliberately decided to create such a situation and then explored our possibilities. But the fact that it worked was a miracle. We dreamed that Crash would become a mascot. But even when Sony agreed to cooperate, she never made it official - they said that it was not a mascot, that they did not have a mascot, but everyone considered it a mascot, and the company supported it so much that it even bought the rights from Universal.But even when Sony agreed to cooperate, she never made it official - they said that it was not a mascot, that they did not have a mascot, but everyone considered it a mascot, and the company supported it so much that it even bought the rights from Universal.But even when Sony agreed to cooperate, she never made it official - they said that it was not a mascot, that they did not have a mascot, but everyone considered it a mascot, and the company supported it so much that it even bought the rights from Universal.


Crash Bandicoot sales started well, but they went on and on. Crash Bandicoot was the first game to sell better in the second year of sales, and possibly in the third, and I’m sure that when we released Crash Team Racing the week before Christmas, Crash Bandicoot overtook it and sold more copies than it sold for all the previous time. Firstly, it was a game attractive to a very wide audience; everyone, from a child to a hardcore gamer, could play it. It did not have much cruelty, but the characters fascinated, she was funny, and the gameplay was quite intense and at the same time affordable. You could just sit down and start playing it, and for us it was one of the most important goals. I did not want to create a game that I had to think too much about. Crash Bandicoot became a blacksmith's shopin which the philosophy of Naughty Dog was forged: every element that gets into the game must be great, because we wanted to create a really great game, a game that will become a hit, a classic, and to achieve this, we decided that it should be great in it that's all, but the best technology is needed to realize this. The better the technology, the better the game will feel and look. If you implement all this correctly, then you can surpass mediocrity and create a game masterpiece.the better the game will feel and look. If you implement all this correctly, then you can surpass mediocrity and create a game masterpiece.the better the game will feel and look. If you implement all this correctly, then you can surpass mediocrity and create a game masterpiece.

All Articles