He visto muchos ejemplos de cómo renderizar sprites desde una hoja de sprites, pero no he comprendido por qué es la forma más común de tratar con sprites en juegos 2D.
Comencé con la representación de sprites 2D en las pocas aplicaciones de demostración que hice al tratar cada cuadro de animación para cualquier tipo de sprite dado como su propia textura, y esta colección de texturas se almacena en un diccionario. Esto parece funcionar para mí, y se adapta bastante bien a mi flujo de trabajo, ya que tiendo a hacer mis animaciones como archivos gif / mng y luego extraigo los marcos a png individuales.
¿Existe una notable ventaja de rendimiento al renderizar desde una sola hoja en lugar de texturas individuales? Con un hardware moderno que es capaz de dibujar millones de polígonos en la pantalla cien veces por segundo, ¿importa incluso para mis juegos 2D que solo se ocupan de unas pocas docenas de rectángulos de 50x100px?
Los detalles de implementación de cargar una textura en la memoria de gráficos y mostrarla en XNA parecen bastante abstractos. Todo lo que sé es que las texturas están unidas al dispositivo gráfico cuando se cargan, luego, durante el ciclo del juego, las texturas se procesan en lotes. Entonces no me queda claro si mi elección afecta el rendimiento.
Sospecho que hay algunas razones muy buenas por las que la mayoría de los desarrolladores de juegos 2D parecen estar usándolas, pero no entiendo por qué.