Compactação de dados salvos no jogo


9

Estou escrevendo um jogo que precisa salvar muitos dados detalhados (trajetórias exatas de algumas entidades) em um arquivo externo. Quero economizar espaço em disco e largura de banda compactando-o, mas nunca fiz isso, então não sei se existe uma maneira preferida de fazê-lo.

É claro que a compressão-descompressão não deve afetar muito a velocidade do jogo.


11
Que linguagem você está usando?
Richard Marskell - Drackir

Respostas:


8

A biblioteca zlib possui ligações para a maioria das linguagens de programação e é bastante rápida. No entanto, você deve comparar vários algoritmos de compersão, porque um algoritmo pode obter melhores taxas de compactação no seu tipo de dados do que no caso geral.


1

Uma maneira possivelmente extrema de compactar dados é registrar apenas as etapas / entradas usadas para criá-los. Algo parecido com o que o ModNation Racer faz (amaldiçoa esses longos tempos de carregamento à medida que recria a pista). (Google para vídeos do editor de trilhas no ModNation Racer).

ou seja, se eu estivesse armazenando algum terreno, armazenaria todas as manipulações a partir de uma planície plana. ou seja, aplique o pincel em forma de vulcão com esta força, aqui. Aplique a operação de suavização de terreno nesta área, com esta força. Adicione meu objeto predefinido aqui. Usando curvas semelhantes a curvas de bezier com 'quadros-chave' para construir uma trilha / trajetória de vôo / qualquer outra coisa.

Muitos outros jogos fazem esse tipo de coisa não apenas para carregamento de nível, mas também para jogabilidade, tornando o jogo determinístico, enviando apenas entradas de jogadores (acho que o PixelJunk Shooter 2 faz isso).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.