Los juegos de video son una industria que, según dicen, deja más utilidades que toda la industria del cine en los Estados Unidos. Si esto es cierto, es evidente que hay una oportunidad de negocios en este nicho de mercado, probablemente. De hecho, la propia industria de Hollywood ha incursionado en este terreno más de una vez. Desde el infame juego sobre ET, que califica como el peor software en la historia de los videojuegos, hasta aquellos basados en películas como La Guerra de las Galaxias.
«Star Wars: Yoda Stories» fue uno de esos juegos que pasó sin pena ni gloria por el mundo. Lanzado en 1997 por LucasArt, no tuvo prácticamente críticas y fue olvidado. Probablemente después de otro juego con muy malas calificaciones, «Phantom Menace», quedó claro que no porque venga de Lucas o con el tema de la Guerra de las Galaxias debe ser bueno. Zach Barth se dedicó a jugar por un tiempo el de las historias de Yoda, pero años más tarde, decidió que le interesaría ver cómo estaba hecho dicho juego y decidió hacer cierta ingeniería en reversa.
El juego tiene un archivo de datos en binario, el cual es analizado por el juego mientras éste se ejecuta, para extraer los sonidos, los sprites (las imágenes que se mueven en la pantalla), y los mosaicos que forman el mapa. Probablemente el archivo de datos más conocido sea el de Doom (los archivos WAD), los cuales sirven para crear los escenarios entre muchas más cosas y que ha generado un número de programas que permiten editar este archivo.
Después de ver el archivo con detalle, Zach empezó a escribir scripts en C# para extraer las diferentes secciones del archivo de datos. Una vez que una sección era encontrada, se usaba más código para aplicar la paleta de colores y generar los bitmaps. Al final el autor pudo obtener miles de mosaicos que forma los mapas directamente del archivo de datos. Es probable que otro juego antiguo de LucasArts, «Indiana Jones and His Desktop Adventures», podría utilizar las mismas técnicas.
Zach ha documentado todo en su página, lo cual es interesante finalmente, pues podemos sacar provecho del formato que se usó en este juego y ver si es víable para ser utilizado en algún otro, o bien, simplemente para aprender cómo otros programadores hacen las cosas.
Referencias: