Spielprogrammierer haben sich auf eine von zwei Hauptmethoden der Datenspeicherung verlassen:
- Speichern Sie jede Datendatei als separate Datei
- Speichern Sie jede Datendatei in einem benutzerdefinierten Archivformat
Der Nachteil der ersten Lösung ist das Problem der Verschwendung von Speicherplatz sowie das Problem langsamerer Installationen.
Die zweite Lösung bietet ihre eigenen Fallstricke. Erstens müssen Sie Ihr ganzes Bild / Ton / etc. Schreiben. Laden von Routinen, die eine benutzerdefinierte API für den Zugriff auf die archivierten Daten verwenden. Ein weiterer Nachteil ist, dass Sie Ihr eigenes Archivierungsdienstprogramm schreiben müssen, um die Archive überhaupt zu erstellen.
Wenn Sie nicht immer alle Dateien aus dem Archiv laden, ist TAR / GZ möglicherweise keine gute Idee, da Sie bestimmte Dateien nicht bei Bedarf extrahieren können. Aus diesem Grund verwenden viele Spiele ZIP-Archive, mit denen Sie einzelne Dateien nach Bedarf extrahieren können (ein gutes Beispiel ist Quake 3, dessen PK3-Dateien nur ZIP-Dateien mit einer anderen Erweiterung sind).
BEARBEITEN: "Verstecke" die Ordnerstruktur des Spiels und "Behalte" nur die ausführbaren Dateien
Eine andere Lösung wird oft verwendet, um die Spieledateien in der Ordnerstruktur zu "verstecken". Behalten Sie nur Ihre ausführbaren Dateien und möglicherweise eine Readme-Datei im Hauptverzeichnis und verschieben Sie die Spieledateien in einen Unterordner mit dem Namen "data" oder in einen anderen zugehörigen Ordner.
EDIT: Gamedev Tuts Plus haben eine schöne Ressource
EDIT: libarchive
Eine mögliche Lösung ist libarchive, eine Archivierungsbibliothek, die das Extrahieren von Dateien aus einem Archiv wie einer ZIP-Datei übernimmt. Sie können die extrahierte Datei sogar einem Standard-FILE-Zeiger zuweisen, wodurch die Anbindung an andere Bibliotheken möglicherweise einfacher wird.
BEARBEITEN: ZIP-Format Dateien mit alternativer Erweiterung
Hier gefällt mir @Joachim Sauers Kommentar
Die Verwendung von ZIP-Dateien mit alternativen Erweiterungen hat auch außerhalb von Spielen eine große Tradition: Java , das OpenDocument-Format (auch bekannt als OpenOffice / LibreOffice-Format) und Office Open XML (auch bekannt als "neues" Microsoft Office-Format). macht es .