Programiści gier polegali na jednej z dwóch głównych metod przechowywania danych:
- przechowuj każdy plik danych jako osobny plik
- przechowuj każdy plik danych w niestandardowym formacie archiwum
Wadą pierwszego rozwiązania jest problem zmarnowanego miejsca na dysku, a także problem wolniejszych instalacji.
Drugie rozwiązanie zapewnia własne pułapki, po pierwsze, musisz napisać cały swój obraz / dźwięk / etc. ładowanie procedur korzystających z niestandardowego interfejsu API w celu uzyskania dostępu do zarchiwizowanych danych. Kolejną wadą jest to, że musisz napisać własne narzędzie do archiwizacji, aby zbudować archiwa.
Jeśli nie będziesz zawsze ładować wszystkich plików z archiwum, TAR / GZ może nie być dobrym pomysłem, ponieważ nie możesz wyodrębnić określonych plików, ponieważ są one potrzebne. Jest to powód, dla którego wiele gier korzysta z archiwów ZIP, które pozwalają na wyodrębnianie poszczególnych plików zgodnie z wymaganiami (dobrym przykładem jest Quake 3, którego pliki PK3 to nic innego jak pliki ZIP z innym rozszerzeniem).
EDYCJA: „Ukryj” strukturę folderów gry i „Zachowaj” tylko pliki wykonywalne
Często stosuje się inne rozwiązanie do „ukrywania” plików gry w strukturze folderów. Zachowaj tylko pliki wykonywalne i może plik Readme w głównym katalogu i przenieś pliki gry do podfolderu o nazwie „dane” lub innego pokrewnego.
EDYCJA: Gamedev Tuts Plus ma niezły zasób
EDYCJA: libarchive
Jedno potencjalne rozwiązanie libarchive, które jest biblioteką do archiwizacji, która będzie obsługiwać rozpakowywanie plików z archiwum, takiego jak plik ZIP. Pozwala nawet przypisać wyodrębniony plik do standardowego wskaźnika PLIKU, co znacznie ułatwiłoby interakcję z dowolnymi innymi bibliotekami.
EDYCJA: Pliki w formacie ZIP z alternatywnym rozszerzeniem
Tutaj podoba mi się komentarz @Joachima Sauera
Używanie plików ZIP-format z alternatywnych rozszerzeń ma wielką tradycję poza grami, a także: Java robi to , na OpenDocument Format (aka format OpenOffice / LibreOffice) to robi , nawet Office Open XML (aka "nowego" formatu Microsoft Office) robi .