環境
Rubyでゲームを作っています。energy
や などの属性を持つ Character という名前のモデルがあり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
多くのゲームと同様に、すべての Character の tick メソッドをn分ごとに呼び出す必要があります。これには EventMachine を使用したいと考えています。定期的なタイマーでは、すべての Character インスタンスCharacter.tick_all
のメソッドを呼び出す必要があります。tick
質問
これにはどのような永続化エンジンを使用できますか? サーバーの起動時に、すべての Character インスタンスをメモリにロードして、 tickedできるようにします。今のところ、ティックによって状態が変化した後、すべてのインスタンスが永続化されれば問題ありません。
Rails と ActiveRecord で試してみました。ただし、ティックごとに少なくとも 1 つの書き込みおよび読み取りアクションが必要であり、これは少し過剰に思えます。
編集SuperModel を調べました。それはまさに私が望むことをしているようですが、最後のコミットは約1年前です...