El gran padre de los FPS en primera persona, Doom, es mucho más que un videojuego. Es una plataforma sobre la que experimentar de muchas maneras. No sólo por el hecho de que a día de hoy se siguen sacando mods para este venerable juego (y muchas de sus secuelas), sino también porque es asombrosa la dedicación de sus fans para ejecutarlo de las maneras más inimaginables en alocados ports.
Pero no todos los experimentos tienen por objetivo mostrarnos Doom de manera mejorada o con arreglos para que se vea mejor -de hecho, el ejecutarlo en según qué dispositivos afea y mucho la experiencia-, a veces se busca ofrecerlo de formas que nos ayudan a entender cómo funciona el mundo de la informática. Y la historia de un usuario que ha conseguido ejecutar el juego en TypeScript es valedora de cómo se hizo el peor port del FPS más conocido del mundo.
Doom en TypeScript, el peor port
Para los que no conozcan esta palabra, de manera resumida, TypeScript es un lenguaje de programación libre con base en Java y C++ que añade tipos de objetos interactivos y estáticos basados en clases; o en cristiano, es un superconjunto (compilación de varios lenguajes de programación) del Javascript, el código que se emplea en páginas web para mostrar los elementos y hacerlos interactivos.
Sus líneas de código están pensadas para ''traducir'' lo que una página web muestra en su programa a nuestros navegadores: contenido básico (imágenes y texto), animaciones, Gráficos en 2D/3D... demasiadas aplicaciones para mencionarlas aquí. El caso es que es un superconjunto realmente flexible y que permite el muestreo de muchas funciones.

Pues bien, resulta que un usuario ha conseguido ejecutar el Doom original de 1993 íntegramente con este lenguaje de programación. Hay un resumen de cómo lo consiguió en Youtube (en inglés, eso sí), pero no recomendamos que nadie lo intente en casa. La idea de Dmitri Mitropoulos -así se llama el autor de este funcional pero aparatoso hasta el infinito port- era comprobar si en efecto el lenguaje era capaz de ejecutar un programa relativamente complejo como un FPS, en este caso Doom.
Compilando las líneas de código necesarias para traducir todos los elementos del juego (y estamos hablando de cada pixel, instrucción, mapeado, textura y sonido del juego) consiguió que el juego se ejecutara en él. Pero aparte del esfuerzo que le supuso el conseguirlo -en el vídeo reconoce que tuvo que utilizar más subrutinas y lenguajes que los que TypeScript ofrece por defecto, como WebAssembly, e incluso crear lenguajes completamente nuevos- necesitó de un espacio de almacenamiento y de memoria que muy pocos ordenadores poseen en el mundo.
90GB de RAM y 177 TB para ejecutar el port
Por traducir numéricamente esta locura: aunque es posible como ha demostrado ejecutar el programa, estamos hablando del port peor optimizado de la Historia en todos sus departamentos. Si se ejecuta Doom en TypeScript, la máxima velocidad a la que es capaz de generar un ''frame'' es de 12 días; o 0,0000009645 cuadros a una resolución de 320x200 cada segundo. Con lo cual, a ojo de buen cubero, ni en un siglo jugando sin parar seriamos capaces de superar el primer nivel de Doom, ni ''rusheandolo'' (el tiempo par del primer nivel del juego es de 30 segundos).

Pero eso es sólo el principio. Para que TypeScript sea capaz de compilar toda la información del programa sin ''crashear'' o que nos dé error, necesitamos disponer de 90GB de memoria RAM. A eso hay que sumarle 177 TB de memoria libre para que se pueda ejecutar la paginación con el sistema operativo; y si ya os parece mucho, sin depurar las líneas de código (optimizando los comandos de TypeScript) nos pediría 1'25 PetaBytes (PB).
Lo más asombroso de esta historia es que es una muestra de lo que os decíamos al principio: la dedicación de los fans a conseguir ejecutar el juego de formas imposibles, Mitropoulos asegura que ahora está trabajando en conseguir que se pueda generarse un frame o cuadro de Doom en Typescrypt en un periodo no superior a 12 horas.
En 3DJuegos PC | DOOM The Dark Ages confirma sus requisitos mínimos y recomendados de PC, además de su fecha de lanzamiento
En 3DJuegos PC | El primer gran campeón de los eSports se llevó el Ferrari del padre de DOOM, y fue un premio tan bueno que no podía ni conducirlo
Ver 0 comentarios