Logotipo de Zephyrnet

El desarrollador de Age of Empires confirma que el juego está escrito principalmente en código ensamblador de bajo nivel porque "podíamos desplazarnos por la pantalla y llenarla con sprites tan rápido o más rápido" que competidores como Starcraft "a pesar de que teníamos el doble de píxeles".

Fecha:

Algunas de las mejores historias sobre juegos tratan simplemente de cómo los desarrolladores hicieron que funcionaran. Pregúntele a cualquier desarrollador cuál es su solución favorita y obtendrá una noche completa de entretenimiento sobre cómo es en realidad un tranvía gigante. un NPC con un sombrero puesto, o cómo son en realidad los conejos ¿Qué hace que Azeroth funcione?, Y así sucesivamente.

Esto no va del todo en ese sentido, pero un redditor notó recientemente que Chris Sawyer escribió Rollercoaster Tycoon 1 y 2 en lenguaje ensamblador, y aparentemente Age of Empires fue lo mismo: "AoE está escrito en ensamblador: ¡¿es esto realmente VERDADERO?!" Es importante tener en cuenta que esto no era raro en el pasado, aunque aún sería bastante notable si un juego completo estuviera codificado de esta manera. El lenguaje ensamblador, para ser lo más breve posible, es cualquier lenguaje de codificación de bajo nivel que se comunica más directamente con la arquitectura de una computadora que los lenguajes de alto nivel como C++.

La pregunta sobre si Age of Empires estaba codificado en lenguaje ensamblador Golpea el oro en las respuestas. gracias a Matt Pritchard, uno de los miembros fundadores de Ensemble Studios, quien ha sido el líder de codificación de la serie desde el principio.

"Supongo que puedo aclarar esto, ya que escribí todo el código ensamblador utilizado en Age of Empires y Age of Kings, junto con muchas otras partes de esos juegos", dice Pritchard. "Hubo alrededor de ~13,000 líneas de código ensamblador x86 de 32 bits escritas en total".

Pritchard continúa explicando que la gran mayoría de esto estaba en el “núcleo de dibujo”, que fue compilado por Microsoft Macro Assembler 6.1 en un archivo .obj y en otros casos en Visual C++. En términos sencillos, esta era una forma extremadamente eficiente para que el juego dibujara sprites, y Pritchard estimó que era alrededor de 10 veces más rápido que las implementaciones estándar de C++.

"El núcleo de dibujo de AoE era notablemente más rápido que el de competidores como StarCraft, razón por la cual la resolución predeterminada 'lista para usar' para AoE era 800 por 600, cuando casi toda nuestra competencia tenía una resolución de 640 x 480", dice Pritchard. "Podíamos desplazarnos por la pantalla y llenarla con sprites tan rápido o más rápido incluso si teníamos el doble de píxeles en el área del mundo del juego".

El código ensamblador permaneció en uso incluso en la época de Age of Kings: edición HD (un juego de 32 bits), pero Pritchard “reescribió las funciones ensambladoras en C++ para ambas ediciones definitivas, ya que son programas de 64 bits y en línea. El compilador C++ de 64 bits nunca admitió el ensamblaje, y los conjuntos de registros y las optimizaciones del compilador enormemente mejorados lo hicieron innecesario. Además, el dibujo de sprites en las ediciones definitivas es multiproceso y utilizará hasta 4 núcleos sólo para esa tarea”.

Parte de la razón por la que se requirió tal solución es que ambos juegos se estaban desarrollando en un momento en que las tarjetas 3D independientes eran poco comunes: "la vanguardia era 2D con una tarjeta 3D separada como Voodoo 1 y 2", dice Pritchard. Entra en algunos detalles sobre las restricciones técnicas de la época, señalando que la CPU Pentium 166 en las máquinas que usaban la mayoría de los desarrolladores de Ensemble "tenía 16K de caché... TOTAL". O para decirlo en términos más claros: "Probablemente esté trabajando en este momento en una PC con más memoria caché en la CPU que la que tenía en TOTAL la PC en la que desarrollé AoE". 

Pritchard tuvo una gran carrera, pero claramente tiene una afinidad real por Age of Empires y menciona cómo surgió la edición HD (que no debe confundirse con la Edición Definitiva). “La edición HD surgió después de haber estado tocando puertas en Microsoft durante algunos años tratando de que alguien se interesara, y el contrato con Hidden Path (donde estaba en ese momento, trabajando en CS:GO para mi anterior empleador, Valve). era bastante pequeño”, dice Pritchard.

“Microsoft no pensó que hubiera mucho interés en una versión de descarga totalmente digital de un juego 2D de la década de 1990 (la versión en CD-ROM del juego original todavía estaba en las tiendas sólo uno o dos años antes). HD fue realizado por un gran equipo de HPE con un presupuesto reducido (~5 personas, ~ poco menos de un año), por lo que los cambios se mantuvieron en el ámbito de lo “absolutamente necesario” en lugar de las Ediciones Definitivas más aspiracionales”.

También hay algunos detalles divertidos sobre los distintos puertos de consola de los juegos. "Ensemble no tuvo nada que ver con la adaptación a PS2", dice Pritchard. “Microsoft negoció el acuerdo por sí mismo y les dio un código y un activo en CD y les dijo: 'hazlo'. Casi lo mismo para el port de Dreamcast, aunque para ese pasé una hora dibujando en una pizarra y tratando de explicar los detalles gráficos a un ingeniero de Konami que no hablaba inglés mientras que yo no hablaba japonés”.

Pritchard termina diciendo: “Soy muy afortunado de haber podido desempeñar un papel importante en esos juegos desde el principio y su creación en 1996 hasta ser la fuerza impulsora detrás del resurgimiento en 2010-11 hasta nuestros días, terminando mi propio viaje. con él una vez que DE se lanzó en 2019.

“Soy muy afortunado de haber sido parte de su creación y me siento honrado hasta el día de hoy por todo el disfrute y más que ha brindado a la gente. Nunca habría tenido la gran carrera en el desarrollo de juegos que tuve sin todos los fanáticos y seguidores de esos juegos”.

punto_img

Información más reciente

punto_img