Cómo Crash Bandicoot hackeó Playstation


Andy Gavin, de Naughty Dog, habla sobre la gestión de la memoria de los 90 y las animaciones en 3D.

“La memoria en Crash Bandicoot era tan escasa que tuve que robar pequeños pedazos de memoria extra de las bibliotecas de Sony. Solo traté de eliminar esas partes que, como me pareció, no las usé, y verifiqué si todo sigue funcionando. Si todo funcionó, entonces los marqué como libres e hice pirateos de su código, cambiando los códigos de bytes. Pensé: puedo hacerlo, si Sony no quiere arreglarlo yo mismo, entonces solo cambio su código. Era memoria libre. [risas] La memoria era limitada. Pero nadie nos permitió absolutamente hacer esto ”.

Hola, soy Andy Gavin, cofundador de Naughty Dog Inc y programador principal de Crash Bandicoot. Decidimos crear el primer juego de plataformas de acción con un personaje tridimensional, y para hacer todo bien, literalmente tuvimos que hackear el equipo.

Eso fue parte de la filosofía de Naughty Dog de hacer todo lo posible, utilizando cada ciclo de CPU o GPU, cada byte de memoria. Si existía tal oportunidad en el automóvil, entonces tratábamos de descubrir cómo aprovecharlo al máximo, independientemente de si nos era útil o no, y si usaríamos algunos trucos locos. En el verano de 1994, mi compañero Jason Rubin y yo completamos un juego de lucha 3DO llamado Way of the Warrior y pensamos en qué juego queremos hacer a continuación. El género más popular en las consolas en ese momento eran los juegos de plataformas de acción, como Super Mario World y todo tipo de otros clásicos de los juegos de plataformas de 16 bits. Al mismo tiempo, aparecieron nuevos equipos 3D en máquinas recreativas y algunos géneros comenzaron la transición del tradicional 2D al 3D.


Juegos como Street Fighter II y Mortal Kombat todavía estaban en su apogeo, pero Virtua Fighter ya había aparecido. Usó gráficos en 3D, fue genial y se hizo evidente que los juegos se moverían de esta manera. Las nuevas consolas funcionarán en 3D. ¿Puedo crear un juego de plataformas en 3D? Nadie ha hecho esto todavía, pero estaba a punto de suceder. Piense en cómo Sonic vuela a través de bucles de tubería en 3D. ¿Cómo se verá? Hasta el otoño de 1994, Naughty Dog consistía solo en nosotros, Jason y Andy, formando una verdadera sinergia. Ambos tratamos todos los aspectos creativos, éramos mejores amigos, compañeros de cuarto, Jason era un artista fenomenal y yo era un programador de juegos, y creo que es bastante bueno. [risas] De nosotros dos, él trató de hacer que el juego se viera increíble, y yo intenté que la tecnología funcionara,y los dos nos esforzamos por hacer que el juego sea realmente divertido. Jason y yo vendimos los derechos de Way of the Warrior a una nueva división de Universal Studios llamada Universal Interactive. De hecho, nos dijeron: ven a California, detente en el local de Universal al lado de Steven Spielberg, te daremos un bungalow y todo lo que necesitas de forma gratuita. Puedes hacer lo que quieras, solo tienes que mostrárnoslo. Tomamos al perro, un perro llamado Naughty Dog Morgan, subimos a mi Honda Accord y condujimos por el país, así que tuvimos mucho tiempo para hablar. Discutimos: ¿cómo se verá el juego de plataformas en 3D?venga a California, pare en el local de Universal al lado de Steven Spielberg, le daremos un bungalow y todo lo que necesita de forma gratuita. Puedes hacer lo que quieras, solo tienes que mostrárnoslo. Tomamos al perro, un perro llamado Naughty Dog Morgan, subimos a mi Honda Accord y condujimos por el país, así que tuvimos mucho tiempo para hablar. Discutimos: ¿cómo se verá el juego de plataformas en 3D?venga a California, pare en el local de Universal al lado de Steven Spielberg, le daremos un bungalow y todo lo que necesita de forma gratuita. Puedes hacer lo que quieras, solo tienes que mostrárnoslo. Tomamos al perro, un perro llamado Naughty Dog Morgan, subimos a mi Honda Accord y condujimos por el país, así que tuvimos mucho tiempo para hablar. Discutimos: ¿cómo se verá el juego de plataformas en 3D?

Discutimos algo como los juegos de Sonic the Hedgehog. Imagine que está recorriendo, corriendo y saltando en plataformas y recolectando objetos en 3D. La cámara siempre está detrás del jugador. Ves el mundo y todo se ve genial, pero es como un juego sobre el culo de Sonic. Todo lo que haces es mirar el culo de Sonic. Pero el personaje es más expresivo cuando lo vemos al frente. ¿Es posible hacer niveles donde el jugador se mueve hacia la cámara? ¿Pero cómo ver hacia dónde corre? De hecho, tales reflexiones nos llevaron gradualmente a los niveles de adoquines de Crash Bandicoot. ¿Debería haber niveles en los que el jugador se mueve lateralmente, debería mirar por encima del hombro a la pantalla? Simultáneamente diseñamos el juego, que se convertirá en Crash Bandicoot, y al mismo tiempo, como si eligiéramos una plataforma para él.

