NoSql, Sql or Flatfile



我刚刚开始玩Node.js和Socket。我和我正计划制作一款小型多人游戏。可能是一些简单的东西,比如每个玩家都有一个角色,他们可以在竞技场里跑来跑去,并试图杀死对方。

然而,我不确定如何最好地存储数据。我可以想象对象之间会有一些松散的关系,比如角色和它的武器,但我可能会在需要它们的时候将它们加载到系统中,并在我不再需要它们时将它们保存回来。

在这些术语中,将"对象"写出来到文件中会比让数据库参与进来更简单吗?使用NoSql文档数据库或只是坚持好的旧Sql服务器?

我的建议是从NoSQL开始。

Flatfile很困难,因为您需要非常非常频繁地读写这些数据。每个玩家一个文件并不是一个糟糕的开始——对于第一个原型来说可能还可以——但是你将会编写大量的内容。文件系统不擅长这一点。在原型阶段的一个好处是您可以快速调试-只需输入用户的当前状态。使用。json文件,或类似的。yaml格式,将非常迅速地开始你的方式(你可以转换到NoSQL方法的原型开始在一起)。

SQL不是一个糟糕的方法。如果您熟悉这一点,那么您最终将构建一个真正的模式,并创建各种表,并根据它们连接用户数据。这可以帮助你思考你的游戏,但我认为你最终会花很多时间去弄清楚如何规范化你的数据和编写连接。因为你似乎并不熟悉这个问题(所以你才会问这个问题),所以你很可能会做错(并妨碍游戏的出色之处),或者只是在这个问题上花了太多时间。

NoSQL——使用文档存储模型——很像只是读写用户对象。最终每次都要重写用户对象——但是这种访问(键值,由用户id访问)是非常高效的。你可能很快就会进入游戏原型,并进入构建游戏机制的重要环节。从长远来看,键值访问是高度可扩展的。

如果要存储Player信息,请使用sql。但是如果你有一个基于连接的系统。在某些游戏中,你只需要在玩家连接时存储信息,在连接断开后你就不需要"保存";然后把它存储在内存中。

否则,我会说你应该坚持使用Sql。数据库是经过优化的、快速的、经过测试的、真实的。使用Sql数据库是不会出错的。

最新更新