Comment Crash Bandicoot a piraté Playstation


Andy Gavin de Naughty Dog parle de la gestion de la mémoire des années 90 et des animations 3D.

«La mémoire de Crash Bandicoot manquait tellement que j'ai dû voler de petits morceaux de mémoire supplémentaire dans les bibliothèques Sony. J'ai juste essayé de retirer les pièces que, comme il me semblait, je n'ai pas utilisées et j'ai vérifié si tout fonctionnait toujours. Si tout fonctionnait, je les ai marqués comme libres et j'ai piraté leur code, en changeant les codes d'octets. J'ai pensé: je peux le faire, si Sony ne veut pas le réparer moi-même, alors je change juste leur code. C'était de la mémoire libre. [rires] La mémoire était limitée. Mais personne ne nous a absolument permis de le faire. »

Bonjour, je suis Andy Gavin, co-fondateur de Naughty Dog Inc et programmeur principal chez Crash Bandicoot. Nous avons décidé de créer le premier jeu de plateforme d'action avec un caractère tridimensionnel, et pour tout faire correctement, nous avons littéralement dû pirater l'équipement.

Cela faisait partie de la philosophie de Naughty Dog de faire tout son possible, en utilisant chaque cycle de processeur ou de processeur graphique, chaque octet de mémoire. S'il y avait une telle opportunité dans la voiture, alors nous avons essayé de savoir comment en tirer le meilleur parti, peu importe si cela nous était utile ou non, et si nous utiliserions des trucs fous. À l'été 1994, mon partenaire Jason Rubin et moi avons terminé un jeu de combat 3DO appelé Way of the Warrior et avons réfléchi au jeu que nous voulons faire ensuite. Le genre le plus populaire sur les consoles à l'époque était les jeux de plate-forme d'action tels que Super Mario World et toutes sortes d'autres classiques des jeux de plate-forme 16 bits. Dans le même temps, de nouveaux équipements 3D sont apparus sur les machines d'arcade et certains genres ont commencé la transition de la 2D traditionnelle à la 3D.


Des jeux comme Street Fighter II et Mortal Kombat étaient encore à leur apogée, mais Virtua Fighter était déjà apparu. Il utilisait des graphiques 3D, c'était cool et il est devenu évident que les jeux se déplaceraient de cette façon. Les nouvelles consoles fonctionneront en 3D. Puis-je créer un jeu de plateforme 3D? Personne ne l'a encore fait, mais c'était sur le point de se produire. Pensez à la façon dont Sonic vole à travers les boucles de tuyaux en 3D. À quoi cela ressemblera-t-il? Jusqu'à l'automne 1994, Naughty Dog n'était composé que de nous, Jason et Andy, formant une véritable synergie. Nous avons tous les deux traité tous les aspects créatifs, nous étions les meilleurs amis, les colocataires, Jason était un artiste phénoménal, et j'étais programmeur de jeux, et je pense que c'est plutôt bien. [rires] De nous deux, il a essayé de rendre le jeu incroyable, et j'ai essayé de faire fonctionner la technologie,et nous nous sommes tous les deux efforcés de rendre le jeu vraiment amusant. Jason et moi avons vendu les droits de Way of the Warrior à une nouvelle division d'Universal Studios appelée Universal Interactive. En fait, ils nous ont dit: venez en Californie, arrêtez-vous au lieu Universal à côté de Steven Spielberg, nous vous donnerons un bungalow et tout ce dont vous avez besoin gratuitement. Vous pouvez faire ce que vous voulez, il vous suffit de nous le montrer. Nous avons emmené le chien, un chien nommé Naughty Dog Morgan, sommes montés dans ma Honda Accord et avons traversé le pays, nous avons donc eu beaucoup de temps pour parler. Nous avons discuté: à quoi ressemblera le jeu de plateforme en 3D?venez en Californie, arrêtez-vous au lieu Universal à côté de Steven Spielberg, nous vous donnerons un bungalow et tout ce dont vous avez besoin gratuitement. Vous pouvez faire ce que vous voulez, il vous suffit de nous le montrer. Nous avons emmené le chien, un chien nommé Naughty Dog Morgan, sommes montés dans ma Honda Accord et avons traversé le pays, nous avons donc eu beaucoup de temps pour parler. Nous avons discuté: à quoi ressemblera le jeu de plateforme en 3D?venez en Californie, arrêtez-vous au lieu Universal à côté de Steven Spielberg, nous vous donnerons un bungalow et tout ce dont vous avez besoin gratuitement. Vous pouvez faire ce que vous voulez, il vous suffit de nous le montrer. Nous avons emmené le chien, un chien nommé Naughty Dog Morgan, sommes montés dans ma Honda Accord et avons traversé le pays, nous avons donc eu beaucoup de temps pour parler. Nous avons discuté: à quoi ressemblera le jeu de plateforme en 3D?

Nous avons discuté de quelque chose comme les jeux Sonic the Hedgehog. Imaginez que vous bouclez, courez et sautez sur des plates-formes et collectionnez des objets en 3D. La caméra est toujours derrière le joueur. Vous voyez le monde et tout a l'air génial, mais c'est comme un jeu sur le cul de Sonic. Tout ce que vous faites, c'est regarder le cul de Sonic. Mais le personnage est plus expressif quand on le voit devant. Est-il possible de faire des niveaux où le joueur se déplace vers la caméra? Mais comment voir où il court? En fait, de telles réflexions nous ont progressivement amenés aux niveaux pavés de Crash Bandicoot. Devrait-il y avoir des niveaux où le joueur se déplace latéralement, devrait-il regarder par-dessus son épaule vers l'écran? Nous avons simultanément conçu le jeu, qui deviendra Crash Bandicoot, et en même temps, comme si nous choisissions une plate-forme pour celui-ci.

