xna、.net、c#,保存/序列化:文件夹结构。这个计划有意义吗?

xna、.net、c#,保存/序列化:文件夹结构。这个计划有意义吗?,c#,.net,serialization,xna,directory,C#,.net,Serialization,Xna,Directory,我正在为我的XNA游戏处理序列化/反序列化 这是一个类似流氓的程序生成的水平 我使用的是二进制序列化程序 我的计划是使用一个包含所有数据的文件夹结构来保存文件夹。 这样就可以轻松地复制和备份您的存储 这是我的计划。。在我开始实施之前,我只想检查一下他的计划是否正常,是否疯狂/糟糕 这是我计划使用的文件夹结构 gamefolder\saves\save1\savedata.bin levlel1.bin l

我正在为我的XNA游戏处理序列化/反序列化

这是一个类似流氓的程序生成的水平

我使用的是二进制序列化程序

我的计划是使用一个包含所有数据的文件夹结构来保存文件夹。 这样就可以轻松地复制和备份您的存储

这是我的计划。。在我开始实施之前,我只想检查一下他的计划是否正常,是否疯狂/糟糕

这是我计划使用的文件夹结构

gamefolder\saves\save1\savedata.bin
                       levlel1.bin
                       level2.bin
                       level3.bin

                 save2\savedata.bin
                        level1.bin
                        level2.bin
                        level3.bin
                        level4.bin

                 \save3\savedata.bin
                        level1.bin
                        level2.bin 
“保存”将包含一个.bin文件,其中包含整个游戏的保存数据,如图形设置

每个保存文件夹(save1、save2、save3等)将包含该特定savegame的.bin文件。玩家名称,他们所在的位置等。此外,他们迄今为止玩过的每个关卡都会有一个.bin文件,记录生成的关卡及其内容。 这样,我一次只能在内存中存储一个级别的数据,当您转到其他级别时,我将序列化/反序列化


我主要担心的是,从这样的目录结构中读取/写入文件夹可能会很混乱,并且在xbox上可能无法工作(尽管我并不真正关心xbox atm。当我遇到这个问题时,我可以跨越这座桥)

为什么不将所有保存保存保存到一个目录中,然后在加载游戏时反序列化它们?对数据进行反序列化、读取和组织应该不会太糟糕。如果你所说的1000次保存是真的,那么将1000个子目录进行横向转换将不会很好。您需要实现某种数据库。我不知道XNA在您的指尖上有什么,但我会研究其他游戏如何存储数据,如果这些数据不符合您的标准,您可能会有一个主游戏保存文件,其中包含可用保存的所有基本信息,并且每个文件都有一个唯一的密钥。然后是一个保存游戏的目录,文件名作为唯一键。将主保存文件读入一个对象中,以显示给用户。当他们选择要保存的内容时,他们会使用对象中的密钥并扫描您的保存目录以查找该密钥。通常,游戏只存储用户/玩家信息,想想像寓言这样的游戏,某些事件会改变世界。我猜他们只存储与典型正常世界不同的数据。当我在寻找大人物的名单保存时,该文件是以一种他们的游戏可以解析的方式排序的分隔数据的文本文件。我们谈论的是数百名球员。使用XML存储保存的数据,然后附加一个关于文件内容的头怎么样。当您加载查看器以显示所有可用的保存时,您只需解析标题。当您实际加载游戏时,您可以反序列化整个XML,或者更好。读入XML,然后只解析您需要的级别。