Ich schreibe ein Spiel, das viele detaillierte Daten (genaue Flugbahnen einiger Entitäten) in einer externen Datei speichern muss. Ich möchte Speicherplatz und Bandbreite durch Komprimieren sparen, habe dies jedoch noch nie getan. Daher weiß ich nicht, ob es einen bevorzugten Weg gibt, dies zu tun.
Natürlich sollte die Komprimierung-Dekomprimierung die Geschwindigkeit des Spiels nicht zu sehr beeinflussen.
compression
Marco Giancotti
quelle
quelle
Antworten:
Die zlib- Bibliothek enthält Bindungen für die meisten Programmiersprachen und ist recht schnell. Sie sollten jedoch verschiedene Kompensationsalgorithmen vergleichen, da ein Algorithmus möglicherweise bessere Komprimierungsraten für Ihre Art von Daten erzielt als im allgemeinen Fall.
quelle
Eine möglicherweise extreme Methode zum Komprimieren von Daten besteht darin, nur die Schritte / Eingaben aufzuzeichnen, die zum Erstellen der Daten verwendet wurden. So etwas wie das, was ModNation Racer macht (verfluche diese langen Ladezeiten, während es die Strecke neu erstellt). (Google für Videos des Track Editors in ModNation Racer).
dh wenn ich etwas Gelände speichern würde, würde ich alle Manipulationen ausgehend von einer flachen Ebene speichern. dh hier mit dieser Kraft den vulkanförmigen Pinsel auftragen. Wenden Sie mit dieser Kraft die Geländeglättungsoperation auf diesen Bereich an. Fügen Sie hier mein vordefiniertes Objekt hinzu. Verwenden von bezierkurvenähnlichen Kurven mit 'Keyframes', um eine gesamte Spur / Flugbahn / was auch immer zu konstruieren.
Viele andere Spiele tun dies nicht nur zum Laden von Levels, sondern auch für das Gameplay, indem sie das Spiel deterministisch machen und nur Spielereingaben senden (ich denke, PixelJunk Shooter 2 tut dies).
quelle