Nous savions que puisque ce sera un jeu en 3D, nous aurons besoin d'une des nouvelles plateformes 32 bits. Donc, il y avait 3DO, pour lequel nous avions déjà fait un jeu, mais cette voiture était comme une courbe, une demi-machine 3D. De plus, c'était très cher et ne se vendait pas très bien. Il y avait aussi Atari Jaguar. Nous avons considéré cela comme un malentendu. Et il y avait des gars sérieux sur le point de sortir de nouvelles voitures. Nous connaissions une mystérieuse voiture de Nintendo, mais nous ne pouvions pas savoir ce que Nintendo cuisinait. Ils n'ont pas du tout communiqué avec les Américains. Sega avait deux projets. Elle avait 32X, dont la sortie a commencé cet automne; elle était censée renforcer les capacités de Genesis. De plus, elle a créé une nouvelle voiture; Je ne me souviens pas si elle s'appelait déjà Saturne, mais en conséquence, elle s'est transformée en Saturne. Et il y avait aussi un cheval noir Sony. Cette entreprise n'a jamais fait de jeux vidéo auparavant.Nous avons entendu dire qu'elle avait une nouvelle machine puissante, alors nous avons contacté Sega et Sony et étudié les informations qu'ils nous ont fournies. Pour conclure un accord avec eux, vous deviez jeter votre âme et votre premier-né, après quoi vous pouvez commander des voitures si vous leur donnez un gage et tout ça. Et Sony avait une nouvelle voiture, comme en full 3D. Il s'adaptait bien à la 2D, et c'était une nouvelle architecture claire, très similaire aux équipements 3D commerciaux de la classe haut de gamme comme Silicon Graphics, mais avec de nombreuses simplifications qui rendaient la console plus économique; La PlayStation 1 avait deux puces spécialisées principales - un module graphique et un processeur spécialement conçu avec une architecture MIPS. Mais les GPU modernes sont beaucoup plus complexes et ils effectuent un tas de calculs dont les anciens GPU des années 90 n'étaient pas capables.Le GPU PlayStation 1 a simplement rendu des triangles à l'écran, mais il a plutôt bien fonctionné. Il pouvait dessiner environ 120 000 triangles par seconde, ce qui à l'époque était phénoménal. Sur le PC de l'époque, il n'y avait pas d'équipement pour les graphismes 3D. Ils avaient des cartes VGA. Vous auriez de la chance si vous pouviez obtenir quelques centaines de polygones, car tous les calculs ont été effectués par programme. Et il y avait une PlayStation qui coûtait 199 ou 299 dollars.

- 299.

- Et c'était une machine finie avec un lecteur de CD, de la mémoire et tout le nécessaire. La différence entre les consoles et les PC à cette époque était énorme. Nous parlons de l'époque de Windows 3.1 et DOS. Pour démarrer le jeu, vous aviez généralement besoin d'un disque de démarrage avec autoexec.bat et config.sys spéciaux, qui devaient être ouverts dans la machine. Le monde du PC n'était pas très convivial à l'époque. Et sur PlayStation ou Genesis ou Super Nintendo, il suffisait d'insérer simplement une cartouche ou un CD - et le boom, tout chargé. J'ai surtout aimé Sony. Elle était cool, claire, puissante et pensait pour la 3D. Je pensais vraiment que c'était la seule des machines qui pouvait résister à notre plan.

L'idée de base de Crash Bandicoot en tant que jeu était qu'il devrait avoir des mécanismes, comme dans un jeu comme Donkey Kong Country. Le joueur a dû passer par des niveaux de compte à rebours, des ennemis et des sauts. Ce devait être une plate-forme avec un personnage animal de dessin animé, et nous ne voulions pas qu'il ressemble beaucoup à un jeu vidéo. Nous voulions qu'elle ressemble au dessin animé de Looney Tunes, où le personnage est bien animé et se déplace en douceur. S'il était écrasé par une énorme pierre roulante, il se transformait en une crêpe plate roulante. Nous voulions créer un monde similaire à celui de l'animation, avec l'émotivité des bandes animées classiques, qui a ensuite été redécouvert par des séries télévisées telles que Duck Tales et The Simpsons. L'animation est redevenue cool. Et il y avait Crash dans le cadre, nous avions 30 images par seconde et environ 1 500 polygones à l'écran.600 d'entre eux ont été occupés par Crash. Voilà à quel point il était important pour nous. La plupart des jeux utilisaient environ 80 polygones et les personnages ressemblaient à des blocs de marche étranges. Nous voulions qu'il ressemble à un vrai personnage de dessin animé. Cela nécessitait beaucoup de détails, alors il a emporté un tiers de notre budget de décharge.


En créant Crash, nous avons constamment inventé quelque chose de nouveau. Personne n'a encore créé de jeu 3D dans le genre de jeu de plateforme-action. Dans le même temps, il était clair que les PC qui étaient couramment utilisés pour développer des jeux ne le seraient pas. Je le répète, puis il y a eu l'époque de Windows 3.1, le manque de graphismes 3D et, en fait, seulement 640 Ko de RAM disponibles. Nous nous sommes aventurés à acheter des sociétés pour tous, puis nous étions cinq, des stations de travail Silicon Graphics, principalement Indigo2 Extremes. Postes de travail au prix de 75 à 100 mille dollars. Ils avaient des graphismes 3D. Les logiciels de création de graphiques 3D coûtent également environ 75 000 euros par voiture. Peu avant cela, des films tels que Terminator 2, Abyss et Jurassic Park ont ​​été créés sur de tels logiciels. Par conséquent, nous avons décidé de choisir Alias ​​PowerAnimator comme logiciel,ce qui à l'époque était l'une des trois options possibles [rires].