Sabíamos que, dado que será un juego en 3D, necesitaremos una de las nuevas plataformas de 32 bits. Entonces, había 3DO, para el cual ya hicimos un juego, pero este auto era como una curva, la mitad de una máquina 3D. Además, era muy costoso y no se vendía muy bien. También estaba Atari Jaguar. Lo consideramos un malentendido. Y había muchachos serios a punto de lanzar autos nuevos. Sabíamos sobre un misterioso auto de Nintendo, pero no pudimos descubrir qué cocinaba Nintendo. No se comunicaron con los estadounidenses en absoluto. Sega tenía dos proyectos. Ella tenía 32X, cuyo lanzamiento comenzó ese otoño; se suponía que debía fortalecer las capacidades de Génesis. Además, ella creó un auto nuevo; No recuerdo si ya se llamaba Saturno, pero como resultado se convirtió en Saturno. Y también había un caballo oscuro Sony. Esta compañía nunca ha hecho videojuegos antes.Escuchamos que ella tiene una máquina nueva y poderosa, así que contactamos a Sega y Sony y estudiamos la información que nos dieron. Para llegar a un acuerdo con ellos, tenías que poner tu alma y tu primogénito, después de lo cual puedes pedir autos si les das una promesa y todo eso. Y Sony tenía un auto nuevo, como en 3D. También hizo un buen trabajo con 2D, y era una nueva arquitectura clara, muy similar a los equipos 3D comerciales de alta gama como Silicon Graphics, pero con muchas simplificaciones que hicieron que la consola fuera más económica; PlayStation 1 tenía dos chips especializados principales: un módulo de gráficos y una CPU especialmente diseñada con arquitectura MIPS. Pero las GPU modernas son mucho más complejas y realizan un montón de cálculos que las antiguas GPU de los 90 no eran capaces de hacer.La GPU PlayStation 1 simplemente renderizó triángulos en la pantalla, pero funcionó bastante bien. Podía dibujar unos 120,000 triángulos por segundo, lo que en ese momento era fenomenal. En la PC de esa época no había equipos para gráficos 3D. Tenían placas VGA. Tendría suerte si pudiera obtener un par de cientos de polígonos, porque todos los cálculos se realizaron mediante programación. Y había una PlayStation que costaba 199 o 299 dólares.

- 299.

- Y era una máquina terminada con una unidad de CD, memoria y todo lo necesario. La diferencia entre consolas y PC en ese momento era enorme. Estamos hablando de los tiempos de Windows 3.1 y DOS. Para iniciar el juego, generalmente necesitabas tener un disco de arranque con autoexec.bat y config.sys especiales, que tenían que abrirse en la máquina. El mundo de la PC no era muy amigable con los juegos en ese momento. Y en PlayStation o Genesis o Super Nintendo, fue suficiente con insertar un cartucho o CD, y el boom, todo cargado. Sobre todo me gustó Sony. Ella era genial, clara, poderosa y pensaba para 3D. Realmente pensé que esta es la única de las máquinas que podría resistir nuestro plan.

La idea básica de Crash Bandicoot como juego era que debería tener mecánica, como en un juego como Donkey Kong Country. El jugador tuvo que pasar por niveles de cuenta regresiva, enemigos y saltos. Tenía que ser una plataforma con un personaje animal de dibujos animados, y no queríamos que se pareciera mucho a un videojuego. Queríamos que fuera como la caricatura de Looney Tunes, donde el personaje está bien animado y se mueve sin problemas. Si fue aplastado por una enorme piedra rodante, se convirtió en un panqueque plano y rodante. Queríamos crear un mundo similar al animado, con la emotividad de las películas animadas clásicas, que luego fue redescubierta por series de televisión como Duck Tales y The Simpsons. La animación se volvió genial otra vez. Y hubo Crash en el cuadro, teníamos 30 cuadros por segundo y alrededor de 1.500 polígonos en la pantalla.600 de ellos fueron ocupados por Crash. Así de importante era para nosotros. La mayoría de los juegos usaban alrededor de 80 polígonos y los personajes parecían extraños bloques para caminar. Queríamos que se viera como un verdadero personaje de dibujos animados. Esto requirió muchos detalles, por lo que eliminó un tercio de nuestro presupuesto de vertedero.


Creando Crash, inventamos constantemente algo nuevo. Nadie ha hecho aún un juego en 3D en el género de plataformas de acción. Al mismo tiempo, estaba claro que las PC que se usaban comúnmente para desarrollar juegos no lo harían. Repito, luego llegó el momento de Windows 3.1, la falta de gráficos 3D y, de hecho, solo 640 KB de RAM disponibles. Nos aventuramos a comprar empresas para todos, y luego éramos cinco, estaciones de trabajo de Silicon Graphics, principalmente Indigo2 Extremes. Estaciones de trabajo a un precio de 75 a 100 mil dólares. Tenían gráficos en 3D. El software para crear gráficos en 3D también cuesta alrededor de 75 mil por automóvil. Poco antes de eso, se crearon películas como Terminator 2, Abyss y Jurassic Park en dicho software. Por lo tanto, decidimos elegir Alias ​​PowerAnimator como software,que en ese momento era una de las tres opciones posibles [risas].

Entonces, obtuvimos una gran caja torpe, un prototipo temprano de PlayStation, y resultó ser una máquina bastante buena. Pero primero necesitas entender algo. Llegó con un montón de manuales que resultaron estar increíblemente mal traducidos de textos crípticos japoneses. Tuvimos discusiones sorprendentes de lo que querían decir con este o aquel divertido conjunto de palabras en inglés. Para entenderlo realmente, tuvimos que probar todo empíricamente. Tomamos partes individuales y escribimos un código de prueba para realizar una determinada acción con la máquina y ver cómo funciona. Esto es similar a cómo maneja un automóvil en una pista de carreras y verifica qué tan rápido puede girar. La consola tenía muchos modos gráficos diferentes, por ejemplo, operación a media velocidad en modo de alta resolución;sin embargo, el modo de resolución media obviamente se inventó en el último momento, porque funcionaba a la misma velocidad que el modo de baja resolución. Jason ya había creado el personaje Crash Bandicoot, que se veía casi igual que en el juego, así que lo traje a la pantalla y lo redujimos al tamaño que cabría en la pantalla. Escribí un código para calcular la cantidad de píxeles ocupados por cada polígono, y resultó que en promedio era de 1.2 píxeles. Por lo tanto, sugerí: ¿por qué necesitamos texturizar estos polígonos? Decidimos que no usaríamos el modo de textura para los personajes. Usaremos un modo más rápido y fácil al sombrear, que la mayoría de los desarrolladores no usan. La mayoría solo usa texturas. Y en parte esto se debió al hecho de que realizamos pruebas y encontramosque en modo sin textura, el juego corre el doble de rápido. Si los desarrolladores no realizaron pruebas y creyeron los números de las instrucciones, entonces recibieron un número. Y descubrimos que la PlayStation en realidad puede dibujar una cantidad bastante decente de polígonos por segundo en equipos gráficos, pero necesitamos realizar cálculos para saber dónde deben ubicarse estos polígonos.


Hoy en día, casi todas las computadoras e incluso los teléfonos tienen potentes GPU de bloque de vértice, y pueden realizar una gran cantidad de cómputo, a menudo gigaflops de multiplicaciones de suma. Y en ese momento, la mayoría de las computadoras podían realizar multiplicaciones y sumas en la CPU de una en una, por lo que lograron hacer cientos o miles, pero no miles de millones de cálculos. Este fue un serio obstáculo.

El problema fundamental con la PlayStation era que la interacción del hardware y el software desde un punto de vista matemático no era ideal. Parecíamos entender que el problema era el software, que Sony simplemente quería usar las bibliotecas que escribió, pero que no operaba la máquina al máximo. En algún lugar adentro, los diseñadores agregaron equipos diseñados para resumir las multiplicaciones, porque se necesitan millones de tales operaciones, pero todo esto estaba oculto bajo una capa de bibliotecas de lenguaje C escritas por Sony: les pasaste números, realizaron sumas de multiplicación, pero el rendimiento fue terrible. Aunque la unidad gráfica podía dibujar entre 100 y 120 mil polígonos por segundo, las bibliotecas lograron transformar las matemáticas, quizás entre 5 y 10 mil, lo que claramente no era suficiente.Es decir, si prueba el rendimiento básico de las matemáticas de vértices en PlayStation 1, usando las instrucciones oficiales de Sony y llamando a las bibliotecas de gráficos, podría perder un orden de magnitud completo, use hierro por décima parte. El código simplemente no funcionó lo suficientemente rápido.


Hicimos casi lo mismo que cualquier buen científico haría: desarmamos el sistema y nos dimos cuenta de que hay suficiente energía adentro, pero la consola nos lo oculta. En el caso de este problema específico, a través de mis amigos de Sony, propuse una solución creativa: intercambiamos dos hojas de papel, entregándolas en persona. "No te he dicho nada". [risas] Pero en realidad fue suficiente. Simplemente trabajamos sistemáticamente en todo esto, y resultó que dentro de la CPU Sony especialmente diseñada hay un "cerebro" matemático llamado coprocesador, capaz de realizar los cálculos muy altamente especializados y limitados necesarios para transformar los vértices. Y logra ejecutarlos a una velocidad tal que la GPU puede consumir estos datos.Casi cualquier equipo de juego especializado desde la época de las máquinas recreativas siempre ha tenido dos "cerebros" principales: un módulo de gráficos y una CPU. Las viejas CPU procesaron números únicos y esto les permitió hacer todo lo que las computadoras son capaces de hacer, pero al mismo tiempo solo podían "pensar" un pensamiento. El módulo de gráficos proporcionó una forma de renderizar hardware de gráficos. En los primeros juegos de los 80, incluso en juegos tan simples como Galaga, donde solo tenías que disparar a naves alienígenas, este gráfico se llamaba sprites. En ese momento, las CPU no podían renderizar sprites. Se inventaron pequeños módulos gráficos capaces de crear sprites y desplazar el fondo. De hecho, todas las tecnologías de gráficos por computadora han evolucionado gracias a los videojuegos. Pero siempre tenías que mantener el equilibrio entre el cerebro gráfico y el cerebro en estas máquinas,dedicado a las matemáticas generales. Hoy en día, las GPU a veces pueden realizar miles de las mismas operaciones y, por lo tanto, la potencia de procesamiento de la GPU es mucho mayor que la de la CPU. Tienen muchos gigaflops, a veces incluso teraflops. No realizan cálculos generales.


