Teorik olarak sonsuz miktarda veri için tek bir düz dosya kullanılmamasını tavsiye ederim.
Teorik olarak sonsuz miktarda veriye sahipseniz , rasgele erişime ihtiyacınız vardır ; bu, birden fazla dosya veya veritabanı - veya dosya sistemleri veya veritabanı tarafından zaten çözülmüş olan dizinleme sorunlarının yeniden çözülmesini içeren dizinlenmiş bir düz dosya biçimi anlamına gelir .
Parçalarınızı birden fazla dosyaya dağıtırsanız, (-110, 5000) parçasını almak sadece "% APPDATA% / game / map / -110 / 5000.dat" (veya isterseniz başka bir dosya adı) sıkıştırmaya başlayın). Veritabanları sadece bir sorguya ihtiyaç duyar. Bir öbekte veri yoksa, hiçbir şey depolayamazsınız. Tek bir düz dosya, yarasadan rastgele erişimin hızını ve rahatlığını sunmaz.
Rastgele boyuttaki tek bir dosyada, hızlı rastgele erişim için herhangi bir veri parçasının konumu için bir güvenceye sahip olmanız gerekir, bu da bir dizin kullanmak anlamına gelir (çünkü veri yığınlarınızdaki ham bir ikili arama performansı bozar ve "boş" noktalı dosya size Byte56 sorunu verir ). Bir indeksleme sistemi geliştirdiğinizde, ona verimlilik verin ve kendinize bir API yazın, dosya sistemi veya veritabanı gibi bir şey yeniden yarattınız. Aslında bunu yapmaktan bir şey kazanmazsanız, muhtemelen yatırıma değmez. Örneğin Steam, GCF / NCF dosya biçimlerinden büyük faydalar sağlar.
Kaydetmelerinizde biraz güvenlik istiyorsanız, bunu yapmak hala mümkündür. Örneğin, her bir tekli parçayı şifreleyebilirsiniz. Silinmelerini önlemek için mevcut kaydedilmiş verilere dayalı bir merkezi karınız olabilir. Kaydedilen veriler karma ile eşleşmiyorsa (ve programınız değişikliğe neden olmamışsa), bir yığın silinir.