Kompresja gry zapisuje dane

9

Piszę grę, która musi zapisać wiele szczegółowych danych (dokładne trajektorie niektórych podmiotów) do zewnętrznego pliku. Chcę zaoszczędzić miejsce na dysku i przepustowość, kompresując go, ale nigdy tego nie robiłem, więc nie wiem, czy jest to preferowany sposób.

Oczywiście kompresja-dekompresja nie powinna zbytnio wpływać na szybkość gry.

Marco Giancotti
źródło
1
Jakiego języka używasz?
Richard Marskell - Drackir

Odpowiedzi:

8

Zlib Biblioteka posiada powiązania dla większości języków programowania, i to dość szybko. Powinieneś jednak porównać różne algorytmy kompresji, ponieważ jeden algorytm może osiągnąć lepsze współczynniki kompresji dla twoich danych niż w przypadku ogólnym.

Raphael R.
źródło
1

Jednym, być może ekstremalnym sposobem kompresji danych jest rejestrowanie tylko kroków / danych wejściowych użytych do ich utworzenia. Coś takiego, jak robi to ModNation Racer (przeklinaj te długie czasy ładowania, ponieważ odtwarza tor). (Google dla filmów z edytora śladów w ModNation Racer).

tzn. gdybym przechowywał jakiś teren, zapisywałbym wszystkie manipulacje, zaczynając od płaskiej równiny. tzn. zastosuj tutaj pędzel w kształcie wulkanu. Zastosuj operację wygładzania terenu na tym obszarze z tą siłą. Dodaj tutaj mój predefiniowany obiekt. Korzystanie z krzywych krzywej Beziera z „klatkami kluczowymi” do zbudowania całej ścieżki / toru lotu / cokolwiek innego.

Wiele innych gier robi coś takiego nie tylko w celu ładowania poziomów, ale także w celu rozgrywki, czyniąc grę deterministyczną, wysyłając tylko dane wejściowe od graczy (myślę, że PixelJunk Shooter 2 to robi).

George Duckett
źródło