Déjame explicarte la jugabilidad en un juego de plataformas en 2D. Tome Donkey Kong Country. Un jugador puede moverse hacia adelante y hacia atrás en un nivel, es decir, izquierda y derecha, saltar hacia arriba y hacia abajo plataformas, pero en esencia el juego es lineal. Por lo general, te mueves hacia la derecha y encuentras obstáculos. Todo se reduce al principio que apareció en Pitfall en 1980. Puedes balancearte en la enredadera para saltar sobre los picos. Los monstruos pueden recorrer las plataformas y las abejas vuelan sobre ellas. El juego se está desarrollando linealmente. Ves hacia dónde te mueves, y el juego es muy rápido. Jump-jump-kick, jump-jump-kick. Por lo tanto, va bien con 2D. El diseñador mide casi el ritmo musical del juego, y gracias a esto, estos juegos son muy emocionantes y adictivos. Estás entendiendo mejor el juego, primero aprende los conceptos básicos de administración, conviértete en Donkey Kong,luego estudias los movimientos de enemigos y objetos a nivel, recuerda la ruta. Es como tocar música en un juego de ritmo. Pero en 3D, todo es diferente. Hemos agregado una nueva dimensión. Ahora puedes moverte de lado a lado. Si tienes tres tortugas llegando a Donkey Kong Country o Mario, entonces debes saltar sobre ellas o saltar sobre sus cabezas para derribar a las tres una por una. En 3D, simplemente puede moverse hacia la derecha y pasar silenciosamente alrededor de ellos. Hemos agregado una dimensión completamente nueva del espacio, y el espacio se ha vuelto demasiado. Esto pareció cambiar el equilibrio entre elección y conflicto. Tuvimos que descubrir cómo compensar esto para mantener el curso activo del juego. Nos dimos cuenta de que habíamos agregado una nueva dimensión, por lo que sería más fácil restarla, pero restar diferentes dimensiones. Supongamos que esto estuviera en los niveles con adoquines. Mediciónque en realidad tomamos había tiempo.

Esta no es una de las tres dimensiones espaciales. Debido al peligro del nivel (la piedra te aplastará si no te mueves, te mueves, te mueves constantemente), no tienes el lujo de elegir otras dimensiones, por lo que te hace moverte a lo largo de un pasillo estrecho tan rápido que el juego se siente intenso. Y el nivel con el jabalí se mueve en la dirección opuesta: en lugar de mover un objeto que se mueve hacia ti, saltarás hacia los objetos. Es como si estuviera sentado en un jabalí y no puede controlar su velocidad. Este es un cerdo salvaje y básicamente debes moverte hacia la izquierda y hacia la derecha, después de lo cual comienza un nivel 3D más común. Por ejemplo, en Insanity Beach, colocamos muros de jungla para estrechar el espacio, no completamente, sino parcialmente. Hay otros elementos que permiten reducirlo, por ejemplo, enemigos, por ejemplo, cangrejos o zorrillos en estos niveles,evitan al jugador en el costado. Esto no significa que no podamos usar la nueva dimensión si lo deseamos, porque tenemos un cuadro a la izquierda y un cuadro a la derecha. Puedes hacer cosas interesantes, por ejemplo, el jugador debe elegir si enfrenta la amenaza y pasar a la casilla. Y si el jugador está en un nivel como Hog Wild, entonces lo hicimos a propósito. Supongamos que tenemos un poste con púas y una caja a la izquierda, y el camino sin obstáculos a la derecha. Por lo tanto, para sobrevivir más fácilmente a este obstáculo, puede moverse hacia la derecha y simplemente pasar el pilar. Pero entonces no obtendrás la caja. Para obtenerlo, debes moverte a la publicación en el último segundo y luego deslizarte hacia un lado. Es decir, el juego le da al jugador una opción o elementos de cálculo de tiempo, como en algunos niveles del tipo 3D con adoquines rodantes, seguido de niveles con plataformas. El jugador necesita saltar, pero luego puedes aumentar el voltaje,provocando el colapso de la plataforma. La plataforma, por así decirlo, tiene su propio período de validez. El jugador se sube sobre ella, y ella se mueve y cae. Y también teníamos niveles de un formato diferente, donde nuevamente tomamos una dimensión. Por ejemplo, en el juego hay muchos niveles que representan, por ejemplo, un muro, es decir, parecen ocurrir en 2D. Sí, puede moverse hacia un lado, pero ya hicimos algo así como un nivel 2D, arreglando la cámara para que se vea desde el lado. Y había un tipo de niveles en el que la cámara subía y Crash se movía como si fuera una cuadrícula, pero casi no había movimiento hacia arriba y hacia abajo, y en lugar de espacio abierto, el jugador estaba en puentes bajo los cuales hay algún tipo de peligro mortal.donde nuevamente tomamos una dimensión. Por ejemplo, en el juego hay muchos niveles que representan, por ejemplo, un muro, es decir, parecen ocurrir en 2D. Sí, puede moverse hacia un lado, pero ya hicimos algo así como un nivel 2D, arreglando la cámara para que se vea desde el lado. Y había un tipo más de niveles en los que la cámara subía y Crash se movía como si fuera una cuadrícula, pero casi no había movimiento hacia arriba y hacia abajo, y en lugar de espacio abierto, el jugador estaba en puentes bajo los cuales hay algún tipo de peligro mortal.donde nuevamente tomamos una dimensión. Por ejemplo, en el juego hay muchos niveles que representan, por ejemplo, un muro, es decir, parecen ocurrir en 2D. Sí, puede moverse hacia un lado, pero ya hicimos algo así como un nivel 2D, arreglando la cámara para que se vea desde el lado. Y había un tipo de niveles en el que la cámara subía y Crash se movía como si fuera una cuadrícula, pero casi no había movimiento hacia arriba y hacia abajo, y en lugar de espacio abierto, el jugador estaba en puentes bajo los cuales hay algún tipo de peligro mortal.en el que la cámara subió y Crash se movió como si fuera una cuadrícula, pero casi no hubo movimiento hacia arriba y hacia abajo, y en lugar de espacio abierto, el jugador estaba en puentes bajo los cuales había algún tipo de peligro mortal.en el que la cámara subió y Crash se movió como si fuera una cuadrícula, pero casi no hubo movimiento hacia arriba y hacia abajo, y en lugar de espacio abierto, el jugador estaba en puentes bajo los cuales había algún tipo de peligro mortal.


