C# 游戏数据存储

C# 游戏数据存储,c#,xna,C#,Xna,我对我的第一场比赛投入了大约20%,我想知道存储本地数据的最佳方式是什么。我需要以数据库的方式存储物品统计信息,比如等级、每级伤害等。将此类数据存储在本地数据库中,然后使用SQL进行查询,这被认为是一种良好的做法吗?还是有别的办法?我在.NET4和XNA4中工作 谢谢 标准方法实际上是对基于标题和用户文件的存储使用内置的XNA支持。请查看MSFT XNA存储最佳实践。标准方法实际上是对基于标题和用户文件的存储使用内置的XNA支持。请查看MSFT XNA存储最佳实践。我认为没有一般规则,这只是取决

我对我的第一场比赛投入了大约20%,我想知道存储本地数据的最佳方式是什么。我需要以数据库的方式存储物品统计信息,比如等级、每级伤害等。将此类数据存储在本地数据库中,然后使用SQL进行查询,这被认为是一种良好的做法吗?还是有别的办法?我在.NET4和XNA4中工作


谢谢

标准方法实际上是对基于标题和用户文件的存储使用内置的XNA支持。请查看MSFT XNA存储最佳实践。

标准方法实际上是对基于标题和用户文件的存储使用内置的XNA支持。请查看MSFT XNA存储最佳实践。

我认为没有一般规则,这只是取决于您正在做什么以及您将如何使用数据的许多事情之一


存储数据的方法有很多种。我通常认为二进制文件格式是游戏中最常见的格式。但是,如果您想在不使用实际数据库服务器的情况下使用SQL,我建议您查看嵌入式数据库,例如SQLite、SQL server Compact Edition或Firebird,还有其他一些。这些文件将数据存储在单个文件中,但您可以使用SQL查询它们。

我认为没有一个通用规则,这只是许多事情之一,取决于您正在做什么以及您将如何使用数据


存储数据的方法有很多种。我通常认为二进制文件格式是游戏中最常见的格式。但是,如果您想在不使用实际数据库服务器的情况下使用SQL,我建议您查看嵌入式数据库,例如SQLite、SQL server Compact Edition或Firebird,还有其他一些。它们将数据存储在单个文件中,但您可以使用SQL查询它们。

序列化。如果您想要可读的文件,请选择XML/JSON序列化程序。如果需要性能:protobuf或手动二进制序列化。

序列化。如果您想要可读的文件,请选择XML/JSON序列化程序。如果您需要性能:protobuf或手动二进制序列化。

类似,也许您会发现它很有用唯一的区别是它不关注具体的框架,除非您有非常具体的性能需求,并且需要通过任意属性查询数据,使用嵌入式数据库和SQL或EF是一种足够好的通用方法。假设XNA将让您获得一个普通的旧文件句柄。与此类似,也许您会发现它很有用唯一的区别是,它不关注具体的框架,除非您有非常具体的性能需求,并且需要通过任意属性查询数据,使用嵌入式DB和SQL或EF是一种足够好的通用方法。假设XNA会让你得到一个普通的旧文件句柄。虽然是一个好的提示,但用户存储只解决了数据存储在哪里的问题,而不是如何管理数据的问题。虽然是一个好的提示,但用户存储只解决了数据存储在哪里的问题,而不是如何管理数据的问题。串行化对于批量编写的savegames来说可能更好,这可能不是OP想要做的。正如他提到的,在整个游戏过程中,可能需要不断更新一些统计数据。可以说,对于成批编写的savegames,序列化更好,这可能不是OP想要做的。他提到了一些可能需要在整个游戏过程中不断更新的统计数据。但是用户是否可以编辑嵌入式数据库?这是我最大的恐惧。我不介意用户通过破解内存进行欺骗,毕竟这将是一个单人游戏,但我不希望它像打开数据库文件那样简单。你可以对它进行密码保护。我以前在SQLCompact和Firebird中都做过,我决定使用SQLLite,我们将看看它是如何运行的。谢谢你的帮助!但是是否允许用户编辑嵌入式数据库?这是我最大的恐惧。我不介意用户通过破解内存进行欺骗,毕竟这将是一个单人游戏,但我不希望它像打开数据库文件那样简单。你可以对它进行密码保护。我以前在SQLCompact和Firebird中都做过,我决定使用SQLLite,我们将看看它是如何运行的。谢谢你的帮助!