我正在为社交网络编写一款游戏,我们拥有许多基于玩家特征的武器属性和道具属性公式。公式是这样的player.money += 10 * player.level
它看起来像一个好主意,只是存储像这些函数在数据库中,让游戏设计师通过管理网站输入它们。
但是我不确定。这种方法会出现什么问题?
谢谢。
您需要考虑的问题不是是否应该使用数据库(您应该),而是数据库的适当设计。考虑你在游戏中拥有的对象层次结构,以及它将如何反映在数据库中。
为每个属性创建一个数据库列是一个坏主意,因为它太死板了。你想看看一个"属性包"的方法,你有查找表的大部分可以索引的性能。
这个模型是这样的:
itemId, propertyId, propertyValue
为了获得更高的性能,可以将其与Memcached之类的东西结合使用。
这是一个不错的方法。正如Jon所指出的,这并不是真正的"代码",而更像是道具/装备属性。
优点
- 易于修改
缺点
- 需要查找每件物品或设备
您将对每个项进行查找的事实可能会成为性能瓶颈。如果最终决定使用数据库,我建议从数据库中提取一次数据,然后在会话的其余部分缓存数据。项目属性不太可能频繁更改,这将限制对数据库的查询。