En cada uno de estos casos, nos gustó agregar restricciones o menores grados de libertad para reducir el espacio y aumentar la intensidad del juego. Debido a la dimensión adicional, el juego es más diverso que el juego 2D tradicional, porque a diferentes niveles eliminamos diferentes dimensiones. Teníamos alrededor de 7-10 estrategias diferentes para limitar las mediciones. Las cajas también fueron inventadas para llenar el vacío. No hay muchos enemigos en la pantalla, porque la máquina no habría hecho frente a un gran número, pero llenamos activamente los espacios vacíos con cajones. Además, pueden desmoronarse en pilas enteras y crear rompecabezas; para un objeto tan simple de solo unos pocos polígonos, era increíblemente universal.

Estábamos seguros de que queríamos crear el tipo de animación que nunca se usó en los videojuegos. Se suponía que debía parecerse al estilo de Looney Tunes, una animación tan deformada. Este es un estilo de animación muy elástico y elástico, implementado en la animación tradicional. Por lo tanto, los personajes realmente necesitaban ser animados. En la era de los gráficos de baja poli de los años 90, los personajes se creaban tradicionalmente a partir de una pequeña cantidad de huesos: el húmero, el hueso del antebrazo, el hueso de la cabeza; Todos los gráficos de la cadera derecha del personaje estaban unidos al hueso del muslo derecho. Y un hueso es un objeto rígido, como una bisagra. Se puede girar o mover. Es algo que recuerda una imitación de un robot, y si necesita dedos, tendrá que crear muchos huesos. Para PlayStation, esto es demasiado cálculo. Sabíamos que ella nunca haría frente a un montón de huesos.Y ciertamente habría sido imposible crear una animación de golpear la mano con un martillo, como sucede en los dibujos animados. ¿Qué vemos allí? La mano se hincha como una pelota, o se aplana en un panqueque, o algo así. No podríamos hacer todo esto con un solo sistema óseo. En juegos como Virtua Fighter, las máquinas recreativas usaban el clásico sistema óseo. Era bastante adecuado para los juegos de lucha, porque no hay tantas deformaciones, pero los personajes parecían un poco limitados. Usar huesos es casi imposible o muy difícil de crear animación facial, y sabíamos que realmente queríamos implementarlo. ¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?como sucede en los dibujos animados ¿Qué vemos allí? La mano se hincha como una pelota, o se aplana en un panqueque, o algo así. No podríamos hacer todo esto con un solo sistema óseo. En juegos como Virtua Fighter, las máquinas recreativas usaban el clásico sistema óseo. Era bastante adecuado para los juegos de lucha, porque no hay tantas deformaciones, pero los personajes parecían un poco limitados. Usar huesos es casi imposible o muy difícil de crear animación facial, y sabíamos que realmente queríamos implementarlo. ¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?como sucede en los dibujos animados ¿Qué vemos allí? La mano se hincha como una pelota, o se aplana en un panqueque, o algo así. No podríamos hacer todo esto con un solo sistema óseo. En juegos como Virtua Fighter, las máquinas recreativas usaban el clásico sistema óseo. Era bastante adecuado para los juegos de lucha, porque no hay tantas deformaciones, pero los personajes parecían un poco limitados. Usar huesos es casi imposible o muy difícil de crear animación facial, y sabíamos que realmente queríamos implementarlo. ¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?En juegos como Virtua Fighter, las máquinas recreativas usaban el clásico sistema óseo. Era bastante adecuado para los juegos de lucha, porque no hay tantas deformaciones, pero los personajes parecían un poco limitados. Usar huesos es casi imposible o muy difícil de crear animación facial, y sabíamos que realmente queríamos implementarlo. ¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?En juegos como Virtua Fighter, las máquinas recreativas usaban el clásico sistema óseo. Era bastante adecuado para los juegos de lucha, porque no hay tantas deformaciones, pero los personajes parecían un poco limitados. Usar huesos es casi imposible o muy difícil de crear animación facial, y sabíamos que realmente queríamos implementarlo. ¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?¿A qué personaje no le gusta sonreír o guiñar un ojo? ¿Es posible lograr tal animación en una estación de trabajo de Silicon Graphics?

