Benchmarking de Duke Nukem (y otros juegos BUILD)

Títulos y Sagas clásicas. Primeras décadas de los videojuegos.
Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2838
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 52 veces
Gracias recibidas: 233 veces
Contactar:

Benchmarking de Duke Nukem (y otros juegos BUILD)

Mensajepor zup » 11 Abr 2020, 16:08

Lo que hace el aburrimiento. Me ha dado por averiguar qué equipo se necesitaba para correr los juegos clásicos BUILD a altas resoluciones y he hecho unas cuantas pruebas en casa.

Mi intención era ver cómo se comportaban los juegos al forzarlos a resoluciones que en 1995 eran de ciencia ficción, y comprobar la caída de rendimiento.

Empecemos por hablar de mi máquina de pruebas: es un Toshiba Satellite Pro 4340, corriendo MS-DOS 6.22. Traducido en datos:
  • CPU Pentium III a 600Mhz.
  • 320Mb de SDRAMM, creo que a 100Mhz.
  • Tarjeta gráfica S3 Savage MX con 8Mb de memoria RAM (no es RAM compartida).
  • Tarjeta de sonido Yamaha YMF-744b, trucada para funcionar en MS-DOS (aunque esto no es importante).

Los juegos que he probado son Duke Nukem 3D, Shadow Warrior, Redneck Rampage y Blood. Las pruebas que he realizado han sido sin sonido, ya que la tarjeta de sonido es PCI y PCI no se lleva demasiado bien con MS-DOS.

Algunas sorpresas:
  • He sido incapaz de hacer que Duke Nukem 3D reproduzca sus propios ficheros de demo. En el resto de juegos ni lo he intentado.
  • Me ha sido imposible usar resoluciones de 1024x768 o superiores en los juegos sin utilizar nolfb.com (más sobre esto al final).
  • Parece que cuando se usa VESA, el framerate tiene un límite de 60 (¿será por el refresco de la pantalla?). Esto se evidencia en los resultados de Duke Nukem 3D (cuando no se usa nolfb).

Otra sorpresa es que el fichero de configuración permite cambiar un parámetro llamado screenmode que actúa sobre cómo se genera la pantalla. Según mis pruebas:
  • El valor 1 es el que se usa habitualmente para 320x200, y el 2 es el que debe utilizarse siempre para resoluciones VESA. Aunque VESA tiene un modo 320x200, usar el valor 2 da más fps (213 contra 174 en Duke Nukem 3D).
  • Los valores 3, 4 y 5 parecen de compatibilidad. Aunque usarlos da más fps que usar el valor 1 o 2, en mi PC producen un parpadeo muy molesto (algunos elementos parpadean más que otros, lo que apunta a que esto afecta al orden en que se dibujan las cosas). Es curioso porque mi portátil tiene una tarjeta derivada de las S3, y cuando se usa el valor correspondiente y se sale del juego, la VGA muestra corrupción hasta que se reinicia el equipo.
  • Los valores 6 y 7 son para usar gafas 3D... incluyendo las gafas cutres rojo/azul que se usaban para ver las primeras pelis 3D (y me refiero a películas de los 80).

Hablando de rendimiento puro:

Estos son los resultados que he obtenido, usando nolfb y sin sonido:

Juego/Res: | Duke Nukem 3D: | Shadow Warrior: | Redneck Rampage: | Blood:
320x200: | ~213 fps | ~150 fps | ~147 fps | ~147 fps
640x480: | ~ 49 fps | ~ 36 fps | ~ 38 fps | ~ 32 fps
800x600: | ~ 32 fps | ~ 24 fps | ~ 25 fps | ~ 20 fps
1024x768: | ~ 19 fps | ~ 15 fps | ~ 16 fps | ~ 11 fps
1280x1024: | ~ 12 fps | ~ 11 fps | ~ 10 fps | ~ ? fps
1600x1200: | ~ 8 fps | ~ 8 fps | ~ 7 fps | ~ ? fps


(No he podido obtener lecturas de Blood a resoluciones altas. Aunque el juego funciona, la pantalla del portátil no muestra la parte derecha del juego, que es donde aparecen.)

Tirando un poco de mátemáticas vemos que si queremos jugar a Shadow Warrior a 1024x768 y 60 fps, necesitaríamos un hipotético Pentium 3 a 2400Mhz (vamos una máquina unas 4 veces más potente). En realidad, debido a mejoras en las CPUs más modernas, la máquina que necesitaríamos estaría cerca de los 2 Ghz (aunque también estaría en el rango de los 3 Ghz en el caso de los Pentium 4).

