Estoy en el proceso de escribir un motor 2D con capacidad Full HD para una compañía de artistas que con suerte será multiplataforma y está escrita en OpenGL y C++.Full HD 2D Texture Memory OpenGL
El principal problema que he tenido es cómo lidiar con todos esos sprites HD. Los artistas han dibujado los gráficos a 24 fps y se exportan como secuencias png. Los he convertido en DDS (no es ideal, porque necesita el encabezado directx para cargar) DXT5, que reduce mucho el tamaño del archivo. Algunas escenas del juego pueden tener 5 o 6 sprites animados a la vez, y estos pueden constar de más de 200 cuadros cada uno. Actualmente estoy cargando sprites en una serie de punteros, pero esto lleva demasiado tiempo cargar, incluso con texturas comprimidas, y usa bastante memoria (aproximadamente 500 mb para una escena completa).
Así que mi pregunta es, ¿tiene alguna idea o consejo sobre cómo manejar volúmenes tan grandes de marcos? Hay un par de ideas que he thought've de:
- uso del formato SWF para almacenar los marcos de flash
- Implementar un sistema de animación del esqueleto en 2D, en sustitución de las secuencias png (no tengo preocupaciones acerca de la las uniones son visibles)
¿Cómo se cargan juegos como Castle Crashers tan rápido con excelentes gráficos HD?
¿Demasiado tiempo para cargar desde el disco o demasiado tiempo para cargarlo en la GPU? – genpfault
"no es ideal, porque necesita el encabezado directx para cargar" No necesita encabezados Direct3D para cargar DDS. –