jueves, 29 de enero de 2009

GANANDO PERFORMANCE EN XNA GSE

El artículo original fue escrito el 13-Ago-07.

Viejo! Relmente preciso conseguir las diapositivas de Shawn ... info muy útil y consejos para programar juegos usando XNA GSE, tanto para Windows cuanto la 360. El cubrió muchas áreas, como gráficos, matemática, hilos múltiples y herramientas de perfilamiento.

Aquí les dejo algúnas líneas:

  • Gráficos: Shawn mencionó cosas como el spritebatch, luego shaders, materiales y efectos, y finalmente renderstates. Algúnas conclusiones: usen el GPU lo más que puedan, no olviden configurar el SpriteSetMode, entiendan el sistema de llamadas de la XBox 360 y eviten abusar de los bloques de estado.
  • Matemática: es increíble como podemos ganar algo de performance pasando structs por referencia y haciendo cómputos alineados (inline). Sobre esto último, se pueden alinear constructores (un ejemplo de ello fue presentado). Aquellos de nosotros que hemos tenido experiencia con el framework .NET 3 y 3.5 sabemos que el modo ventajoso como esto es manejado en dichas versiones del framework.
  • Hilos Múltiples: obligatorio! A los efectos de obtener ventaja de esta funcionalidad en la XBox 360, debemos entender como están organizados los núcleos e hilos múltiples así como también el hecho que debemos manualmente asignar los hilos a los núcleos de la 360 (esto no se hace automaticamente). También tengan en cuenta que el Gestor de Contenido (Content Manager) no es thread-safe y que el manejo de entradas del usuario no puede reasignarse a hilos secundarios en Windows (léase, debe siempre permanecer en el hilo principal).
  • Herramientas: no hay mucha ayuda para identificar cuellos de botella en la XBox 360, y por ello, analicen perfíles en Windows and hagan inferencias (obviamente, recuerden la forma como el compact framework de .NET gestiona a la recolección de basura y a las generaciones).

Hubieron más puntos a mencionar de la presentación de Shawn sumado a una variedad de preguntas inteligentes, pero tendrán que ver el webcast luego para descubrirlo ... ;)

Fiuuu! ... un recreo de 30 minutos. Gracias mil! Necesito descansar ...