语境
我正在用红宝石制作游戏。它有一个名为 Character 的模型,具有 和 之类的energy
属性money
。一个角色可以有一个行为,例如sleeping
。最后,Character 有一个tick
调用其行为方法的方法sleep!
。简化后看起来像这样:
class Character
attr_accessor :energy
def initialize(behavior)
@current_behavior = behavior
end
def tick
self.send "#{@current_behavior}!"
end
private
def sleep!
self.energy -= 1 if energy > 0
end
end
与许多游戏一样,每个角色的 tick 方法需要每n分钟调用一次。我想为此使用 EventMachine。在它调用的周期性计时器Character.tick_all
中,应该调用tick
每个 Character 实例的方法。
问题
我可以为此使用哪种持久性引擎?在服务器启动时,我想将所有 Character 实例加载到内存中,以便它们可以被勾选。现在,如果每个实例在其状态更改后由于滴答声而保持不变,则可以。
我已经用 Rails 和 ActiveRecord 试过了。但是对于每个滴答,它至少需要一个写入和读取操作,这似乎有点矫枉过正。
编辑 我调查过SuperModel。它似乎完全符合我的要求,但它的最后一次提交是大约一年前......