1

ターンベースのゲーム (一種のボードゲーム) を計画していますが、バックエンドはおそらく Erlang で行われる予定です。ゲーム ロジックの部分は階層的なステート マシンに適しているようですが、Erlang でそれを実装する方法がわかりません。

子 fsm ごとに個別のプロセスを生成できるかもしれませんが、これが機能するかどうかはわかりません。

別のオプションは、スクリプト言語を埋め込むか、この目的のために DSL を作成することです。

どう思いますか?

ありがとう。

4

3 に答える 3

1

@codecaster gen_fsmを使用して状態を追跡し、fsm状態内に追加レベルの状態を組み込むことができます...ただし、erl-luaも同様に機能します。erlmonと呼ばれる監視ツールを作成しました。erl-luaがクラッシュする問題が発生したため、バグがないわけではないことに注意してください。また、Nifの新しいサポートにより、誰かがnifベースのlua用の新しいドライバーを作成するのを待っています-あなたはそれを探し回ることができます-私はまだ誰もそれを構築するのを見ていません。

于 2010-07-21T22:08:29.287 に答える
1

私は元の質問の作成者です (実際、質問を自分のものとして主張したいのですが、方法がわかりません)。

gen_fsm を含め、OTP が提供するすべての機能については既に知っています。

アイデアは、HIERARCHICAL ステート マシンを使用することであり、gen_fsm は単純なステート マシンです。ゲームのターン、フェーズなどを追跡するには、gen_fsm のような単純なステート マシンでは十分ではないと思います。

とにかく、さらに調査を進めており、すべてのゲーム ロジックに Lua を使用できるように、erl-lua を使用すると考えています。機能するようになったら、ボトルネックを検索して、C 実装などに移動できます。

于 2010-07-21T10:51:12.950 に答える
1

出発点として、 OTP 設計原則を確認することをお勧めします。おそらく、スーパーバイザー汎用 FSMについてさらに詳しく調べたいと思うでしょう。

于 2010-07-19T19:58:48.503 に答える