1

最近、Web インターフェイスと erlang のバックエンドを持つ多くのプロジェクトを見てきました (たとえば、fb 上のフラッシュ ゲームなど)。

そのような(おそらくもっと単純な)ものを実装できると思っていました。

認証を提供する erlang アプリケーションと、実際のゲームへのルーティングを提供する別のアプリケーションがあると思います。では、異なるユーザーごとにゲーム アプリケーションの新しいインスタンスを開始するにはどうすればよいでしょうか。たぶん、彼らは新しいノードを作成し、そこでアプリケーションを開始しますか? 洞察を教えてもらえますか?

4

1 に答える 1

3

アクターモデルを使用して、接続されている各プレーヤーのプロセスを作成します。このプロセスは、Flashクライアントからのメッセージに反応し、他のプレーヤープロセスに直接、またはグローバル状態を処理する中央プロセスにメッセージを送信します。このプレーヤープロセスは、他のプレーヤーからのメッセージにも反応し、更新をクライアントに送り返します。

次に、このアイデアに基づいてシステムアーキテクチャを構築できます。たぶん、ゲームのさまざまな部分を処理する複数の中央プロセスがあります。たぶん、各部屋が独自のプロセスである異なる「部屋」にプレイヤーを分割させることができます。プレーヤーが切断されている場合でもアクティブなプレーヤープロセスが1つある場合もあれば、メッセージをキューに入れてプレーヤーが戻ったときにメッセージに反応する場合もあります。もちろん、アーキテクチャは、構築しているゲームのタイプに大きく依存します。

于 2012-07-11T16:19:19.407 に答える