En el caso más extremo (1600x1200), necesitaríamos un Pentium III a más de 5 Ghz para ir con soltura. En palabras más modernas, eso sería una máquina en torno a los 3 a 3.5 Ghz (creo). Palabras mayores para un juego de 1995.

Todo esto hay que cogerlo con puntilla... he mirado los índices de velocidad en enteros y coma flotante, pero habría que tener en cuenta (por una parte) que el acceso a RAM y buses también han mejorado (por lo que se podría llegar con equipos menos potentes) y que los resultados en fps no son demasiado fiables (por lo que quizás necesites algo más de CPU). Por otra parte, usar un port como eduke32 permite jugar a esas resoluciones con menos máquina y sin los quebraderos de cabeza de hacer funcionar MS-DOS en una CPU moderna. También he trabajado sobre la suposición de que los requerimientos crecen de manera lineal (p.ej.: si 20 fps necesitan 200 Mhz, 30 fps necesitarán 300), algo que no necesariamente es correcto.

Tenía intenciones de repetir las mediciones en mi equipo de sobremesa (AMD Ryzen 3 1200), pero aunque he podido arrancar FreeDOS desde USB, el teclado deja de funcionar en cuanto entro al juego (tendría que probar conectando un teclado al puerto PS/2).

NOLFB.COM... ¿realmente sirve de algo?

A lo largo de los años se ha usado nolfb.com para compatibilizar los juegos BUILD con equipos nuevos. Personalmente, nunca lo había usado hasta hacer estas pruebas, en las que he descubierto que en DOS puro y duro no podía pasar de 800x600. El caso es que, aunque nolfb permite usar altas resoluciones, tiene un impacto bastante negativo en el rendimiento (al menos en mi equipo de pruebas). Aquí va otra tabla de resultados:

Juego/Res: | Duke Nukem 3D: | Shadow Warrior: | Redneck Rampage: | Blood:
640x480: | ~ 60 fps | ~ 53 fps | ~ 60 fps | ~ 44 fps
640x480 (nolfb): | ~ 49 fps | ~ 36 fps | ~ 38 fps | ~ 32 fps
800x600: | ~ 60 fps | ~ 37 fps | ~ 48 fps | ~ 29 fps
800x600 (nolfb): | ~ 32 fps | ~ 24 fps | ~ 25 fps | ~ 20 fps


Como se puede ver, la caída de rendimiento es en torno al 40%, así que no me sirve para nada. En los modos de 640x480 y 800x600, tenemos framerates muy jugables que caen bastante en cuanto usamos nolfb. En este caso particular, nolfb nos permitiría jugar a resoluciones que (con él o sin él) irían a trompicones en esta máquina (supongo que si pudiera correr Shadow Warrior a 1024x768 sin nolfb, el rendimiento iría en torno a los 23 fps).

Juntando el sonido:

Y ya la última prueba antes de cortar todo este rollo. Estas pruebas las hice con Duke Nukem 3D en modos VESA (incluyendo 320x200) sin usar nolfb y con el sonido activado:

Juego/Res: | Sin sonido: | Con sonido:
320x200: | ~213 fps | ~207 fps
640x480: | ~ 60 fps | ~ 60 fps
800x600: | ~ 60 fps | ~ 55 fps


Son un poco inconsistentes a la hora de mostrar cuánto tiempo le cuesta procesar el sonido, pero los pongo para que el post quede completo.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
GXY
Amiga 1200
Amiga 1200
Mensajes: 1240
Registrado: 05 Oct 2013, 08:21
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Sony PlayStation 1
Gracias dadas: 29 veces
Gracias recibidas: 60 veces

Re: Benchmarking de Duke Nukem (y otros juegos BUILD)

Mensajepor GXY » 12 Abr 2020, 02:09

no creo que estos juegos fueran pensados para jugar a resoluciones mayores de 640x480

unas screenshots no hubieran estado de mas :D
RetroPescando... :mrgreen:

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2838
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 52 veces
Gracias recibidas: 233 veces
Contactar:

Re: Benchmarking de Duke Nukem (y otros juegos BUILD)

Mensajepor zup » 14 Abr 2020, 16:04

La verdad es que tampoco creo que estuvieran pensados para 320x200. Si en Redneck Rampage eliges 320x200, directamente te avisa de que deberías usar 640x480 como mínimo; en el resto de juegos no avisa pero los rayos láser de las minas de Duke Nukem 3D son difíciles de ver en 320x200.