Nous avons donc eu une grosse boîte maladroite - un premier prototype PlayStation, et il s'est avéré être une assez bonne machine. Mais vous devez d'abord comprendre quelque chose. Il est venu avec un tas de manuels qui se sont révélés incroyablement mal traduits à partir de textes cryptiques japonais. Nous avons eu des discussions incroyables sur ce qu'ils voulaient dire par tel ou tel ensemble drôle de mots anglais. Pour vraiment le comprendre, nous avons dû tout tester empiriquement. Nous avons pris des pièces individuelles et écrit un code de test pour effectuer une certaine action avec la machine et voir comment elle se comporte. Cela ressemble à la façon dont vous conduisez une voiture sur une piste de course et vérifiez à quelle vitesse elle peut tourner. La console avait de nombreux modes graphiques différents, par exemple, un fonctionnement à demi-vitesse en mode haute résolution;cependant, le mode moyenne résolution a évidemment été inventé au dernier moment, car il fonctionnait à la même vitesse que le mode basse résolution. Jason avait déjà créé le personnage Crash Bandicoot, qui avait presque la même apparence que dans le jeu, alors je l'ai apporté à l'écran et nous l'avons réduit à la taille qui conviendrait à l'écran. J'ai écrit du code pour calculer le nombre de pixels occupés par chaque polygone, et il s'est avéré qu'en moyenne, il était de 1,2 pixel. Par conséquent, j'ai suggéré: pourquoi avons-nous même besoin de texturer ces polygones? Nous avons décidé de ne pas utiliser le mode de texturation pour les personnages. Nous utiliserons un mode plus rapide et plus facile lors de l'ombrage, ce que la plupart des développeurs n'utilisent pas. Textures les plus utilisées. Et cela est dû en partie au fait que nous avons effectué des tests et trouvéqu'en mode non texturé, le jeu tourne deux fois plus vite. Si les développeurs n'ont pas effectué de tests et ont cru aux chiffres des instructions, ils ont reçu un numéro. Et nous avons découvert que la PlayStation peut réellement dessiner un nombre décent de polygones par seconde sur l'équipement graphique, mais nous devons effectuer des calculs pour savoir où ces polygones doivent être situés.


Aujourd'hui, presque tous les ordinateurs et même les téléphones ont de puissants GPU à blocs vertex, et ils peuvent effectuer une énorme quantité de calculs, souvent des gigaflops de multiplications de sommation. Et à ce moment-là, la plupart des ordinateurs pouvaient effectuer la multiplication et l'ajout de CPU un par un, ils ont donc réussi à faire des centaines ou des milliers, mais pas des milliards de calculs. C'était un sérieux obstacle.

Le problème fondamental avec la PlayStation était que l'interaction du matériel et des logiciels d'un point de vue mathématique n'était pas idéale. Nous semblions comprendre que le problème était un logiciel, que Sony voulait simplement utiliser les bibliothèques qu'il avait écrites, mais qu'il ne faisait pas fonctionner la machine au maximum. Quelque part à l'intérieur, les concepteurs ont ajouté un équipement conçu pour résumer les multiplications, car des millions de ces opérations sont nécessaires, mais tout cela était caché sous une couche de bibliothèques de langage C écrites par Sony: vous leur avez passé des chiffres, ils ont effectué des sommes de multiplication, mais les performances ont été terribles. Bien que l'unité graphique puisse dessiner 100 à 120 000 polygones par seconde, les bibliothèques ont réussi à convertir les mathématiques, peut-être pour 5 à 10 000, ce qui n'était clairement pas suffisant.Autrement dit, si vous testez les performances de base des calculs de vertex sur la PlayStation 1, en utilisant les instructions officielles de Sony et en appelant les bibliothèques graphiques, vous pourriez perdre tout un ordre de grandeur, utilisez du fer pour un dixième. Le code n'a tout simplement pas fonctionné assez rapidement.


Nous avons fait à peu près la même chose que n'importe quel bon scientifique aurait fait - nous avons démonté le système et réalisé qu'il y avait suffisamment de puissance à l'intérieur, mais la console nous le cachait. Dans le cas de ce problème spécifique, par l'intermédiaire de mes amis de Sony, j'ai proposé une solution créative - nous avons échangé deux feuilles de papier, remises en personne. "Je ne vous ai rien dit." [rires] Mais en fait, c'était suffisant. Nous avons simplement systématiquement travaillé à travers tout cela, et il s'est avéré qu'à l'intérieur du CPU Sony spécialement conçu, il y a un «cerveau» mathématique appelé coprocesseur, capable d'effectuer les calculs très hautement spécialisés et limités nécessaires à la transformation des sommets. Et il parvient à les exécuter à une vitesse telle que le GPU est capable de consommer ces données.Presque tous les équipements de jeu spécialisés depuis l'époque des machines d'arcade ont toujours eu deux «cerveaux» principaux: un module graphique et un CPU. Les bons vieux processeurs traitaient des nombres uniques et cela leur permettait de faire tout ce dont les ordinateurs sont capables, mais en même temps, ils ne pouvaient «penser» qu'une seule pensée. Le module graphique a fourni un moyen de rendre le matériel graphique. Dans les premiers jeux des années 80, même dans des jeux aussi simples que Galaga, où vous n'aviez qu'à tirer sur des vaisseaux extraterrestres, ce graphique s'appelait sprites. À ce moment-là, les CPU ne pouvaient pas rendre les sprites. De petits modules graphiques capables de créer des sprites et de faire défiler l'arrière-plan ont été inventés. En fait, toutes les technologies de l'infographie ont évolué grâce aux jeux vidéo. Mais il fallait toujours garder l'équilibre entre le cerveau graphique et le cerveau dans ces machines,engagé en mathématiques générales. Aujourd'hui, les GPU peuvent parfois effectuer des milliers des mêmes opérations, et donc la puissance de traitement du GPU est bien supérieure à celle du CPU. Ils ont de nombreux gigaflops, parfois même des téraflops. Ils n'effectuent pas de calculs généraux.


