云风的 BLOG -

短 ID hash 映射的问题

今天解决了一个问题,觉得很有趣。本来想发到推特,发现一两句话说不清。所以写一篇 blog 记录一下。 我们正在开发的游戏中,会用一个 id 来表示一个游戏对象到底是什么。比如,“铁片” 是 1 ,“煤” 是 2 ,“采矿机” 是 3 …… 这样,在运行时,C 代码可以根据对象的类型方便的查询对象的属性。而对象的属性则是用 Lua 配置好,在运行期不变的。例如每燃烧一个单位的“煤”,可以产生 100KJ 的热量;一箱“铁片”有 100 个。 为了在 C 和 Lua 间快速共享这些配置数据,我还专门写了一个 cache 模块 。 问题出在 ID 的持久化上。因为游戏中的物品种类并不是特别多,出于时...

阅读全文 去reddit讨论