Jason creó este modelo Crash y estaba listo para crear animaciones geniales de dibujos animados; descubrió que es realmente posible forzar a PowerAnimator a hacer esto, porque tenía herramientas poderosas como huesos y pesos de vértices, así como campos de distorsión. Pero la forma en que PowerAnimator los implementó no se podía reproducir en PlayStation. Todas estas cosas usaban equipos costosos para trabajar con coma flotante en una estación de trabajo de Silicon Graphics, e incluso ella no podía realizarlas en tiempo real. Tenía que renderizar animaciones, y el videojuego se desarrolla en tiempo real. Necesitábamos tener tiempo para hacer todo en 1/30 de segundo. Esto se convirtió en otro problema grave, porque realmente queríamos implementar estas animaciones.

Sugerí: bueno, podemos leer las posiciones de todos los vértices. Si sabemos dónde están las posiciones de todos los vértices en cada cuadro, entonces el tipo de huesos no es importante para nosotros. Aunque SGI usa al menos mil huesos, el principio será el mismo. Simplemente dibujamos polígonos y posiciones de vértices, y esto se puede hacer con bastante rapidez. No tenemos que realizar cálculos óseos, por lo que los recursos de la CPU no se gastarán en huesos. Pero con tal estrategia, el problema era que si tenemos una animación con 30 cuadros por segundo, y Crash consta de unos 500 vértices y alrededor de 600 polígonos, entonces necesitamos almacenar la posición en cada cuadro de animación para cada vértice. Esta es una gran cantidad de datos. Pero al mismo tiempo, ya nos dejamos llevar por esta estrategia loca de memoria con un aumento de treinta veces en la cantidad de datos, para que pudiéramos procesar un poco más de datos que otros.Así que decidimos hornear datos de animación utilizando todos los efectos sofisticados de Jason en PowerAnimator. Así lo hice, y funcionó, porque el kit de desarrollo de PlayStation tenía algo así como 8 o 32 megabytes de memoria. Por lo tanto, era posible permitir un volumen mucho mayor que el que estaría disponible en una máquina real. Trabajamos en esto durante varios meses, y constantemente pensé que de alguna manera tendríamos que guardar todo en nuestra memoria. El volumen era simplemente enorme. Hay que hacer menos. Pero tuve la sensación de que, en el sentido matemático, no hay tantos datos como para escribir un algoritmo de compresión especializado. Cómo entender esto: en la teoría de la informática, los datos tienen un cierto grado de complejidad. Tienen un patrón y limitaciones, y en nuestro caso, estas animaciones pueden sufrir la pérdida de su parte.Según la misma teoría, jpeg funciona, y es gracias a él que cambió por completo Internet y la forma en que se almacenan las imágenes. En el caso de jpeg, convertimos la imagen a un rango de frecuencia, esta es una transformación matemática compleja, y luego descartamos la basura de alta frecuencia, la invertimos y, dependiendo de la cantidad de basura descartada, la imagen comienza a verse mejor o peor, pero aún contiene las partes más importantes, ocupando 20 o 30 veces menos espacio, porque eliminamos información sin importancia. Estaba muy seguro de que con los datos de las animaciones habrá la misma situación en la que podemos deshacernos de las animaciones de alta frecuencia, por ejemplo, en los vértices de la cintura del personaje, porque no se mueven demasiado hacia arriba y hacia abajo.En el caso de jpeg, convertimos la imagen a un rango de frecuencia, esta es una transformación matemática compleja, y luego descartamos la basura de alta frecuencia, la invertimos y, dependiendo de la cantidad de basura descartada, la imagen comienza a verse mejor o peor, pero aún contiene las partes más importantes, ocupando 20 o 30 veces menos espacio, porque eliminamos información sin importancia. Estaba muy seguro de que con los datos de las animaciones habrá la misma situación en la que podemos deshacernos de las animaciones de alta frecuencia, por ejemplo, en los vértices de la cintura del personaje, porque no se mueven demasiado hacia arriba y hacia abajo.En el caso de jpeg, convertimos la imagen a un rango de frecuencia, esta es una conversión matemática compleja, y luego descartamos la basura de alta frecuencia, la invertimos y, dependiendo de la cantidad de basura arrojada, la imagen comienza a verse mejor o peor, pero aún contiene las partes más importantes, ocupando 20 o 30 veces menos espacio, porque eliminamos información sin importancia. Estaba muy seguro de que con los datos de las animaciones habrá la misma situación en la que podemos deshacernos de las animaciones de alta frecuencia, por ejemplo, en los vértices de la cintura del personaje, porque no se mueven demasiado hacia arriba y hacia abajo.pero aún contiene las partes más importantes, ocupando 20 o 30 veces menos espacio, porque eliminamos información sin importancia. Estaba muy seguro de que con los datos de las animaciones habrá la misma situación en la que podemos deshacernos de las animaciones de alta frecuencia, por ejemplo, en los vértices de la cintura del personaje, porque no se mueven demasiado hacia arriba y hacia abajo.pero aún contiene las partes más importantes, ocupando 20 o 30 veces menos espacio, porque eliminamos información sin importancia. Estaba muy seguro de que con los datos de las animaciones habrá la misma situación en la que podemos deshacernos de las animaciones de alta frecuencia, por ejemplo, en los vértices de la cintura del personaje, porque no se mueven demasiado hacia arriba y hacia abajo.


