Desvantagens do GIF:
- paleta de cores muito limitada, geralmente 256 cores com pontilhado feio ( sim, você pode ter mais de 256 cores em GIF animado , mas isso é incomum)
- As GPUs não suportam compactação GIF no hardware (significa que você precisará descompactá-las na CPU de qualquer maneira)
- você só escolhe uma cor para obter transparência (a menos que implemente o processamento personalizado)
- sem acesso aleatório. Todos os quadros GIF anteriores precisam ser lidos e descompactados para acessar um quadro.
- sendo comprimido. Você precisa da função de descompressão dedicada no código. Você não pode escolher diferentes (melhores) algoritmos de compactação. (sim, GIFs não compactados também existem , mas isso é incomum)
Com o formato personalizado, todos esses itens são resolvidos muito rapidamente. Você tem muito mais controle sobre o formato da imagem, qualidade, transparência, acesso aleatório e compactação (incluindo formatos compatíveis com GPU, DXT). Ainda melhor, você pode priorizar os recursos necessários.
Uma vantagem dos GIFs em relação às Folhas de animação é que você não precisa pensar em quadros indo muito rápido ou muito devagar por causa do seu código e atualizando-os em tiques adequados.
A declaração acima é enganosa. Sincronizar fps GIF com fps reais de jogos não é muito diferente de sincronizar animação de sprites personalizados. Nos dois casos, você tem exatamente a mesma configuração - uma lista de quadros, a taxa de quadros desejada e os eventos de renderização. Não há pó mágico no GIF - você terá que descompactar o GIF em planilha de qualquer maneira, o que anula o objetivo.
É claro que alguns mecanismos de jogo podem ocultar alguns dos problemas de GIF por trás das cortinas, mas o mesmo pode ser feito com as planilhas de forma melhor.
Dito isso, existem alguns casos em que os GIFs podem funcionar . Por exemplo, GUIs HTML / CSS, mas elas são bastante raras e exigem recursos por si mesmas.