“Probablemente, puedo proporcionar más detalles al respecto, dado que fui el responsable de escribir todo el código ensamblador utilizado en Age of Empires y Age of Kings. Descubre los entresijos detrás de estos icónicos juegos gracias a mi experiencia en el desarrollo del código que los hizo posibles”.
Actualización 09/01/24: En la versión original de este artículo, se atribuía incorrectamente a Matt Pritchard como “líder de codificación” en Age of Empires. “Ese papel correspondía a Angelo Laudon, quien lo desempeñaba de manera excepcional”, aclara Pritchard. “A mí me asignaron responsabilidades relacionadas con gráficos y optimización, entre otras cosas. Posteriormente, estuve a cargo de las versiones HD y DE”. Ofrecemos disculpas por cualquier confusión ocasionada por este error.
Descubre algunas de las historias más fascinantes sobre juegos que revelan los ingeniosos trucos que los desarrolladores utilizaron para que todo encajara. Pregunta a cualquier desarrollador sobre sus soluciones favoritas y te sumergirás en una noche llena de entretenimiento, desde cómo un tranvía gigante se convierte en un PNJ con sombrero, hasta cómo los conejos son esenciales para el funcionamiento de Azeroth, y mucho más. ¡Explora el ingenio detrás de tus juegos favoritos y descubre los secretos detrás de su creación!
Aunque no está directamente relacionado, un usuario de Reddit notó recientemente que Chris Sawyer escribió Rollercoaster Tycoon 1 y 2 en lenguaje ensamblador, y aparentemente Age of Empires también siguió la misma ruta: “¡¿Age of Empires está escrito en ensamblador: es esto realmente VERDADERO?!” Es crucial tener en cuenta que esto no era poco común en el pasado, aunque aún resultaría notable que un juego completo estuviera codificado de esta manera. El lenguaje ensamblador, en resumen, es cualquier lenguaje de codificación de bajo nivel que se comunica de manera más directa con la arquitectura de una computadora que los lenguajes de alto nivel como C++.
La pregunta acerca de sí Age of Empires fue programado en lenguaje ensamblador ha alcanzado estatus destacado en las respuestas, gracias a Matt Pritchard, uno de los miembros fundadores de Ensemble Studios. Él lideró la codificación, encargándose tanto de los gráficos como de la optimización en las primeras entregas, así como en las posteriores ediciones HD/DE.
“Supongo que puedo aclarar esto, dado que fui el responsable de escribir todo el código ensamblador utilizado en Age of Empires y Age of Kings, junto con muchas otras partes de esos juegos”, afirma Pritchard. “En total, se recopilaron alrededor de ~13,000 líneas de código ensamblador x86 de 32 bits”. Descubre más sobre el detrás de escena de estos juegos legendarios y el papel fundamental de Pritchard en su desarrollo.”
Pritchard detalla que la esencia de esto radica en el núcleo de dibujo, compilado mediante Microsoft Macro Assembler 6.1 en un archivo .obj y, en algunos casos, en Visual C++. En resumen, esta técnica representaba una forma extremadamente eficaz de renderizar sprites en el juego, y Pritchard calcula que era aproximadamente 10 veces más rápida que las implementaciones convencionales de C++.
“El motor de renderizado de AoE destacaba notablemente en velocidad en comparación con competidores como StarCraft. Esta es la razón por la cual la resolución predeterminada ‘lista para usar’ para AoE era de 800 por 600, cuando la mayoría de nuestra competencia se conformaba con una resolución de 640 x 480”, explica Pritchard. “Podíamos desplazarnos por la pantalla y llenarla con sprites de manera igual o incluso más rápida, a pesar de tener el doble de píxeles en el área del mundo del juego”.
El código ensamblador ha perdurado, incluso durante la era de Age of Kings: edición HD (un juego de 32 bits). Sin embargo, Pritchard tomó la iniciativa de ‘reconstruir’ las funciones ensambladoras en C++ para ambas ediciones definitivas, considerando que son programas de 64 bits y basados en la nube. El compilador de C++ de 64 bits nunca fue compatible con el ensamblaje, y las mejoras sustanciales en los conjuntos de registros y en las optimizaciones del compilador eliminaron la necesidad de ello. Además, el proceso de dibujo de sprites en las ediciones definitivas es multiproceso, aprovechando hasta 4 núcleos exclusivamente para esa tarea.
La necesidad de esta solución radica en que ambos juegos estaban en desarrollo en una época en la que las tarjetas 3D independientes eran escasas: ‘la vanguardia era 2D con una tarjeta 3D separada como Voodoo 1 y 2’, según menciona Pritchard. Se adentra en algunos detalles sobre las limitaciones técnicas de la época, destacando que la CPU Pentium 166 en las máquinas utilizadas por la mayoría de los desarrolladores de Ensemble “tenía 16K de caché… ¡EN TOTAL!”. O, para expresarlo de manera más clara: “Es probable que estés utilizando actualmente una PC con más memoria caché en la CPU de la que tenía EN TOTAL la PC en la que desarrollé AoE.
Pritchard ha tenido una destacada carrera, pero sin duda alguna siente una afinidad especial por Age of Empires, y nos cuenta el origen de la edición HD (que no debe confundirse con la Edición Definitiva). ‘La edición HD surgió después de años tocando puertas en Microsoft, buscando despertar interés. El contrato con Hidden Path (donde trabajaba en ese momento, contribuyendo a CS:GO para mi empleador anterior, Valve) era bastante limitado’, señala Pritchard.
“Microsoft no anticipó un gran interés en una versión totalmente digital descargable de un juego 2D de los años 90 (la versión en CD-ROM del juego original aún estaba en las tiendas apenas uno o dos años antes). La remasterización en alta definición fue llevada a cabo por un talentoso equipo en HPE con un presupuesto modesto (~5 personas, poco menos de un año), lo que mantuvo los cambios dentro del ámbito de lo “absolutamente necesario” en lugar de las aspiraciones más ambiciosas de las Ediciones Definitivas”.
También se incluyen detalles divertidos sobre las adaptaciones a diferentes consolas de los juegos. Según Pritchard, “Ensemble no tuvo nada que ver con la adaptación a PS2”. Microsoft gestionó la negociación por sí misma, proporcionó un código y un activo en CD, y simplemente dijo ‘hazlo’. El proceso fue casi igual para la adaptación a Dreamcast, aunque en ese caso, pasé una hora dibujando en una pizarra y tratando de explicar detalles gráficos a un ingeniero de Konami que no hablaba inglés, mientras yo no hablaba japonés.
Pritchard concluye afirmando: ‘Me siento muy afortunado de haber desempeñado un papel crucial en esos juegos desde sus inicios y su creación en 1996 hasta ser la fuerza motriz detrás del resurgimiento en 2010-11 y hasta el día de hoy, culminando mi propio viaje con él una vez que DE se lanzó en 2019″.
“Me siento increíblemente afortunado de haber formado parte de su creación y, hasta el día de hoy, me honro por todo el disfrute y más que ha proporcionado a la gente. Mi carrera en el desarrollo de juegos no habría sido tan exitosa sin todos los apasionados fanáticos y seguidores de estos juegos”.
Descargo de responsabilidad: Todas las imágenes tienen derechos de autor de sus respectivos dueños y Hablamos De Gamers las utiliza únicamente con fines informativos.