Permettez-moi de vous expliquer le gameplay dans un jeu de plateforme 2D. Prenez Donkey Kong Country. Un joueur peut avancer et reculer dans un niveau, c'est-à-dire à gauche et à droite, sauter de haut en bas sur les plates-formes, mais le jeu est essentiellement linéaire. Habituellement, vous vous déplacez vers la droite et rencontrez des obstacles. Tout se résume au principe qui est apparu dans Pitfall en 1980. Vous pouvez vous balancer sur la vigne pour sauter par-dessus les pointes. Les monstres peuvent parcourir les plates-formes et les abeilles survolent celles-ci. Le jeu évolue de façon linéaire. Vous voyez où vous vous déplacez et le jeu est très rapide. Jump-jump-kick, jump-jump-kick. Par conséquent, cela va bien avec la 2D. Le concepteur mesure presque le rythme musical du jeu, et grâce à cela, ces jeux sont très excitants et addictifs. Vous comprenez mieux le jeu, apprenez d'abord les bases de la gestion, devenez Donkey Kong,puis vous étudiez les mouvements des ennemis et des objets au niveau, rappelez-vous l'itinéraire. C'est comme jouer de la musique dans un jeu de rythme. Mais en 3D, tout est différent. Nous avons ajouté une nouvelle dimension. Vous pouvez maintenant vous déplacer d'un côté à l'autre. Si vous avez trois tortues qui viennent à vous à Donkey Kong Country ou à Mario, alors vous devez sauter par-dessus ou sauter sur la tête pour les faire tomber un par un. En 3D, vous pouvez simplement vous déplacer vers la droite et les contourner tranquillement. Nous avons ajouté une toute nouvelle dimension de l'espace, et l'espace est devenu trop. Cela semblait changer l'équilibre entre choix et conflit. Nous avons dû trouver un moyen de compenser cela afin de maintenir le cours actif du jeu. Nous avons réalisé que nous avions ajouté une nouvelle dimension, il serait donc plus facile de la soustraire, mais de soustraire des dimensions différentes. Supposons que ce soit au niveau des pavés. La mesureque nous avons réellement pris il y avait du temps.

Ce n'est pas l'une des trois dimensions spatiales. En raison du danger du niveau (la pierre vous écrasera si vous ne bougez pas, bougez, bougez constamment), vous n'avez pas le luxe de choisir d'autres dimensions, donc cela vous fait vous déplacer le long d'un couloir étroit si rapidement que le gameplay semble intense. Et le niveau avec le sanglier se déplace dans la direction opposée - au lieu de déplacer un objet se déplaçant vers vous, vous sauterez vers les objets. C'est comme si vous étiez assis sur un sanglier et que vous ne pouviez pas contrôler sa vitesse. Il s'agit d'un porc sauvage et vous devez essentiellement vous déplacer vers la gauche et la droite, après quoi un niveau 3D plus ordinaire commence. Par exemple, à Insanity Beach, nous avons placé des murs de jungle pour rétrécir l'espace, pas complètement, mais partiellement. Il y a d'autres éléments qui permettent de le réduire, par exemple des ennemis, disons des crabes ou des mouffettes à ces niveaux,ils contournent le joueur sur le côté. Cela ne signifie pas que nous ne pouvons pas utiliser la nouvelle dimension si vous le souhaitez, car nous avons une boîte à gauche et une boîte à droite. Vous pouvez faire des choses intéressantes, par exemple, le joueur doit choisir de faire face à la menace et de passer à la boîte. Et si le joueur est à un niveau comme Hog Wild, nous l'avons fait exprès. Supposons que nous ayons un poteau avec des pointes et une boîte à gauche, et le chemin sans obstacles à droite. Par conséquent, afin de survivre plus facilement à cet obstacle, vous pouvez vous déplacer vers la droite et passer juste devant le pilier. Mais alors vous n'obtiendrez pas la boîte. Pour l'obtenir, vous devez vous déplacer vers le poste à la dernière seconde, puis glisser sur le côté. Autrement dit, le jeu donne au joueur un choix ou des éléments de calcul du temps, comme à certains niveaux du type 3D avec des galets roulants, suivis de niveaux avec des plates-formes. Le joueur doit sauter, mais vous pouvez alors augmenter la tension,provoquant l'effondrement de la plate-forme. La plate-forme, pour ainsi dire, a sa propre période de validité. Le joueur monte sur elle, elle bouge et tombe. Et nous avions également des niveaux d'un format différent, où nous avons de nouveau pris une dimension. Par exemple, dans le jeu, il existe de nombreux niveaux qui représentent par exemple un mur, c'est-à-dire qu'ils semblent se produire en 2D. Oui, vous pouvez vous déplacer sur le côté, mais nous avons déjà fait quelque chose comme un niveau 2D, en fixant la caméra de sorte qu'elle regarde de côté. Et il y avait un type de niveaux dans lesquels la caméra montait et Crash se déplaçait comme si le long d'une grille, mais il n'y avait presque aucun mouvement de haut en bas, et au lieu d'un espace ouvert, le joueur était sur des ponts sous lesquels il y avait une sorte de danger mortel.où nous avons de nouveau pris une dimension. Par exemple, dans le jeu, il existe de nombreux niveaux qui représentent par exemple un mur, c'est-à-dire qu'ils semblent se produire en 2D. Oui, vous pouvez vous déplacer sur le côté, mais nous avons déjà fait quelque chose comme un niveau 2D, en fixant la caméra de sorte qu'elle regarde de côté. Et il y avait un type de niveaux dans lesquels la caméra montait et Crash se déplaçait comme si le long d'une grille, mais il n'y avait presque aucun mouvement de haut en bas, et au lieu d'un espace ouvert, le joueur était sur des ponts sous lesquels il y avait une sorte de danger mortel.où nous avons de nouveau pris une dimension. Par exemple, dans le jeu, il existe de nombreux niveaux qui représentent par exemple un mur, c'est-à-dire qu'ils semblent se produire en 2D. Oui, vous pouvez vous déplacer sur le côté, mais nous avons déjà fait quelque chose comme un niveau 2D, en fixant la caméra de sorte qu'elle regarde de côté. Et il y avait un type de niveaux dans lesquels la caméra montait et Crash se déplaçait comme si le long d'une grille, mais il n'y avait presque aucun mouvement de haut en bas, et au lieu d'un espace ouvert, le joueur était sur des ponts sous lesquels il y avait une sorte de danger mortel.dans lequel la caméra montait et Crash se déplaçait comme si le long d'une grille, mais il n'y avait presque pas de mouvement de haut en bas, et au lieu d'un espace ouvert, le joueur était sur des ponts sous lesquels il y avait une sorte de danger mortel.dans lequel la caméra montait et Crash se déplaçait comme si le long d'une grille, mais il n'y avait presque pas de mouvement de haut en bas, et au lieu d'un espace ouvert, le joueur était sur des ponts sous lesquels il y avait une sorte de danger mortel.


Dans chacun de ces cas, nous avons aimé ajouter des restrictions ou des degrés de liberté inférieurs afin de réduire l'espace et d'augmenter l'intensité du gameplay. En raison de la dimension supplémentaire, le jeu est plus diversifié que le jeu 2D traditionnel, car à différents niveaux, nous supprimons différentes dimensions. Nous avions environ 7 à 10 stratégies différentes pour limiter les mesures. Les boîtes ont d'ailleurs été inventées afin de combler le vide. Il n'y a pas beaucoup d'ennemis à l'écran, car la machine n'aurait pas fait face à un grand nombre, mais nous avons activement rempli les espaces vides avec des tiroirs. De plus, ils peuvent se désagréger en piles entières et créer des puzzles; pour un objet aussi simple de seulement quelques polygones, il était incroyablement universel.

Nous étions sûrs que nous voulions créer le type d'animation qui n'a jamais été utilisé dans les jeux vidéo. Il était censé ressembler au style de Looney Tunes, une telle animation déformée. Il s'agit d'un style d'animation très élastique et caoutchouteux, mis en œuvre dans l'animation traditionnelle. Par conséquent, les personnages devaient en fait être animés. À l'ère des graphismes low-poly des années 90, les personnages étaient traditionnellement créés à partir d'un petit nombre d'os: l'humérus, l'os de l'avant-bras, l'os de la tête; tous les graphiques de la hanche droite du personnage étaient attachés à l'os de la cuisse droite. Et un os est un objet rigide, comme une charnière. Il peut être tourné ou déplacé. Cela rappelle un peu l'imitation d'un robot, et si vous avez besoin de doigts, vous devrez créer beaucoup d'os. Pour la PlayStation, c'est trop de calcul. Nous savions qu'elle ne ferait jamais face à un tas d'os.Et il aurait certainement été impossible de créer une animation de frapper la main avec un marteau, comme cela se produit dans les dessins animés. Que voyons-nous là-bas? La main gonfle comme une balle, ou aplatie en crêpe, ou quelque chose comme ça. Nous ne pouvions pas faire tout cela avec un seul système osseux. Dans des jeux comme Virtua Fighter, les machines d'arcade utilisaient le système osseux classique. Il était tout à fait adapté aux jeux de combat, car il n'y a pas tellement de déformations, mais les personnages avaient l'air un peu contraints. Utiliser des os est presque impossible ou très difficile à créer une animation faciale, et nous savions que nous voulions vraiment l'implémenter. Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?comme cela se passe dans les dessins animés. Que voyons-nous là-bas? La main gonfle comme une balle, ou aplatie en crêpe, ou quelque chose comme ça. Nous ne pouvions pas faire tout cela avec un seul système osseux. Dans des jeux comme Virtua Fighter, les machines d'arcade utilisaient le système osseux classique. Il était tout à fait adapté aux jeux de combat, car il n'y a pas tellement de déformations, mais les personnages avaient l'air un peu contraints. Utiliser des os est presque impossible ou très difficile à créer une animation faciale, et nous savions que nous voulions vraiment l'implémenter. Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?comme cela se passe dans les dessins animés. Que voyons-nous là-bas? La main gonfle comme une balle, ou aplatie en crêpe, ou quelque chose comme ça. Nous ne pouvions pas faire tout cela avec un seul système osseux. Dans des jeux comme Virtua Fighter, les machines d'arcade utilisaient le système osseux classique. Il était tout à fait adapté aux jeux de combat, car il n'y a pas tellement de déformations, mais les personnages avaient l'air un peu contraints. Utiliser des os est presque impossible ou très difficile à créer une animation faciale, et nous savions que nous voulions vraiment l'implémenter. Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?Dans des jeux comme Virtua Fighter, les machines d'arcade utilisaient le système osseux classique. Il était tout à fait adapté aux jeux de combat, car il n'y a pas tellement de déformations, mais les personnages avaient l'air un peu contraints. Utiliser des os est presque impossible ou très difficile à créer une animation faciale, et nous savions que nous voulions vraiment l'implémenter. Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?Dans des jeux comme Virtua Fighter, les machines d'arcade utilisaient le système osseux classique. Il était tout à fait adapté aux jeux de combat, car il n'y a pas tellement de déformations, mais les personnages avaient l'air un peu contraints. Utiliser des os est presque impossible ou très difficile à créer une animation faciale, et nous savions que nous voulions vraiment l'implémenter. Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?Quel personnage n'aime pas sourire ou faire un clin d'œil? Est-il même possible de réaliser une telle animation sur un poste de travail Silicon Graphics?

