Самый эффективный способ хранения и извлечения фрагментов с жесткого диска в игре Minecraft

Мой сценарий: игра, похожая на Minecraft, с теоретическим неограниченным пространством. Куски должны храниться и извлекаться из файловой системы в реальном времени во время игры.

Размер одного фрагмента составляет от пары байтов до теоретического максимума в 65 КБ.

Как я могу эффективно управлять такими данными на жестком диске, учитывая тот факт, что чанки могут изменять свой размер, когда проигрыватель изменяет их, поэтому я не могу просто перезаписать его старую позицию в моем файле уровня.

Может быть, лучше использовать базу данных для этого, что-то вроде SqLite?

1 ответ

Решение

В v1 вашей игры вы можете обмануть... в папке NTFS вы можете иметь до 2^32 - 1 файлов. Один блок == один файл. Преимущество в том, что его очень легко реализовать, он достаточно быстрый и вам не нужно будет отлаживать неизвестные библиотеки. FileStream API это известное количество.

Затем в v2 вашей игры вы можете использовать SqLite или такие вещи, как http://nfilestorage.codeplex.com/ или http://filedb.codeplex.com/ или http://litedb.org/ или любые другие nosql dbs . В v2 вы можете посмотреть на "улучшение" вашей игры.

Другие вопросы по тегам