Este artículo es una traducción del capítulo del Libro negro de Game Engine: DOOM , un análisis detallado de la estructura interna de uno de los juegos de software de identificación más influyentes. Este capítulo habla sobre el complejo proceso de portar DOOM
a Super Nintendo y el papel clave que desempeñó el desarrollador de Star Fox,
Argonaut Games.El libro fue escrito por el autor y programador Fabien Sanglar, y su texto completo ahora se puede comprar en papel y en formato digital .El Super Nintendo Entertainment System fue lanzado en Japón en 1990, y al año siguiente apareció en los Estados Unidos y Europa.
Se convirtió en una descendiente de 16 bits de la NES de 8 bits. En Japón, Super Famicom (FAMIly COMputer) obtuvo un éxito instantáneo, y el lote inicial completo de 300 mil dispositivos se agotó en cuestión de horas. La emoción fue tan fuerte que el gobierno le pidió a Nintendo el futuro para lanzar sus consolas los fines de semana para evitar disturbios.
Para garantizar una consola de juegos de alta calidad, Nintendo ha creado un sistema de control despiadado. Los editores tenían derecho a lanzar solo cinco juegos al año. Para que se aplique esta regla, Nintendo se reserva el derecho de fabricar cartuchos solo para sí mismo; los editores se vieron obligados a comprarlos de Nintendo. Para que todos puedan jugar según las reglas (y también para proteger los juegos de la copia), antes de comenzar el juego, la consola SNES verificó la presencia de un chip CIC. Era un poderoso mecanismo de defensa que solo podía descifrarse hacia el final de la vida útil de SNES.
Durante los nueve años de vida de la consola, se lanzaron 721 juegos, y entre ellos se encontraban éxitos como
Super Mario World ,
Zelda III [
The Legend of Zelda: A Link to the Past ],
Mario Kart ,
F-Zero ,
Super Metroid y
Donkey Kong País Se han vendido casi 50 millones de consolas durante todo el tiempo, por lo que SNES se considera una de las consolas más populares de la historia, tanto en términos de volumen de ventas como en el catálogo de juegos.
SNES técnicamente superior estaba en el campo de los gráficos 2D. Su procesador 65C816 de 16 bits con una frecuencia de 3.58 MHz tenía 128 kbytes de RAM. Controlaba una PPU (unidad de procesamiento de imágenes) con 64 kbytes de RAM, que manejaba el procesamiento de sprites grandes y podía admitir hasta 256 colores a una resolución de 256x240. El sistema de sonido de la consola consistía en una potente combinación de un procesador Sony SPC700 de 8 bits y un procesador de señal digital de 16 bits con 64 kbytes de RAM dedicada.
A pesar del impresionante motor para procesar sprites bidimensionales y, en particular, la función Modo 7, la máquina carecía de la fuerza para operaciones computacionalmente costosas como la computación 3D. Nintendo claramente reconoció que 3D sería la próxima etapa importante en el desarrollo de juegos, pero no tenía la capacidad de implementarlo. Por voluntad del destino, una pequeña empresa británica encontró una solución a este problema.
Juegos de argonautas
En 1982, Jez San desarrolló juegos sin ayuda diseñados exclusivamente para las computadoras C64, Atari ST y Amiga. Necesitaba una empresa para vender sus creaciones. Al ver las similitudes entre su nombre (J. San) y Jason (Jason) del mito de los Argonautas, lo llamó Argonaut Games plc.
La compañía no permaneció como un conjunto de una sola persona por mucho tiempo. Para 1990, había reunido a personas con talento en la oficina de Londres de la compañía, y se interesó en la consola portátil Nintendo Game Boy, lanzada en 1989. El equipo logró hacer dos hazañas aparentemente casi imposibles: crearon un motor 3D de estructura metálica y descifraron la defensa del CIC para instalarlo en Game Boy.
“El logotipo de Nintendo cayó desde la parte superior de la pantalla, y cuando llegó al centro, el gestor de arranque verificó si el logotipo estaba en el lugar correcto.
El juego se lanzó solo si esta palabra estaba en el lugar correcto de la ROM. Si alguien quisiera crear un juego sin el permiso de Nintendo, tendrían que usar la palabra Nintendo sin licencia; por lo tanto, Nintendo podría presentar una demanda de marca registrada. Descubrimos que era solo una resistencia y un condensador, partes que cuestan alrededor de un centavo, y descubrimos cómo engañar a la protección. El sistema leyó la palabra Nintendo dos veces, primero para mostrarla en la pantalla durante el proceso de arranque, una segunda vez, para verificar su corrección antes de iniciar el juego desde el cartucho. Y fue un error fatal: la primera vez que la consola leyó la palabra Nintendo, hicimos que devolviera Argonaut para que cayera a la parte superior de la pantalla. En la segunda prueba, aplicamos energía a la resistencia y al capacitor para que la palabra correcta fuera Nintendo, y el juego se cargó sin ningún problema ”- Jez San, de una entrevista de Eurogamer en 2014.
En el CES '90, su motor de demostración desde el stand de Nintendo llegó hasta la oficina de la compañía en Kyoto. Jez no lo sabía entonces, pero eligió el momento perfecto. En ese momento, Nintendo estaba trabajando en Japón en juegos para Super Famicom, que se suponía que mostraban en el momento del lanzamiento de la consola su superioridad tecnológica.
Super Mario World estaba en su infancia, pero el simulador de vuelo
Pilotwings ya era un juego un poco más complicado.
Para simular el alivio en
Pilotwings , se utilizó el modo Modo 7 del dispositivo PPU (capaz de realizar transformaciones afines como rotación, escalado y corte de la imagen en partes), así como el modo HDMA. Sin embargo, los aviones mismos seguían siendo los habituales sprites dibujados a mano en dos dimensiones. Esto molestó al productor del juego, Shigeru Miyamoto, porque no permitió que la cámara girara suavemente alrededor del avión (los sprites rotos en pedazos eran desiguales).
En ese momento, a Nintendo no le gustaba trabajar con compañías de terceros, y aún más con extranjeros. Pero esta vez, hicieron una excepción e invitaron a Jeza a su oficina central en Kyoto con Dylan Cuthbert, que trabajaba en el motor 3D.
Los jóvenes (Jesu tenía 23 años, Dylan 18) se reunieron con todos los vicepresidentes de Nintendo: Miyamoto, Gumpei Yokoi, Takehiro Izushi, Yasuhiro Minagawa y Genio Takeda. Se les mostró todo, desde SNES secreto hasta
Mario y
Pilotwings secretos. Luego se les preguntó si era posible encontrar una forma de representar planos como objetos poligonales reales.
“Les dije que esto es lo mejor que pueden lograr, a menos que me dejen diseñar el equipo para que SNES mejore en 3D. Sorprendentemente, a pesar de que nunca antes había hecho equipo, me dijeron "sí" y me dieron un millón de dólares para vender ". - jes san
Jez les prometió audazmente un aumento "diez veces mayor" en la productividad, por lo que Nintendo aceptó con gusto la propuesta de desarrollar equipos especiales para el juego.
Pilotwings tendrá que ser lanzado con aviones sprite para atrapar Super Famicom, pero el chip, más tarde llamado Super FX, se usará para otro proyecto de Nintendo.
Se llamaba
Star Fox .
Zorro estrella
Según el acuerdo, Nintendo tenía derecho a tomar todas las decisiones sobre el diseño del juego, y también financió Argonaut Games para la producción no solo de equipos, sino también de un motor 3D para el juego. Jez-san inmediatamente comenzó a contratar especialistas británicos que conocía.
Para desarrollar el equipo, firmó un acuerdo con Flare Technology (las mismas personas que diseñaron el Atari Jaguar). El proyecto de Ben Cheese, Rob Macaulay y James Hakeville recibió el nombre en código Mathematical Argonaut Rotation I / O, o MARIO. Como resultado, el dispositivo que crearon resultó ser tan poderoso que en broma llamaron a Super NES "solo una caja para instalar nuestro chip". Como era imposible actualizar la consola, el chip se soldaba en cada cartucho de juego nuevo, lo que aumentaba significativamente su precio minorista.
“Desarrollamos el chip Super FX de una manera que nadie antes que nosotros diseñó el equipo: primero creamos el software y nuestro propio conjunto de instrucciones para optimizar el software. Nadie hizo eso! En lugar de crear un chip 3D, esencialmente desarrollamos un microprocesador RISC con todas las funciones que tenía funciones matemáticas y funciones de representación de píxeles, mientras que el resto se encargaba del software. Fue la primera Unidad de Procesamiento de Video (Unidad de Procesamiento de Gráficos) del mundo, y tenemos patentes que lo prueban. ”- Jez Sun
Karl Graham y Pete Warns trabajaron en el motor en la oficina de Londres de la compañía, mientras que Dylan Cuthbert, Christer Wombell y Giles Goddard (y luego Colin Reed) se mudaron a las oficinas de Nintendo en Kyoto y trabajaron estrechamente con el equipo de Miyamoto.
El proyecto fue coronado con éxito comercial y tecnológico.
Star Fox fue lanzado el 21 de febrero de 1993 y vendió cuatro millones de copias.
La historia posterior de la relación entre las dos compañías es triste. La secuela del megahit
Star Fox 2 fue completada por "Argonauts" y lista para su lanzamiento en 1996, pero Nintendo interrumpió repentinamente el proyecto, temiendo su impacto en el lanzamiento de Nintendo 64. A Argonaut no le gustó esto y la relación con Nintendo se deterioró. Más tarde, Nintendo atrajo a Goddard y Wombella a él. Dylan Cuthbert también podría unirse a ellos, pero la cláusula del acuerdo sobre la prohibición de la competencia le impidió hacerlo. Renunció a Argonaut y, trabajando en Sony, se puso a trabajar en PlayStation.
El "divorcio" de las dos compañías terminó cuando Nintendo no permitió que Argonaut usara el personaje de Yoshi en el juego de plataformas que la compañía planeaba lanzar en PS1. Como resultado, reemplazaron a Yoshi con un cocodrilo y llamaron al juego
Croc: Legend of the Gobbos . Nintendo lanzó más tarde el
Mario 64 , una de cuyas mecánicas se parecía sospechosamente a
Croc ... e incluso ganó el mercado durante aproximadamente un año.
El chip MARIO tenía un diseño simple basado en un procesador RISC de 16 bits con una frecuencia de 10.74 MHz y un i-cache de 512 bytes. Tenía su propio conjunto de instrucciones, optimizado para cálculos matemáticos, y su propio búfer de cuadros, optimizado para colocar píxeles. Su trabajo consistía en renderizar en un búfer de trama, cuyos datos se transferían periódicamente a SNES RAM utilizando DMA. Podría generar hasta 76,458 polígonos por segundo, lo que proporcionó a
Star Fox a aproximadamente 15 fps.
Habiendo presenciado el fenomenal éxito de
Star Fox , otros estudios se interesaron en sus tecnologías. Se lanzó una nueva versión del chip llamada GSU, capaz de operar a una frecuencia de 21.4 MHz. La primera generación de GSU se utilizó en cuatro juegos:
Dirt Racer ,
Dirt Trax FX ,
Stunt Race FX y
Vortex .
La segunda generación (GSU-2) tenía el mismo procesador con una frecuencia de 21,4 MHz y contactos adicionales soldados al bus para aumentar el tamaño de la ROM y el búfer de trama admitidos. Se usó en tres juegos:
DOOM ,
Super Mario World 2: Yoshi's Island y
Winter Gold .
Si abre el cartucho DOOM, puede ver todos los componentes anteriores:
[1] GSU-2 de 16 bits,
[2] búfer de trama de 512 KB en el que se escribió GSU,
[3] ROM de 2 mebbytes, en la que se almacenaron código y recursos,
[4] un módulo de seis inversores y
[5 ] Chip CIC para protección contra copia.
“El crecimiento de la productividad por diez fue, por mi parte, una exageración absoluta. No sabíamos si esto era realmente posible. Pero esto nos permitió exagerar y, al mismo tiempo, superar las promesas. En lugar de un aumento de diez veces en el rendimiento 3D, en realidad lo aumentamos 40 veces. En algunas áreas, como la computación matemática en 3D, el crecimiento fue incluso cien veces mayor. El chip no solo podía realizar cálculos en 3D y trabajar con gráficos vectoriales, sino que también proporcionaba rotación y escalado de sprites, y esta función era extremadamente necesaria en los juegos de Nintendo, por ejemplo, Super Mario World 2: Yoshi's Island ". - jes san
Un hecho interesante: algunos fanáticos lograron recolectar todos los juegos (721 nombres) del catálogo de SNES. Por lo general, un cartucho
DOOM se puede ver desde lejos. Solo se permitieron lanzar tres juegos en un estuche gris no estándar. Dos eran rojos:
DOOM y
Maximum Carnage , y
Killer Instinct era negro.
Doom en Super Nintendo
DOOM en SNES surgió gracias al genio y la determinación de una persona: Randy Linden. Le encantaba este juego y decidió llevarlo a la consola popular para que más jugadores pudieran disfrutarlo. Randy no tenía acceso al código fuente, ni a los recursos de las versiones del juego para PC o consola. Tenía que comenzar desde cero.
Para obtener recursos, podría usar la "especificación no oficial de
Doom " escrita por Matthew Fell. Describió en detalle la estructura de los archivos .wad. Sprites, texturas, música, efectos de sonido y mapas que Randy extrajo de DOOM.WAD. Con el motor, la historia fue completamente diferente.
" DOOM era un juego verdaderamente revolucionario, y quería que las personas sin PC lo jugaran. DOOM en SNES era otra de las hazañas de programación que se podían lograr.
Comencé el proyecto por mi cuenta y creé un prototipo completamente funcional, mostré su demo en Sculptured Software. Un grupo de empleados de Sculptured me ayudó a completar el juego para poder lanzarlo a tiempo para las vacaciones.
El proceso de desarrollo fue complicado por muchas razones, y principalmente porque en ese momento no había sistemas de desarrollo para el chip SuperFX. Antes de comenzar el juego en sí, escribí un conjunto completo de herramientas: ensamblador, enlazador, depurador.
El kit de desarrollo de hardware consistía en un cartucho Star Fox pirateado (porque tenía un chip SuperFX) y un par de controladores de juego modificados conectados a ambos conectores SNES y conectados al puerto paralelo Amiga. Para descargar el código, establecer puntos de interrupción, examinar la memoria al transferir datos entre los dos dispositivos, se utilizó un protocolo en serie.
Me gustaría que el juego tuviera más niveles, pero, desafortunadamente, ocupó la ROM más voluminosa disponible y la ocupó casi por completo. Recuerdo vagamente que solo unos 16 bytes eran libres, es decir, ¡no quedaba más espacio! Sin embargo, ¡logré acomodar el soporte para Super Scope, mouse y módem XBand! ¡Sí, incluso podrías jugar con alguien en línea! "- Randy Linden en una entrevista para Gaming Reinvented
En esta versión, es notable cómo Randy tuvo que "cortar esquinas" teniendo en cuenta las capacidades y limitaciones del motor de babor.
En la Figura 6.8, se puede ver que a pesar de solo 600 kibibytes de RAM, el piso azul se ha mantenido (aunque del mismo color). Tenga en cuenta que la geometría no ha cambiado (debe haber sido extremadamente difícil lograr esto, porque Randy no tenía DoomED ni doombsp), y todos los pasos del original se conservaron en E1M1.
El motor Reality, como lo llamó Randy, pudo trabajar con la geometría de las tarjetas desde una PC, pero probablemente tuvo problemas con la velocidad de llenado y muestreo de texturas, porque las texturas del techo y el piso están completamente ausentes.
La captura de pantalla anterior muestra que la ventana en realidad no se muestra en pantalla completa. Este problema no solo afectaba a
DOOM :
Star Fox ,
Star Fox 2 y todos los juegos con Super FX tuvieron que reducir el tamaño del espacio de trabajo. Lo más probable es que esto se deba a la tasa de transmisión SNES limitada, que no permitió la transmisión DMA para la representación a pantalla completa.
De 256x224 píxeles de la resolución "nativa" de la consola, solo se podían dibujar 216x176 y solo 216x144 para 3D (se dibujó una barra de estado en 32 líneas). Las líneas verticales se duplicaron, es decir, el Reality Engine pudo renderizar a una resolución de solo 108x144. E incluso con una resolución tan baja, la velocidad de fotogramas promedio fue de 10 FPS, que fue un gran logro. La velocidad de fotogramas "baja" no disuadió a los jugadores de jugar
DOOM . Según Randy Linden, los cartuchos se vendieron muy bien.
La lista de características donadas para RAM preciosa incluía la resolución de sprites, que tuvo que reducirse significativamente; a veces incluso era difícil desmontarlos (a diferencia del arma del jugador, que se renderizó en una resolución más alta). Tuve que eliminar todas las poses de los enemigos, con la excepción de los sprites que miran al jugador, deshacerse de las peleas de monstruos entre sí, difundir el sonido (los monstruos se despertaron solo por contacto visual), eliminar la mayoría de los efectos de sonido (todos los monstruos sonaban como imps).
Dato interesante: Nintendo inicialmente prohibió el uso de sangre en juegos en SNES. Para cuando se lanzó
DOOM , un procedimiento de calificación ESRB había aparecido en la escena. Dada la cantidad de sangre y trozos de carne, no es sorprendente que
DOOM en SNES haya recibido una calificación de M ("de 17 años").
El texto completo de Game Engine Black Book: DOOM
está disponible en el sitio web de Fabien Sanglar.