Comprimir datos guardados del juego

9

Estoy escribiendo un juego que necesita guardar muchos datos detallados (trayectorias exactas de algunas entidades) en un archivo externo. Quiero ahorrar espacio en el disco y ancho de banda comprimiéndolo, pero nunca lo he hecho, así que no sé si hay una forma preferida de hacerlo.

Por supuesto, la compresión-descompresión no debería afectar demasiado la velocidad del juego.

Marco Giancotti
fuente
1
Qué idioma estás usando?
Richard Marskell - Drackir

Respuestas:

8

La biblioteca zlib tiene enlaces para la mayoría de los lenguajes de programación, y es bastante rápida. Sin embargo, debe comparar varios algoritmos de competencia, ya que un algoritmo puede lograr mejores tasas de compresión en su tipo de datos que en el caso general.

Raphael R.
fuente
1

Una forma, posiblemente extrema, de comprimir datos es registrar solo los pasos / entradas utilizados para crearlos. Algo parecido a lo que hace ModNation Racer (maldice esos largos tiempos de carga mientras recrea la pista). (Google para videos del editor de pistas en ModNation Racer).

es decir, si estuviera almacenando un terreno, almacenaría todas las manipulaciones a partir de una llanura plana. es decir, aplique el pincel en forma de volcán con esta fuerza, aquí. Aplique la operación de suavizado del terreno sobre esta área, con esta fuerza. Agregue mi objeto predefinido aquí. Uso de curvas en forma de curva bezier con 'fotogramas clave' para construir una pista / ruta de vuelo / lo que sea.

Muchos otros juegos hacen este tipo de cosas no solo para cargar el nivel, sino también para el juego, al hacer que el juego sea determinista, enviando solo las entradas de los jugadores (creo que PixelJunk Shooter 2 hace esto).

George Duckett
fuente