Jason a créé ce modèle Crash et était prêt à créer des animations de dessins animés sympas; il a découvert qu'il était vraiment possible de forcer PowerAnimator à le faire, car il avait des outils puissants comme les os et les poids de vertex, ainsi que des champs de distorsion. Mais la façon dont ils ont été mis en œuvre par PowerAnimator n'était pas jouable sur la PlayStation. Toutes ces choses utilisaient un équipement coûteux pour travailler avec la virgule flottante dans un poste de travail Silicon Graphics, et même elle ne pouvait pas les exécuter en temps réel. Elle a dû rendre des animations, et le jeu vidéo se déroule en temps réel. Il nous fallait du temps pour tout faire en 1/30 de seconde. Cela est devenu un autre problème sérieux, car nous voulions vraiment implémenter ces animations.

J'ai suggéré: eh bien, on peut lire les positions de tous les sommets. Si nous savons où se trouvent les positions de tous les sommets dans chaque image, le type d'os n'est pas important pour nous. Bien que SGI utilise au moins mille os, le principe sera le même. Nous dessinons simplement des polygones et des positions de sommets, et cela peut être fait assez rapidement. Nous n'avons pas à effectuer de calculs osseux, les ressources CPU ne seront donc pas dépensées pour les os. Mais avec une telle stratégie, le problème était que si nous avons une animation avec 30 images par seconde, et Crash se compose d'environ 500 sommets et quelque part autour de 600 polygones, nous devons alors stocker la position dans chaque image d'animation pour chaque sommet. Il s'agit d'une grande quantité de données. Mais en même temps, nous étions déjà fascinés par cette folle stratégie de mémoire avec une augmentation de trente fois la quantité de données, afin que nous puissions traiter un peu plus de données que les autres.Nous avons donc décidé de créer des données d'animation en utilisant tous les effets sophistiqués de Jason dans PowerAnimator. Alors je l'ai fait, et cela a fonctionné, car le kit de développement PlayStation avait quelque chose comme 8 ou 32 mégaoctets de mémoire. Par conséquent, il était possible d'autoriser un volume beaucoup plus important que celui qui serait disponible sur une vraie machine. Nous avons travaillé là-dessus pendant plusieurs mois, et je pensais constamment que d'une manière ou d'une autre, nous devions tout mettre en mémoire. Le volume était juste énorme. Cela doit être fait moins. Mais j'avais le sentiment qu'au sens mathématique, il n'y avait pas tellement de données que l'on pouvait écrire un algorithme de compression spécialisé. Comment comprendre cela: dans la théorie de l'informatique, les données ont un certain degré de complexité. Ils ont un schéma et des limites, et dans notre cas, ces animations peuvent bien subir la perte de leur part.Selon la même théorie, jpeg fonctionne, et c'est grâce à lui qu'il a complètement changé Internet et la façon dont les images sont stockées. Dans le cas de jpeg, nous convertissons l'image en une plage de fréquences, il s'agit d'une transformation mathématique complexe, puis nous jetons les déchets haute fréquence, les inversons et en fonction de la quantité de déchets jetés, l'image commence à paraître meilleure ou pire, mais elle contient toujours les parties les plus importantes, occupant 20 ou 30 fois moins d'espace, car nous nous sommes débarrassés d'informations sans importance. J'étais très sûr qu'avec les données des animations, la situation serait la même, que nous pouvons nous débarrasser des animations à haute fréquence, par exemple, aux sommets de la taille du personnage, car elles ne se déplacent pas beaucoup de haut en bas.Dans le cas de jpeg, nous convertissons l'image en une plage de fréquences, il s'agit d'une transformation mathématique complexe, puis nous jetons les déchets haute fréquence, les inversons et en fonction de la quantité de déchets jetés, l'image commence à paraître meilleure ou pire, mais elle contient toujours les parties les plus importantes, occupant 20 ou 30 fois moins d'espace, car nous nous sommes débarrassés d'informations sans importance. J'étais très sûr qu'avec les données des animations, la situation serait la même, que nous pouvons nous débarrasser des animations à haute fréquence, par exemple, aux sommets de la taille du personnage, car elles ne se déplacent pas beaucoup de haut en bas.Dans le cas de jpeg, nous convertissons l'image en une plage de fréquences, il s'agit d'une transformation mathématique complexe, puis nous jetons les déchets haute fréquence, les inversons et en fonction de la quantité de déchets jetés, l'image commence à avoir l'air meilleure ou pire, mais elle contient toujours les parties les plus importantes, occupant 20 ou 30 fois moins d'espace, car nous nous sommes débarrassés d'informations sans importance. J'étais très sûr qu'avec les données des animations, la situation serait la même, que nous pouvons nous débarrasser des animations à haute fréquence, par exemple, aux sommets de la taille du personnage, car elles ne se déplacent pas beaucoup de haut en bas.mais il contient toujours les parties les plus importantes, occupant 20 ou 30 fois moins d'espace, car nous nous sommes débarrassés d'informations sans importance. J'étais très sûr qu'avec les données des animations, la situation serait la même, que nous pouvons nous débarrasser des animations à haute fréquence, par exemple, aux sommets de la taille du personnage, car elles ne se déplacent pas beaucoup de haut en bas.mais il contient toujours les parties les plus importantes, occupant 20 ou 30 fois moins d'espace, car nous nous sommes débarrassés d'informations sans importance. J'étais très sûr qu'avec les données des animations, la situation serait la même, que nous pouvons nous débarrasser des animations à haute fréquence, par exemple, aux sommets de la taille du personnage, car elles ne se déplacent pas beaucoup de haut en bas.


Mark Zerny a écrit un programme d'analyse. Il a pris un ensemble d'animations et analysé chaque composant et chaque sommet, calculé une sorte de plage dynamique et l'ampleur des changements qui se sont produits entre les animations. Il a constaté que les informations changent en fait assez légèrement. Par conséquent, il s'est avéré que nous pouvons utiliser un algorithme très spécialisé qui détermine la plage et tout le reste, et crée également une carte au début, dans laquelle, par exemple, il est écrit que la coordonnée Y du sommet numéro sept contient peu d'informations, il n'a donc besoin que de deux bits. Qu'elle se déplace dans une telle plage et qu'elle a besoin de tant de bits. En fin de compte, nous avons obtenu un taux de compression quelque part dans la plage de 50 à 81, c'est-à-dire que les données sont devenues 50 fois plus petites.