Creo que las mejores resoluciones son 640x480 y 800x600, pero en su día era poco realista (demasiada gente con 486). En el caso de Duke Nukem 3D, no creo que las texturas estuvieran pensadas para 640x480; los demás juegos sí que parecen llevarlo mejor.

Al final es un poco tontería... puedes usar un Ryzen 5 (ayer conseguí lanzar Duke Nukem 3D en DOS en el equipo de mi mujer) y disfrutar el juego original a 1600x1200... o usar eduke con el pack HRP que, incluso a resoluciones menores, tiene mejor aspecto.

En cuanto a lo de las pantallas... pues no estoy seguro de si me lanzaré a tomar fotos. Personalmente, me gustaría tener para comparar algunos pantallazos de los parches de 3Dfx para Shadow Warrior y Blood (de los parches oficiales, no una Voodoo corriendo un port). Aunque estas tarjetas estaban limitadas también a 640x480, me gustaría ver las diferencias.

EDITO: He estado sacando pantallazos y comparando un poco. He utilizado los primeros niveles del juego (nada de expansiones, ya que la calidad de texturas varía según quién las hace). Varias conclusiones:
- Jugar a alta resolución no merece demasiado la pena. Los juegos parecen contener solo un set de texturas y de sprites, así que lo único que hacen es ampliar más los sprites y las texturas. A corta distancia no se aprecian mejoras, y gran parte del tiempo lo vas a pasar en el interior de edificios.
- Sin embargo, los juegos ganan bastante a distancias medias/largas. Se pueden ver más detalles a lo lejos, e incluso algún enemigo extremadamente lejano.
- En general, parece que BUILD está pensado para 640x480. Por encima, las texturas más cercanas no ganan ningún detalle; a 320x200 todo pierde detalles. ¿O quizás estaba más pensado para píxeles con aspect ratio 1:1 (y 320x240 sería su resolución "natural")?
- Quizás el mejor parado ha sido Blood. Por algún extraño motivo gana más detalle que los demás al aumentar la resolución y, a bote pronto, parece que la mejor resolución para este juego es 800x600. Es extraño, porque luego miras con más detalle las texturas cercanas y no han ganado ningún detalle.

Y sigo pensando que sería una buena idea coger capturas de Shadow Warrior y Blood usando 3Dfx... por comparar a ver qué diferencias tenía con las versiones normales.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
GXY
Amiga 1200
Amiga 1200
Mensajes: 1240
Registrado: 05 Oct 2013, 08:21
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Sony PlayStation 1
Gracias dadas: 29 veces
Gracias recibidas: 60 veces

Re: Benchmarking de Duke Nukem (y otros juegos BUILD)

Mensajepor GXY » 15 Abr 2020, 15:37

sobre las resoluciones yo llegué hace 20pico años a la misma conclusion dando muchas menos vueltas :D (que subir por encima de 800x600 no tenia sentido practico, que mejor 640x480 que 320x200 y que se ganaba poco de 640x480 a 800x600)... todo ello en pentium MMX tochos o Pentium II porque para empezar, habia que tener maquina suficiente como para que el juego no lageara en 640x480 o 800x600, para lo cual, bajo DOS, se necesitaba un pentium 200 MMX minimo).

pero esta bien la lectura para saber un poco mas de las tripas de estos juegos.

al final el quid de la cuestion, mas que el motor, es la resolucion de las texturas empleadas en el juego. en ello por logica DN3D sera el peor por haber sido el primero. y tiene logica que blood mejore un poco a shadow warrior y a redneck rampage ya que en su momento tuvo mas medios y presupuesto para ser realizado. al final estas cosas "pesan".

aun asi, son diferencias pequeñas. mas pequeñas que por ejemplo entre doom y muchos de los clones que utilizan el mismo motor, donde hay mucha castaña hecha con lo minimo tanto en medios tecnicos como en personal.
RetroPescando... :mrgreen:

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2838
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 52 veces
Gracias recibidas: 233 veces
Contactar:

Re: Benchmarking de Duke Nukem (y otros juegos BUILD)

Mensajepor zup » 15 Abr 2020, 17:41

Bueno, la historia era intentar ver cuánta máquina se necesitaba para correr al máximo de resolución, o bien cómo caía el rendimiento al aumentar la resolución a valores exagerados. Todo esto no tiene ningún valor práctico, simplemente satisfacer un ataque de curiosidad. Si quiero jugar a Duke Nukem a altas resoluciones... pues tiro de eduke32 y HRP.

