(26-05-2015 15:40)chente link escribió:Pues no entiendo que no se haga, si las consolas tienen 8 núcleos
Entiendo que se está desperdiciando también la CPU de la consola, siendo éste uno de los puntos flojos además de las mismas, no?
Hay varias maneras de utilizar múltiples núcleos. Lo ideal es programar para que directamente utilice cada núcleo. Y eso no es nada sencillo. Ya es complejo distribuir las tareas para un solo nucleo... imagínate, la complejidad se multiplica x8. Además, eso hay que hacerlo desde el principio, es de lógica: si no le dices nada, la CPU funcionará con un solo núcleo, tendrás que reescribirlo todo. Y un juego actual debe ocupar decenas de miles de lineas de código.
Otro ejemplo para que se entienda mejor: Core 0 hace tarea X, Core 1 hace tarea Y, Core 2 procesa X e Y; Core 2 no puede continuar porque Core 0 no ha terminado de procesar su tarea, a pesar de que Core 1 si la ha terminado. Esto es lo más simple, imagínate la infinidad de situaciones. Hay que saber muy bien lo que se hace para programar multinúcleo.
Otra opción es depender del sistema operativo, que sea eficiente distribuyendo tareas entre los núcleos. Por ejemplo, desde Windows Vista/7 ha habido un incremento sustancial en multinúcleo, Windows XP era muy ineficiente. Lo mismo para las librerías gráficas, se supone que Windows 12 será un gran avance, aparte de acceder más rápido a las CPUs.
Otra opción es utilizar engines gráficos y otros frameworks extras para juegos, que estén optimizados para multinúcleo. Los engines ya los conocemos todos (Unreal, nity, Frostbyte). Los frameworks extras son por ejemplo: Physx para físicas, SpeedTree para paisajes (Skyrim, el mismo The Witcher 3, y otros para tareas como sincronicación labial, capturas de movimientos, etc...
Lo que hacen la mayoría es la última opción: engines y frameworks ya hechos. Los que se hacen sus propios engines, es porque tienen mucho presupuesto y mucha gente trabajando; siempre es bueno tener especialistas en engines gráficos, aunque compres licencias, ya que muchas veces acaban toqueteando los engines a su gusto.