我正在为社交网络编写游戏,我们有很多武器统计公式,项目统计数据等依赖于玩家特征的公式。公式看起来像
player.money += 10 * player.level
在db中存储这些函数似乎是一个好主意,让游戏设计师通过管理站点输入它们。
但我不确定这一点。这种方法会出现什么问题?
谢谢。
答案 0 :(得分:2)
您需要应对的问题不是您是否应该使用数据库(您应该),而是使用正确的设计。考虑一下游戏中的对象层次结构以及它将如何反映在数据库中。
为每个属性创建数据库列是一个坏主意,因为它过于严格。你想看一个“属性包”的方法,你可以在其中查找大部分可以为性能编制索引的查找表。
这样的模型:
itemId,propertyId,propertyValue
要获得更高的性能,请将其与Memcached.
之类的内容结合使用答案 1 :(得分:1)
这将是一个不错的方法。正如Jon指出的那样,它不是真正的“代码”,更像是项目/设备属性。
<强>赞成强>
<强>缺点强>
您将对每个项目进行查找这一事实可能是性能瓶颈。如果您最终决定使用数据库,我建议从中提取数据一次,然后将其缓存,例如,会话的其余部分。项目属性不太可能经常更改,这将限制对数据库的查询。