edición general
12 meneos
159 clics
Cómo Michael Abrash duplicó los fotogramas por segundo de Quake  [ENG]

Cómo Michael Abrash duplicó los fotogramas por segundo de Quake [ENG]

Con el lanzamiento del código fuente de Quake en 1999, se incluyó un archivo readme.txt escrito por John Carmack. Hay una frase en particular en ese texto que despertó mi curiosidad. "Masm también es necesario para compilar los archivos de lenguaje ensamblador. Es posible cambiar un #define y compilar solo con código C, pero las versiones de renderizado por software pierden casi la mitad de su velocidad". ¿Quake sería un 50 % más rápido gracias a su ensamblador artesanal? Averigüemos si eso es cierto, cómo funciona y como se optimizó.

| etiquetas: quake , fps , framerate , michael abrash
Ésta gente hacía pura magia para optimizar, igualito que ahora :troll:
Los programadores de antes (entiéndase, en la época de Kernigham y Ritchie) eran artistas, artesanos. Se tenían que fabricar sus propias herramientas para optimizar porque el hardware no daba más de sí. Ahora tenemos a físico-matemáticos ideando algoritmos para modelizar respuestas que se usarán para mejorar esos mismos algoritmos, que se encargarán de mandar a la calle a esos físico-matemáticos. :-P
En esa época no era raro ganarle al compilador, más adelante se volvió casi imposible y luego ya inútil por la cantidad de variables que tenías que tener en cuenta y los diferentes conjuntos de instrucciones.
Por cierto, está hablando de un motor 3D por software, había que hacer todo a mano y solo a base de CPU, aún no era común tener una aceleradora 3D,ñ. Incluso el Quake 2 tenía un motor 3D por software. No fue hasta el Quake 3 que se requirió aceleración 3D obligatoria.

menéame