De hecho, al probarlo todo en un portátil, las resoluciones de 1280x1024 y 1600x1200 no cabían enteras en la pantalla (tampoco tengo ningún monitor capaz de representarlas). Me ha sorprendido que el portátil, aún "sabiendo" que su pantalla era de 1024x768, me haya dejado utilizar estos modos.

La otra gran sorpresa, como he comentado al hacer el benchmark, es que nolfb (considerada la utilidad milagrosa para juegos BUILD) tenga semejante impacto en el rendimiento.

En otro orden de cosas, he hecho dos experimentos más. He ejecutado Duke Nukem 3D a 320x240. El resultado mejora mucho la calidad, tanto que (subjetivamente) la calidad quedaría a medio camino entre 320x200 y 640x480. Si bien al ver las imágenes de 640x480 uno se pregunta cómo pudo tragar con el modo 320x200, el de 320x240 es mucho más aceptable y realmente hubiera estado bien que este hubieran utilizado un Modo X por defecto (en el juego se utiliza un modo VESA 2.0, lo que limita la compatibilidad).

También me he pegado un rato largo intentando poner en marcha el parche de 3Dfx de Shadow Warrior. Al final lo he conseguido usando Dosbox ECE + drivers de Diamond Monster 3D v1.08 + Shadow Warrior 3Dfx patch 1.1. Técnicamente no se han roto mucho la cabeza: parece que lo único que han hecho ha sido utilizar los filtros de la tarjeta, mientras que los polígonos y texturas están hechos por software. Este efecto de suavizado hace que los sprites y texturas tengan mejor aspecto, pero al precio de que la zona de marcadores (y, en general, toda la pantalla) parecen borrosos. Otra curiosidad es que en movimiento tiene buen aspecto, pero las capturas de pantalla (y he capturado usando F12, con lo que es el propio Shadow Warrior el que genera una captura) tienen mucho "ruido" y un aspecto bastante asqueroso.

GXY escribió:al final el quid de la cuestion, mas que el motor, es la resolucion de las texturas empleadas en el juego. en ello por logica DN3D sera el peor por haber sido el primero. y tiene logica que blood mejore un poco a shadow warrior y a redneck rampage ya que en su momento tuvo mas medios y presupuesto para ser realizado. al final estas cosas "pesan".

aun asi, son diferencias pequeñas. mas pequeñas que por ejemplo entre doom y muchos de los clones que utilizan el mismo motor, donde hay mucha castaña hecha con lo minimo tanto en medios tecnicos como en personal.


Bueno, habría que hacer algunas puntualizaciones sobre esto... en primer lugar, realmente lo que "pesan" son las texturas en sí ;) Creo que todos los juegos BUILD solo usan un único juego de texturas (el que parece optimizado para 640x480), pero si quisieras que tuviera buen aspecto a 1024x768 o 1600x1200 te quedan dos caminos: utilizar un juego de texturas optimizado para resoluciones altas y escalar para abajo, o utilizar DOS juegos de texturas (uno para resoluciones bajas y otro para altas). En cualquier caso, los requerimientos de espacio en disco se multiplicarían, y Duke Nukem 3D salió en una época en la que todavía se contemplaba distribuir el software en disquetes.

En cuanto a los juegos en sí. BUILD fue evolucionando y las fechas de lanzamiento no parecen corresponderse con la evolución. Shadow Warrior y Blood utilizan un BUILD levemente mejorado respecto a Duke Nukem 3D que permite usar voxels (de hecho Blood usa voxels para las armas y personajes, quizás sea esta la clave de su mejor aspecto); Redneck Rampage es posterior a ambos pero parece usar una versión más antigua del motor.

Y, bueno... lo de diferencias pequeñas... se podría discutir por dos motivos. Mi primera tentación cuando fui a capturar pantallazos fue usar Duke Caribbean: Life is a Beach (a mi parecer, la mejor expansión de Duke Nukem 3D), pero deseché esa idea. Como has dicho, la calidad de las texturas varía según quién hace el juego y en esas capturas habría texturas propias de Duke Nukem 3D mezcladas con las de la expansión. En alguna de las otras dos expansiones (creo que fue en Nuclear Winter), las texturas no tenían tanta calidad como en el original así que (de manera preventiva) deseché esa idea. (NOTA: hay todo un museo de los horrores de las texturas en los niveles hechos por aficionados, pero estos son categoría aparte).

Lo segundo es que he usado "los cuatro grandes" (la selección no ha sido gran esfuerzo... son los únicos que había comprado). Otros que usó BUILD fue NAM... y sí, hay diferencias en cuanto a la calidad de las texturas.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!


Volver a “Videojuegos clásicos”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados