我的场景:类似Minecraft的游戏,具有理论上无限制的orld。在游戏运行时,需要实时存储和检索文件系统中的块。
一个块的大小从几个字节到理论最大值65kb。
我如何有效地管理硬盘上的这些数据,因为当玩家修改它时块可能会改变它们的大小,所以我不能简单地覆盖它在我的关卡文件中的旧位置。
为此使用数据库可能更好吗,比如SqLite?
答案 0 :(得分:2)
在游戏的v1中,您可以作弊...在NTFS文件夹中,您最多可以2^32 - 1 files。一个块==一个文件。它的优点是它非常易于实现,速度足够快,您不必调试未知库。 FileStream
API是已知数量。
然后在游戏的第2版中,您可以使用SqLite或类似http://nfilestorage.codeplex.com或http://filedb.codeplex.com或http://litedb.org或任何其他nosql dbs的内容。在v2中你可以看看"改善"你的游戏。