Mark Zerny escribió un programa para el análisis. Tomó un conjunto de animaciones y analizó cada componente y cada vértice, calculó un tipo de rango dinámico y la magnitud de los cambios que ocurrieron entre las animaciones. Descubrió que la información en realidad cambia bastante ligeramente. Por lo tanto, resultó que podemos usar un algoritmo muy especializado que determina el rango y todo lo demás, y también crea un mapa al principio, en el que, por ejemplo, se escribe que la coordenada Y del vértice número siete contiene poca información, por lo que solo necesita dos bits. Que ella se mueve en tal rango y que necesita tantos bits. Al final, obtuvimos una relación de compresión en algún lugar en el rango de 50-81, es decir, los datos se volvieron 50 veces más pequeños.


Si observa el diseño de la PlayStation 1, a pesar del diseño y el equilibrio correctos, la máquina tenía solo dos megabytes de RAM y un megabyte de VRAM. Pero también tenía una unidad de CD, que podía almacenar hasta 640 megabytes de datos para leer, y esto es mucho más. Esta relación es muy grande. Es decir, en teoría era posible hacer niveles mucho más de dos megabytes. Como en un juego normal, digamos en Twisted Metal, llegas al nivel de la Torre Eiffel y el juego carga el nivel de la Torre Eiffel en un megabyte de memoria. Tienen una cierta cantidad de gráficos y animaciones, que ocupan aproximadamente un megabyte. Ahora puede encontrar diferentes métodos de compresión de datos, pero no hay forma de evitar esta limitación, y la gente realmente no lo intentó. Entonces, en principio, todo funcionó. Una computadora, es decir, CPU y GPU, solo podía accederLo que está actualmente en la memoria. Cada 1/30 de segundo en la memoria hay lo que necesita para renderizar el marco. Todo lo que dibuje ahora, cualquier animación y cualquier sonido que se utilizará ahora, debe estar en la memoria, ya que puede acceder rápidamente a la memoria. Una unidad de CD tarda aproximadamente 1/3 de segundo para mover la cabeza a cualquier punto del CD. Lleva algún tiempo cargar los datos. Puede descargar un megabyte en seis segundos más o menos. Por lo tanto, no puede dibujar un solo cuadro y comenzar a descargar un nuevo megabyte del disco, ya que tomará otros ocho segundos obtenerlo. ¿Y qué harás? ¿Esperar ocho segundos completos? Esto se puede hacer entre niveles. Por lo tanto, al cambiar de nivel en un juego normal, hay una pantalla de carga cuando lee un megabyte completo, o cuánto necesita allí, del disco.CD es una unidad más "distante". Es más grande, pero también más lento. Úselo por más tiempo, pero ¿por qué no utilizarlo? Él es, después de todo. En los primeros juegos de PlayStation, los desarrolladores crearon niveles de uno o dos megabytes, y 640 megabytes caben en un CD, es decir, se pueden grabar 300 niveles en él. ¿Tenían 300 niveles? No, de lo contrario tomaría diez años crear el juego. Por lo tanto, los CD estaban en su mayoría vacíos, o estaban llenos de música o video, porque son datos voluminosos. Pero muy a menudo, los discos simplemente estaban vacíos. Juegos como Twisted Metal podrían ocupar solo 50 megabytes de espacio en disco. Por lo tanto, los niveles de tantos juegos parecen ocupar aproximadamente un megabyte, bueno, tal vez un megabyte y medio. Eso fue suficiente. Se crearon muchos juegos para PlayStation, pero en mi teoría no tuvimos que apegarnos a esto.


Mi idea era utilizar técnicas sofisticadas de memoria virtual para reemplazar bloques de datos. Supongamos que, si un nivel ocupa 30 megabytes, en un momento determinado en el tiempo podríamos necesitar solo un megabyte, pero el nivel completo es en realidad 30 megabytes. Decidí dividir todo el nivel en páginas de 64 KB, creando bloques de datos a partir de ellas. Pueden ser algo significativo, por ejemplo, animación Crash, su código o parte del fondo. Los bloques deben tener menos de 64 KB, los colocamos en una página hasta que se llene casi por completo, pero no se pueden dividir en varias páginas, o debe dividir los bloques en bloques aún más pequeños. Cuando un nivel consta de 30 megabytes de páginas, 16-18 páginas pueden caber en la memoria. El problema es si puedo distribuir los bloques de nivel de tal manerapara que en cualquier punto del nivel nunca necesite más de 16 páginas de datos; También fue posible tomar un bloque, duplicarlo en varias páginas, si esto ayudara a funcionar mejor en todo el sistema. El juego por adelantado, pero constantemente determina qué páginas cargará si el jugador se mueve de una de las formas, descarta las páginas viejas que no necesita, cargando otras en su lugar. Cualquier página puede reemplazar a cualquier otra, si nunca necesitamos más de 16 páginas activas a la vez. Todas las texturas de Crash son lo suficientemente nítidas y con muchos colores, y las texturas de Tomb Raider parecen estar borrosas y pixeladas, porque hay poca memoria asignada para ellas. Los desarrolladores no tenían un lugar para almacenar textura adicional. Y para esto teníamos 20-30 veces más espacio. O tome el número de polígonos por nivel.Juegos como Tomb Raider se ven muy cúbicos, con pasillos cuadrados, y Crash tiene formas locas y mucho más, porque teníamos muchos más polígonos. Había muchas otras tecnologías que cumplían este propósito, pero la memoria era muy importante. Gracias a esto, obtuve un montón de patentes porque fui una de las primeras personas que se dio cuenta de cómo usar realmente el espacio en un CD o disco como una parte dinámica del juego para expandirlo. Hoy sucede todo el tiempo.que entienden cómo usar realmente el espacio en un CD o disco como parte dinámica del juego para expandirlo. Hoy sucede todo el tiempo.que entienden cómo usar realmente el espacio en un CD o disco como parte dinámica del juego para expandirlo. Hoy sucede todo el tiempo.


