Inconvenientes de GIF:
- paleta de colores muy limitada, típicamente 256 colores con tramado feo ( sí, puede tener más de 256 colores en GIF animado , pero esto es poco común)
- Las GPU no admiten la compresión GIF en el hardware (de todos modos, tendrá que descomprimirlas en la CPU)
- solo puede elegir UN color para la transparencia (a menos que implemente un procesamiento personalizado)
- sin acceso aleatorio Todos los marcos GIF anteriores deben leerse y descomprimirse para acceder a un marco.
- siendo comprimido Necesita una función de descompresión dedicada en el código. No puede elegir diferentes (mejores) algoritmos de compresión. (sí, también existen GIF sin comprimir , pero esto es poco común)
Con un formato personalizado, todos estos elementos se resuelven muy rápidamente. Tiene mucho más control sobre el formato de imagen, la calidad, la transparencia, el acceso aleatorio y la compresión (incluidos los formatos compatibles con GPU por igual DXT). Aún mejor, puede priorizar las funciones que necesita.
Una ventaja que los Gif tienen sobre las hojas de animación es que no tienes que pensar en que los fotogramas vayan demasiado rápido o demasiado lento debido a tu código y a la actualización en los tics adecuados.
La declaración anterior es engañosa. Sincronizar GIF fps con fps reales del juego no es muy diferente a sincronizar sprites personalizados de animación. En ambos casos, tiene exactamente la misma configuración: una lista de fotogramas, velocidad de fotogramas deseada y eventos de representación. No hay polvo mágico en GIF: de todos modos, tendrá que descomprimir el GIF en una hoja de sprites, lo que frustra el propósito.
Por supuesto, algunos motores de juegos pueden ocultar algunos de los problemas de GIF detrás de las cortinas, pero entonces, lo mismo se puede hacer con las hojas de sprites de una mejor manera.
Dicho esto, hay algunos pocos casos en los que los GIF podrían funcionar . Por ejemplo, GUI HTML / CSS, pero estos son bastante raros y requieren muchos recursos por sí mismos.