Si vous regardez la conception de la PlayStation 1, malgré la conception et l'équilibre corrects, la machine n'avait que deux mégaoctets de RAM et un mégaoctet de VRAM. Mais elle avait également un lecteur de CD, qui pouvait stocker jusqu'à 640 mégaoctets de données pour la lecture, et c'est bien plus encore. Ce ratio est très élevé. Autrement dit, il était théoriquement possible de faire des niveaux beaucoup plus de deux mégaoctets. Comme dans un jeu normal, disons dans Twisted Metal, vous arrivez au niveau Tour Eiffel et le jeu charge le niveau Tour Eiffel dans un mégaoctet de mémoire. Ils ont une certaine quantité de graphiques et d'animations, occupant environ un mégaoctet. Maintenant, vous pouvez trouver différentes méthodes de compression de données, mais il n'y a aucun moyen de contourner cette limitation, et les gens n'ont pas vraiment essayé. Donc, en principe, tout fonctionnait. Un ordinateur, c'est-à-dire CPU et GPU, ne pouvait accéder qu'àce qui est actuellement en mémoire. Toutes les 1/30 de seconde en mémoire, il y a ce dont vous avez besoin pour rendre le cadre. Tout ce que vous dessinerez maintenant, toute animation et tout son qui seront utilisés maintenant, doivent être en mémoire, car vous pouvez accéder rapidement à la mémoire. Un lecteur de CD prend environ 1/3 de seconde pour déplacer la tête à n'importe quel point du CD. Le chargement des données prend un certain temps. Il peut télécharger un mégaoctet en six secondes environ. Par conséquent, vous ne pouvez pas simplement dessiner une image et commencer à télécharger un nouveau mégaoctet à partir du disque, car cela prend encore huit secondes pour l'obtenir. Et que ferez-vous - attendre huit secondes entières? Cela peut être fait entre les niveaux. Par conséquent, lorsque vous passez d'un niveau à l'autre dans un jeu normal, un écran de chargement s'affiche lorsqu'il lit un mégaoctet entier, ou combien il en a besoin, à partir du disque.Le CD est un lecteur plus «distant». Il est plus grand, mais aussi plus lent. Utilisez-le plus longtemps, mais pourquoi ne pas l'utiliser? Il l'est, après tout. Dans les premiers jeux PlayStation, les développeurs ont créé des niveaux d'un ou deux mégaoctets, et 640 mégaoctets peuvent être enregistrés sur un CD, c'est-à-dire que 300 niveaux peuvent y être enregistrés. Avaient-ils 300 niveaux? Non, sinon il faudrait dix ans pour créer le jeu. Par conséquent, les CD étaient pour la plupart vides ou remplis de musique ou de vidéo, car il s'agit de données volumineuses. Mais très souvent, les disques étaient simplement vides. Des jeux comme Twisted Metal ne pouvaient occuper que 50 mégaoctets d'espace disque. Par conséquent, les niveaux de tant de jeux semblent occuper environ un mégaoctet, enfin, peut-être un mégaoctet et demi. C'était assez. Tant de jeux ont été créés pour la PlayStation, mais dans ma théorie, nous n'avions pas à nous en tenir à cela.


Mon idée était d'utiliser des techniques sophistiquées de mémoire virtuelle pour remplacer les blocs de données. Par exemple, si un niveau prend 30 mégaoctets, à un moment donné, nous pouvons avoir besoin d'un seul mégaoctet, mais le niveau entier est en réalité de 30 mégaoctets. J'ai décidé de diviser le niveau entier en pages de 64 Ko, en créant des blocs de données à partir de celles-ci. Ils peuvent être quelque chose de significatif, par exemple, une animation de crash, son code ou une partie de l'arrière-plan. Les blocs doivent être inférieurs à 64 Ko, nous les poussons dans une page jusqu'à ce qu'elle soit presque complètement remplie, mais ils ne peuvent pas être divisés en plusieurs pages, ou vous devez diviser les blocs en blocs encore plus petits. Lorsqu'un niveau comprend 30 mégaoctets de pages, 16 à 18 pages peuvent tenir en mémoire. Le problème est que si je peux distribuer les blocs de niveau de cette manièrede sorte qu'à aucun moment du niveau, je n'aurai jamais besoin de plus de 16 pages de données; il était également possible de prendre un bloc, de le dupliquer sur plusieurs pages, si cela pouvait aider à mieux fonctionner dans tout le système. Le jeu à l'avance, mais détermine constamment les pages qu'il chargera si le joueur se déplace dans l'une des manières, rejette les anciennes pages dont il n'a pas besoin, en chargeant les autres à leur place. N'importe quelle page peut remplacer n'importe quelle autre, si nous n'avons jamais besoin de plus de 16 pages actives à la fois. Toutes les textures de Crash sont suffisamment nettes et avec de nombreuses couleurs, et les textures de Tomb Raider semblent floues et pixélisées, car il y a peu de mémoire allouée pour elles. Les développeurs n'avaient pas de place pour stocker des textures supplémentaires. Et pour cela, nous avions 20-30 fois plus d'espace. Ou prenez le nombre de polygones par niveau.Des jeux comme Tomb Raider ont l'air très cubiques, avec des couloirs carrés, et Crash a des formes folles et bien plus encore, car nous avions beaucoup plus de polygones. Il existe de nombreuses autres technologies qui remplissent cette fonction, mais la mémoire est très importante. Grâce à cela, j'ai obtenu tout un tas de brevets parce que j'étais l'une des premières personnes à avoir compris comment utiliser l'espace sur un CD ou un disque en tant que partie dynamique du jeu pour l'étendre. Aujourd'hui, cela arrive tout le temps.qui savent comment utiliser réellement l'espace sur un CD ou un disque comme une partie dynamique du jeu pour l'étendre. Aujourd'hui, cela arrive tout le temps.qui savent comment utiliser réellement l'espace sur un CD ou un disque comme une partie dynamique du jeu pour l'étendre. Aujourd'hui, cela arrive tout le temps.


Je crois que l'une des leçons les plus importantes de Crash Bandicoot a été que les jeux peuvent avoir leur propre personnalité stylistique et leur style artistique. Et oui, dans une certaine mesure, d'autres l'ont déjà fait. En fin de compte, Mario a son propre style, qui a largement déterminé le style des jeux vidéo du passé. Mais Crash a son propre monde holistique avec des emprunts évidents au style des dessins animés américains. Et tous les produits Crash (je veux dire les quatre premiers jeux) ont adhéré à ce style. Il est toujours intéressant de jouer dans les versions originales et elles semblent assez bonnes même sur la PlayStation 1, car un tel style dépasse les limites de pixels. Au début du développement, nous avions un demi-espoir, un demi-sens complètement arrogants: un facteur important dans le choix de la PlayStation était que Nintendo a Mario,et Sega a Sonic. Et Sony, semble-t-il, n'a pas encore de mascotte, donc si nous créons un jeu avec un personnage similaire à une mascotte, nous n'aurons pas de concurrents. Et Sony était vraiment immédiatement intéressé, ils voulaient ce jeu. Nous devions nous assurer qu'il n'apparaisse que sur la PlayStation. Nous avons délibérément décidé de créer une telle situation, puis avons exploré nos possibilités. Mais le fait que cela ait fonctionné était un miracle. Nous rêvions que Crash deviendrait une mascotte. Mais même lorsque Sony a accepté de coopérer, elle ne l'a jamais officialisée - ils ont dit que ce n'était pas une mascotte, qu'ils n'avaient pas de mascotte, mais tout le monde la considérait comme une mascotte, et la société l'a tellement soutenue qu'elle a même acheté les droits d'Universal.Et Sony était vraiment immédiatement intéressé, ils voulaient ce jeu. Nous devions nous assurer qu'il n'apparaisse que sur la PlayStation. Nous avons délibérément décidé de créer une telle situation, puis avons exploré nos possibilités. Mais le fait que cela ait fonctionné était un miracle. Nous rêvions que Crash deviendrait une mascotte. Mais même lorsque Sony a accepté de coopérer, elle ne l'a jamais officialisée - ils ont dit que ce n'était pas une mascotte, qu'ils n'avaient pas de mascotte, mais tout le monde la considérait comme une mascotte, et la société l'a tellement soutenue qu'elle a même acheté les droits d'Universal.Et Sony était vraiment immédiatement intéressé, ils voulaient ce jeu. Nous devions nous assurer qu'il n'apparaisse que sur la PlayStation. Nous avons délibérément décidé de créer une telle situation, puis avons exploré nos possibilités. Mais le fait que cela ait fonctionné était un miracle. Nous rêvions que Crash deviendrait une mascotte. Mais même lorsque Sony a accepté de coopérer, elle ne l'a jamais officialisée - ils ont dit que ce n'était pas une mascotte, qu'ils n'avaient pas de mascotte, mais tout le monde la considérait comme une mascotte, et la société l'a tellement soutenue qu'elle a même acheté les droits d'Universal.Mais même lorsque Sony a accepté de coopérer, elle ne l'a jamais officialisée - ils ont dit que ce n'était pas une mascotte, qu'ils n'avaient pas de mascotte, mais tout le monde la considérait comme une mascotte, et la société l'a tellement soutenue qu'elle a même acheté les droits d'Universal.Mais même lorsque Sony a accepté de coopérer, elle ne l'a jamais officialisée - ils ont dit que ce n'était pas une mascotte, qu'ils n'avaient pas de mascotte, mais tout le monde la considérait comme une mascotte, et la société l'a tellement soutenue qu'elle a même acheté les droits d'Universal.


Les ventes de Crash Bandicoot ont bien commencé, mais elles ont continué. Crash Bandicoot a été le premier jeu à se vendre mieux au cours de la deuxième année de vente, et peut-être au cours de la troisième, et je suis sûr que lorsque nous avons sorti Crash Team Racing la semaine avant Noël, Crash Bandicoot l'a dépassé et a vendu plus d'exemplaires qu'il n'en a vendu pour tout le temps précédent. Tout d'abord, c'était un jeu attrayant pour un très large public; tout le monde, d'un enfant à un hardcore gamer, pouvait y jouer. Cela n'avait pas beaucoup de cruauté, mais les personnages fascinaient, elle était drôle, et le gameplay était assez intense et en même temps abordable. Vous pouvez simplement vous asseoir et commencer à jouer, et pour nous, c'était l'un des objectifs les plus importants. Je ne voulais pas créer un jeu auquel je devais trop penser. Crash Bandicoot est devenu un atelier de forgerondans lequel la philosophie de Naughty Dog a été forgée: chaque élément qui entre dans le jeu doit être génial, parce que nous voulions créer un jeu vraiment génial, un jeu qui deviendra un hit, un classique, et pour y parvenir, nous avons décidé qu'il devait être génial c'est tout, mais la meilleure technologie est nécessaire pour réaliser cela. Meilleure est la technologie, meilleur sera le jeu et l'apparence. Si vous implémentez tout cela correctement, vous pouvez dépasser la médiocrité et créer un chef-d'œuvre de jeu.mieux le jeu se sentira et aura l'air. Si vous implémentez tout cela correctement, vous pouvez dépasser la médiocrité et créer un chef-d'œuvre de jeu.mieux le jeu se sentira et aura l'air. Si vous implémentez tout cela correctement, vous pouvez dépasser la médiocrité et créer un chef-d'œuvre de jeu.

All Articles