KailKatarn escribió:wwwendigo escribió:Si lo dices por el tema de las nuevas APIs, eso sólo será en cuanto sea la sobrecarga de llamadas la que limite el rendimiento en juegos, en la mayoría de casos el mayor uso de cpu en juegos no viene del uso del API, sino de subsistemas como física, IA, etc.
Y eso no va a cambiar sólo por el cambio de APIs, no te creas que todo es como en las pruebas teóricas, que están muy bien y nos muestran la mejora concreta en el tema de APIs, pero no representan un caso real de juego en acción.
Será por las grandes físicas que tienen los juegos de hoy por hoy o esas enormes IA que parece que estás jugando contra un ser humano, verdad? si hasta Half Life 2 con 10 años a sus espaldas se ríe casi del 99.9% de los juegos actuales en esos aspectos.
Lo que está lastrando el rendimiento hoy por hoy es que programan como el culo, con programación en el mayor alto nivel posible (en vez de usar el más bajo posible) y con depuración 0 porque el tío que ha puesto el maletín para que salga el juego está apretando para que lo saques ya.
PD: Ah! eso y sobretodo explotar la mayor parte de los batchs en un sólo núcleo, que encima suele ser el mismo que llama a dibujo (drawcalls) así que sí, la inmensa mayoría de juegos ya mejorarían mucho sólo si no se dedicara un sólo núcleo a dibujo.
Sí existe un problema de la explotación del API en temas de gestión de drawcalls, es un problema del API más que del desarrollador.
Pero fuera de esto, lo más pesado a la hora de programar un juego no es la gestión del API, excepto que esta sea extremadamente pesada por cantidad de unidades u objetos renderizados, la mayoría de las veces se está muy por debajo de estos efectos.
Pero eso ya lo veremos cuando salgan juegos DX11 y DX12, donde se podrán comprobar las ventajas de eliminar esa sobrecarga de gestión del API en un único núcleo y de forma seriada. Ya verás como muchos juegos mejoran mucho más levemente entre versiones DX11 y DX12 de lo que puede hacer pensar los tests sintéticos, que están ahí para mostrar bien sólo esa característica-flaqueza de las APIs y sus llamadas.
Los juegos actuales no parecen haber evolucionado mucho su física, ni la IA si miras ejemplos como el puesto, pero la física de HL2 mientras que muy buena para el momento, sólo nos muestra de forma magistral lo útil que es la física de primer nivel simulada para dar sensación de "realidad" en un entorno. La física de segundo nivel es más limitada en el juego.
Sin contar que los escenarios son muy limitados en cantidad de objetos con los que se puede interaccionar físicamente o que están sufriendo algún proceso de simulación física.
Juegos como los Crisys son mejores ejemplos de una física más bestial en todos los puntos, y más moderno. La carga en cpu es muy superior a lo visto en HL2.
NO se programa peor ahora que hace 10 años, se programa de forma similar o de hecho mejor, porque para variar los motores del juego sí son multihilo y mucho más eficientes que los de esa era (esto no tiene nada que ver con el tema del API y su gestión monohilo o multihilo, que es responsabilidad de microsoft o Khronos group según la que se mire).
Un juego como Dying Light es mucho más pesado que cualquier cosa de esa época con gran diferencia, la simulación de física, IA o simplemente la gestión de recursos del mapa para pasarlos a la "pipe gráfica", está muy por encima de estos casos.
El primer juego "moderno" en ese estilo es Far Cry. HL2 "sólo" es una obra maestra pero de un estilo anterior, muy bien llevado y disimulado, que es el juego de "pasillos cerrados", eso sí, ampliando al máximo el concepto y dando una sensación de libertad mucho mayor (algunos mapas son bastante amplios, pero en el fondo siguen el concepto de "pasillo"). La IA de HL2 en realidad es bastante deficiente, dado que está basada en cantidades enormes de scripts, había formas de deshabilitar esta "falsa IA" y la IA básica de los enemigos era enormemente básica (básicamente no hacían más que reaccionar a los ataques realizados o ver directamente al jugador, poco más, nada de cubrirse ni coordinación entre distintos "bots", todas esas florituras se conseguían en el juego por un sistema "duro" de scripts).
Los juegos actuales son mucho más complejos que HL2 a nivel técnico, otro tema es si un CoD o similares es un buen juego o a pesar de usar motores más potentes hacen el canelo con diseños pasilleros que no están a la altura ni del HL original (la mecánica de juegos pasilleros es muy útil para un tipo concreto de diseño donde se pretenden controlar al máximo los eventos scriptados, como con CoD, el rey de los scripts).