Сжатие игры сохранить данные


9

Я пишу игру, в которой нужно сохранить много подробных данных (точные траектории некоторых объектов) во внешний файл. Я хочу сэкономить дисковое пространство и пропускную способность, сжимая его, но я никогда не делал этого, поэтому я не знаю, есть ли предпочтительный способ сделать это.

Конечно, компрессия-декомпрессия не должна слишком сильно влиять на скорость игры.


1
Какой язык вы используете?
Ричард Марскелл - Дракир

Ответы:


8

Библиотека zlib имеет привязки для большинства языков программирования и довольно быстрая. Однако вам следует сравнить различные алгоритмы сжатия, поскольку один алгоритм может обеспечить более высокую степень сжатия данных вашего типа, чем в общем случае.


1

Один, возможно, экстремальный способ сжатия данных - это запись только шагов / входов, использованных для его создания. Что-то вроде того, что делает ModNation Racer (проклинайте это долгое время загрузки, так как он заново создает дорожку). (Google для видео редактора треков в ModNation Racer).

т.е. если бы я хранил какую-то местность, я бы хранил все манипуляции, начиная с плоской равнины. то есть примените кисть в форме вулкана с этой силой, здесь. С помощью этой силы примените операцию сглаживания местности над этой областью. Добавьте мой предопределенный объект здесь. Использование кривых, похожих на кривые Безье, с «ключевыми кадрами» для построения всей траектории / траектории полета / чего угодно.

Многие другие игры делают подобные вещи не только для загрузки уровней, но и для игрового процесса, делая игру детерминированной, отправляя только входные данные от игроков (я думаю, PixelJunk Shooter 2 делает это).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.