¿Existe un Edison o un Da Vinci de los videojuegos? ¿Hay un genio técnico cuyas aportaciones hayan revolucionado varias veces uno de los medios más complejos que existen? Ciertamente, es discutible que los juegos hayan aportado algo comparable con un Tesla o un Babbage, pero quizás lo más cercano sea John Carmack, programador originario de Kansas que siempre fue visto como el cerebro detrás de los logros de id Software, y cuyas creaciones y soluciones de diseño han sacado adelante a la industria en más de una ocasión. Con la inminente llegada de Oculus Rift y la realidad virtual, el sueño de toda una vida para Carmack, aprovechamos la ocasión para hablar de 6 maneras en que dicho cerebro ha transformado por completo nuestro medio favorito.
1. Smooth scrolling: las increíbles aventuras de Commander Keen
Todo comenzó como un simple truco de programación. Hoy muchos no lo creerán, pero hubo una época en que una computadora personal era un hardware más débil que una consola: juegos como Super Mario Bros. 3 eran simplemente imposibles para la pobre capacidad gráfica de las máquinas a inicios de la década de los 90. Durante sus días como programador en la empresa Softdisk, Carmack concibió un truco ingenioso para superar dichas limitaciones de hardware.
Como nuestros lectores saben, un título al estilo de Super Mario Bros. se basa en el scrolling o desplazamiento horizontal a lo largo de un nivel lleno de enemigos, bloques y plataformas. La naturaleza del juego implica el trazado constante de gráficos para cada uno de los frames o cuadros en el proceso de scrolling, el cual resultaba muy pesado para una PC de la época, acostumbrada a pantallas estáticas como las de las entregas de aventura y viejos RPG. Para que tengan una idea de cómo se veía un título de plataformas en PC antes de Carmack, observen este video de la horrible adaptación llena de pantallas estáticas, flickering (gráficos que parpadean) y demás problemas de Super Mario Bros., desarrollada por Hudson.
Para solucionar el dilema, Carmack aplicó una idea simple: en lugar de redibujar toda la pantalla en cada frame, únicamente lo haría con los pixeles que cambiaran en la pantalla. La técnica se llama adaptative tile refresh o renovación adaptativa de cuadros, y aprovechaba las capacidades de las tarjetas EGA (Enhanced Graphics Adapter). Asimismo, para reducir los problemas de flickering provocadas por redibujar los sprites del final de la pantalla, Carmack asignó un doble búfer (región de memoria) en dichos sprites, de modo que nunca se notara un sólo sprite a medio dibujar. El resultado era milagroso para la época: compara el video anterior de Mario en PC con esta muestra del suave y perfecto scrolling de Commander Keen.
El invento de Carmack fue el Santo Grial que permitió a él y a sus amigos escapar a la monotonía y mediocridad de Softdisk para fundar su propia empresa: id Software. Commander Keen no sólo fue el primer plataformero de PC: fue la llave de la libertad para una nueva era del diseño de videojuegos, más allá de los primitivos mundos de pantallas estáticas, interminables listas de comandos, RPG imposibles y demás; la libertad y el flujo del arcade al fin había sido conquistado para el PC gaming.
2. El pseudo-3D: Wolfenstein y DOOM
El genio de la gente de id Software y de John Carmack no terminó ahí. Con el éxito de Commander Keen y sus episodios en PC, la empresa financió su siguiente salto técnico: sus primeros títulos en 3 dimensiones. Los intentos iniciales de id Software en el gaming tridimensional fueron Hovertank 3D y Catacomb 3D: The Descent, inspirados en el motor de Ultima Underworld, en ese entonces también en desarrollo. La técnica detrás de estas entregas era una mezcla de 2 aspectos técnicos: los mapas de texturas, que añaden elementos como mapas de bits a modelos tridimensionales, y el llamado trazado por rayos, la técnica de generación de gráficos que es el núcleo de los motores en pseudo-3D.
La técnica de trazado por rayos consiste en un punto que proyecta un foco de luz sobre un mapa tridimensional predeterminado. Cada columna de pixeles corresponde a un rayo de luz, y cuando un rayo intersecta una pared u obstáculo, se dibujan texturas en la pantalla de acuerdo con la programación. El resultado es un búfer de profundidad sobre el cual se pueden colocar sprites que representan a enemigos, municiones, utilería, etcétera. Aunque el motor dibuja un espacio efectivamente tridimensional, el hecho de que dicho espacio sea proyectado en un plano bidimensional provoca que sea considerado como un motor pseudo-3D, en el que son imposibles los mapas con múltiples pisos.
A diferencia de otros motores, las coordenadas de cada pixel en el proceso de rasterización (la transformación de una imagen o diseño en pixeles) no son calculadas en runtime, sino que siguen un patrón generado durante el startup del juego. La consecuencia es una fuerte reducción del uso del CPU, pero la limitante es que dicho modelo no permite mirar hacia arriba y hacia abajo debido a que todas las paredes se dibujan verticalmente (lo que se reflejó en las mecánicas de Wolfenstein 3D y DOOM); tampoco permitía diferencias en altura geométrica ni intensidad de las luces.
A pesar de sus limitaciones, el motor gráfico de Wolfenstein 3D y su posterior mejora, el id Tech 1 que utilizaron DOOM y sus sucesores, revolucionaron por completo el mundo de los videojuegos. Hasta entonces, el último grito de la moda eran las aventuras point & click: las creaciones de Sierra y LucasArts dominaban el mercado con sus maravillosos gráficos y complicados acertijos. Las entregas en pseudo-3D de id Software refrescaron la escena de PC con los primeros shooters en primera persona, fuerte velocidad, decenas de enemigos en pantalla y, en el caso de DOOM, multijugador en Deathmatch, tendencias que marcaron todo el desarrollo posterior de la industria. Gracias a dicho avance técnico, los gamers de PC olvidaron la época de estampitas animadas con chistes, impusieron una corriente de contracultura basada en demonios, disparos y heavy metal, y convirtieron a su plataforma en el foco de desarrollo de la industria al establecer al FPS como rey casi durante 2 décadas.
3. Los WAD: una escuela de diseño
Otra de las grandes aportaciones de John Carmack es la popularización de mecanismos fáciles para que los usuarios generaran su propio contenido o mods: los famosos archivos .WAD, paquetes que contienen los sprites, niveles y datos de juego listos para ser cargados. Por supuesto, la idea de modificar el contenido de títulos preexistentes no es nueva, pero los WAD dieron a la comunidad de fans la oportunidad de convertirse en verdaderos diseñadores de expansiones de una manera fácil y directa.
La idea de paquetes de archivos que facilitan un diseño modular y rápido surgió debido a las dificultades que los jugadores de Wolfenstein 3D enfrentaron a querer crear expansiones y niveles propios. Debido a que Carmack era un férreo creyente en la libertad del software a causa de su adscripción al llamado "Manifiesto Hacker", el programador decidió solucionar dicha situación en DOOM mediante el diseño desde el inicio. El resultado fueron los archivos WAD, siglas que significan en inglés Where's All the Data? o ¿Dónde están todos los datos?
Hay 2 tipos de WAD: los IWAD (WAD internos), que contienen los datos necesarios para cargar el juego y los PWAD (patch WAD), que contienen datos adicionales como sprites extras para niveles personalizados. Dichos archivos permiten desde la creación de niveles y expansiones hasta cambios completos en elementos gráficos, settings y secuencias, fenómeno llamado Total conversions. La primera de dichas conversiones que notó id Software fue un remake de algunas secuencias de Star Wars en el engine de DOOM: Carmack confiesa que una de las mayores sorpresas de su vida fue ver a la Estrella de la Muerte creada en dicho motor.
El resto de la historia es bien conocido: los WAD invadieron el mundo, desde los famosos Megawads, los niveles UAC, D!Zone, el proyecto Freedoom hasta conversiones totales a otras franquicias como Aliens TC, Batman DOOM, Chex Quest, Sonic Robo Blast, Void, The Darkest Hour y más. Los WAD no sólo eran ocio: eran una verdadera escuela de diseño. Jóvenes como Tim Willits impresionaron a la gente de id Software y comenzaron su carrera de desarrollo de videojuegos gracias a sus WAD, que le valdrían colaborar en Strife, The Ultimate Doom, Quake, Quake II, Quake III Arena y DOOM 3.
4. El 3D verdadero: Quake
El siguiente paso de id Software fue el 3D verdadero, generado completamente en tiempo real, sin ser una mera proyección en superficies planas, con modelos poligonales complejos y una manipulación completa del punto de vista y perspectiva del jugador. La tarea de construir id Tech 2, el motor sucesor de DOOM, quizá fue el salto más importante en el diseño de juegos hasta ahora, e implicó la solución a decenas de fascinantes problemas técnicos.
La principal dificultad en un motor 3D real es el espacio: ¿cómo crear un mundo tridimensional en los CPUs de 50-75 MHz de esa época? La solución estaba en reducir la complejidad del mismo mediante el preprocesado y prerrendereado (generación de gráficos tridimensionales) de los ambientes. La clave son ciertos objetos convexos llamados brushes, que permiten definir un espacio cerrado y volumétrico. Cuando ese espacio está definido y perfectamente sellado, el preprocesado define un área interior donde es posible jugar y un vacío exterior. El resultado es un área de juego y un vacío recortado e inaccesible para el jugador. La técnica permitía ahorrar hasta 80% de la cuenta de polígonos. Finalmente, el cielo era recreado mediante grandes brushes y una textura de skybox creada mediante un mapa esférico, lo que daba el efecto de un cielo profundo y distante.
Otro paso importante para reducir la carga de procesamiento es seccionar las porciones del mapa que no fueran visibles al jugador para no hacer render de los espacios no visibles: gracias a dicho truco, si un usuario no podía ver un área, el motor tridimensional no incluía sus objetos en los cálculos de rendering, lo que reducía la carga del CPU. El efecto de profundidad real se lograba gracias al llamado Z-Buffer, un área de la memoria destinada a calcular profundidad. Cuando un objeto es dibujado por la tarjeta gráfica, se almacena en el búfer de profundidad, pero si otro objeto tiene que ser generado en el mismo pixel, la tarjeta elige al más cercano y reemplaza al anterior, y así se logra el efecto real de profundidad, llamado Z-Culling: las cosas cercanas esconden a las lejanas.
Quake fue uno de los primeros títulos en dar soporte a la aceleración tridimensional de hardware, es decir, el uso de hardware dedicado para ejecutar más rápido que un CPU general tareas específicas. El ejemplo por excelencia son las GPU o unidades de procesamiento de gráficos. El uso de aceleración mediante unidades de procesamiento en 3D dio pie a una importante evolución que daría como resultado las tarjetas gráficas que hoy definen el gaming.
El uso de todos estos trucos y procesos garantiza a Quake el estatus de ser uno de los juegos más importantes jamás creados: es bien sabido que todos los motores existentes son sólo versiones más y más modificadas de ese ADN original del gaming en 3D. Quake es como ese el ancestro primigenio del árbol de la vida del PC gaming, el primer procarionte o forma simple del que proviene todo lo que conocemos.
5. Las MegaTexturas de RAGE
A pesar del fin de la era de oro de id Software y de Quake, Carmack y su equipo nunca dejaron de ser una punta de lanza en el aspecto técnico. Su siguiente gran aportación es una ingeniosa solución técnica conocida como MegaTexturas, aparecida por primera vez en Enemy Territory: Quake Wars, para el motor id Tech 4 y perfeccionada para RAGE (id Tech 5).
MegaTexturas quiere decir que en lugar de utilizar miles de pequeñas tramas para cubrir las áreas de un terreno estático se emplee una sola, enorme, asignada de manera eficaz para crear el mismo efecto, de modo que cubra un terreno grande y variado con una cantidad comparativamente pequeña de RAM. Diversas secciones de la MegaTextura son cargadas en la memoria, escaladas y aplicadas a los modelos del terreno de manera eficaz y utilizando el menor número de datos posibles en memoria. El resultado son terrenos en los que ocurre menos repeticiones de texturas, lo que da una mejor apariencia.
La técnica sería mejorada en Wolfenstein: The New Order para ser conocida como Virtual Texturing, con texturas de 128,000 × 128,000 pixeles para el terreno y modelos in game, sprites, etcétera. Sin embargo, aunque el proceso es excelente para evitar el tiling y optimizar el uso de memoria hay desventajas, por ejemplo, los mods son muy difíciles cuando se utilizan texturas gigantes. El proceso depende mucho del sotware y cuando el motor no trabaja bien con el hardware ocurren inconsistencias, además del tamaño excesivo de las texturas en disco: 33 GB de los 40 GB totales de Wolfenstein: The New Order son texturas, y para desarrollar un parche para reemplazarlas habría que suplir archivos de dimensiones tan exageradas como 2.9 GB.
6. Conclusión: la realidad virtual y el sueño de una vida
Como nuestros lectores saben, la más reciente línea de trabajo de Carmack es la realidad virtual, un anhelo que lo llevó a abandonar en malos términos su propio hogar, id Software, para ayudar al desarrollo de Oculus Rift, hoy propiedad de Facebook. Explicar su trabajo en dicho proyecto está fuera de los alcances de este artículo, no sólo por la complejidad de esa tecnología, sino porque por ahora se trata de un secreto profesional fuertemente guardado que incluso lo ha confrontado con Zenimax. Sin embargo, algo queda claro: el trabajo de Carmack busca cumplir el sueño de una vida.
Es posible ver un patrón en las aportaciones técnicas de Carmack que nos ayuda a reflexionar sobre su genio. El diseñador no ha creado cosas de la nada sino que ha encontrado soluciones para adaptar tecnologías muy complejas y ya existentes en unidades de alto poder a los equipos de los jugadores y reducir la carga de procesamiento. Es decir, procedimientos óptimos para la distribución y resolución de procesos, reducción al mínimo del desperdicio y la redundancia: ya sea mediante la disminución del redibujado de cuadros en el smooth scrolling, el movimiento ilusorio en entornos planos del pseudo-3D, el diseño modular de niveles mediante archivos .WAD, el preprocesado en el verdadero 3D y las MegaTexturas como una distribución más eficaz de elementos gráficos. En ese sentido, un genio no es alguien que crea cosas desde cero, sino un hombre que encuentra una mejor manera de ver las cosas. Como dijo Einstein: "Genio es aquel que domina el caos".
Comentarios
Facebook
Tarreo (75)
Mejores
Nuevos