Creo que una de las lecciones más importantes de Crash Bandicoot fue que los juegos pueden tener su propia personalidad estilística y estilo artístico. Y sí, hasta cierto punto, otros lo han hecho antes. Al final, Mario tiene su propio estilo, que determinó en gran medida el estilo de los videojuegos del pasado. Pero Crash tiene su propio mundo holístico con préstamos obvios del estilo de los dibujos animados estadounidenses. Y todos los productos Crash (me refiero a los primeros cuatro juegos) se adhirieron a este estilo. Sigue siendo interesante jugar en las versiones originales y se ven bastante bien incluso en PlayStation 1, porque ese estilo supera las limitaciones de píxeles. En las primeras etapas de desarrollo, teníamos una media esperanza completamente arrogante, un medio sentido: un factor importante en la elección de PlayStation fue que Nintendo tiene a Mario,y Sega tiene Sonic. Y parece que Sony aún no ha tenido una mascota, por lo que si creamos un juego con un personaje similar a una mascota, entonces no tendremos competidores. Y Sony se interesó de inmediato, querían este juego. Teníamos que asegurarnos de que solo aparece en PlayStation. Deliberadamente decidimos crear tal situación y luego exploramos nuestras posibilidades. Pero el hecho de que funcionó fue un milagro. Soñamos que Crash se convertiría en una mascota. Pero incluso cuando Sony acordó cooperar, nunca lo hizo oficial: dijeron que no era una mascota, que no tenían una mascota, pero todos lo consideraban una mascota, y la compañía lo apoyó tanto que incluso compró los derechos de Universal.Y Sony se interesó de inmediato, querían este juego. Teníamos que asegurarnos de que solo aparece en PlayStation. Deliberadamente decidimos crear tal situación y luego exploramos nuestras posibilidades. Pero el hecho de que funcionó fue un milagro. Soñamos que Crash se convertiría en una mascota. Pero incluso cuando Sony acordó cooperar, nunca lo hizo oficial: dijeron que no era una mascota, que no tenían una mascota, pero todos lo consideraban una mascota, y la compañía lo apoyó tanto que incluso compró los derechos de Universal.Y Sony se interesó de inmediato, querían este juego. Teníamos que asegurarnos de que solo aparece en PlayStation. Deliberadamente decidimos crear tal situación y luego exploramos nuestras posibilidades. Pero el hecho de que funcionó fue un milagro. Soñamos que Crash se convertiría en una mascota. Pero incluso cuando Sony acordó cooperar, nunca lo hizo oficial: dijeron que no era una mascota, que no tenían una mascota, pero todos lo consideraban una mascota, y la compañía lo apoyó tanto que incluso compró los derechos de Universal.Pero incluso cuando Sony acordó cooperar, nunca lo hizo oficial: dijeron que no era una mascota, que no tenían una mascota, pero todos lo consideraban una mascota, y la compañía lo apoyó tanto que incluso compró los derechos de Universal.Pero incluso cuando Sony acordó cooperar, nunca lo hizo oficial: dijeron que no era una mascota, que no tenían una mascota, pero todos lo consideraban una mascota, y la compañía lo apoyó tanto que incluso compró los derechos de Universal.


Las ventas de Crash Bandicoot comenzaron bien, pero siguieron y siguieron. Crash Bandicoot fue el primer juego que se vendió mejor en el segundo año de ventas, y posiblemente en el tercero, y estoy seguro de que cuando lanzamos Crash Team Racing la semana antes de Navidad, Crash Bandicoot lo superó y vendió más copias de las que vendió. Todo el tiempo anterior. En primer lugar, era un juego atractivo para un público muy amplio; todos, desde un niño hasta un jugador hardcore, podían jugarlo. No tenía mucha crueldad, pero los personajes fascinaban, ella era divertida y la jugabilidad era bastante intensa y al mismo tiempo asequible. Podrías sentarte y comenzar a jugar, y para nosotros fue uno de los objetivos más importantes. No quería crear un juego en el que tuviera que pensar demasiado. Crash Bandicoot se convirtió en una herreríaen el que se forjó la filosofía de Naughty Dog: cada elemento que entra en el juego debe ser genial, porque queríamos crear un juego realmente genial, un juego que se convierta en un éxito, un clásico, y para lograrlo, decidimos que debería ser genial. eso es todo, pero se necesita la mejor tecnología para darse cuenta de esto. Cuanto mejor sea la tecnología, mejor se sentirá y se verá el juego. Si implementa todo esto correctamente, puede superar la mediocridad y crear una obra maestra del juego.cuanto mejor se sienta y se vea el juego. Si implementa todo esto correctamente, puede superar la mediocridad y crear una obra maestra del juego.cuanto mejor se sienta y se vea el juego. Si implementa todo esto correctamente, puede superar la mediocridad y crear una obra maestra del juego.

All Articles