1

クライアントに Flash/Flex を使用し、サーバー側に FluorineFX (.NET で記述されていることを除いて FCS/FMS と同様) を使用してマルチプレイヤー ゲームを構築しています。私の質問は、RTMP プロトコルを介した共有オブジェクトの使用とパフォーマンスに関するものです。

基本的に、画面上にかなりの数のオブジェクトを同時に表示することを計画しています。それぞれに独自の座標、動作、ビジュアルなどがあります。同じ部屋に接続しているすべてのユーザーは、これらのオブジェクトを表示して操作できます。

ゲーム世界のすべてのオブジェクトを保持する単一の配列共有オブジェクトを使用すると、すべてのクライアント間ですべてのオブジェクトを非常に迅速に同期することが非常に簡単になりますが、パフォーマンスが高くなる可能性があり、柔軟性が失われるようです個々のオブジェクトのセキュリティになります。

または、ゲームの世界の各オブジェクトごとに異なる共有オブジェクトを使用すると、場所に基づいて誰がどのオブジェクトを取得するかについて多くの柔軟性が得られます (ネットワーク パフォーマンスを最小限に抑えるため)。そして、クライアントが移動するたびに、さまざまな共有オブジェクトに常に接続/切断するようにクライアントを設定する必要がありました。

私は RTMP に関しては専門家ではありませんが、この問題を処理するための各方法の長所と短所についての考えを持っており、状況に基づいて 2 つの概念を技術的に混合して使用できることを認識していますが、私はリモート共有オブジェクトを使用した経験があり、そこから知識を得ることができる個人を本当に探しています.

このトピックに関する経験を共有したい人はいますか?

4

3 に答える 3

0

ゲームにはFlashとFluorineFxを使用していますが、共有オブジェクトは私たちの目的では少し「おしゃべり」に見えたため、接続されたクライアントにメッセージをプッシュすることを選択しました。これにより、送信するメッセージ、メッセージの優先度、および頻度を完全に制御できました。

共有オブジェクトは、すばやく起動して実行するための良い方法ですが、後でパフォーマンスの問題が発生する可能性があります。

確かに、私たちのゲームはキッズMMOであるため、すべてのクライアントを完全に同期することに煩わされることはありません。また、この理由から、マルチプレイヤーミニゲームはすべてターン制です。

これらのタイプの決定の多くは、構築しているゲームのタイプによって異なります。

  • ターン制ですか、それともリアルタイムですか?
  • ゲームの最大プレーヤー数はいくつですか?
  • クライアントとサーバーでどのくらいのロジックが処理されていますか?

これらの問題について説明している、マルチプレイヤーゲームと仮想世界向けのActionScriptという優れた本があります。

于 2011-04-11T20:33:48.627 に答える
0

Flex-WebORB-MSMQ と RTMP を使用して Pessimistic Concurrency を実装しているため、常に接続/切断するわけではないため、問題はまったく同じではありません。それは私の質問から外れています。異なる共有オブジェクトを使用するときに接続/切断する必要がありますか? さまざまなオブジェクトにメッセージングとさまざまなチャネルを使用するのはどうですか? 直感的には、各オブジェクトが共有オブジェクトを持つ 2 番目の方法を選択しますが、毎回接続/切断する必要がある場合は、スムーズに動作しなくなるのではないかと思います (それをテストする必要があると思います)。 . 一方、オブジェクトがそれほど複雑でない場合、1 つのリモート オブジェクトを使用することはそれほど問題ではないように思えます... もちろん、ユーザーがオブジェクトの 1 つを表示する権限を持っていない場合は、

于 2009-10-31T12:42:22.997 に答える
0

私はリモート共有オブジェクトの経験が限られており、これまでリモート オブジェクトを使用して「大きな」ものを実装したことはありませんが、Cardoen 氏による上記のコメントを再考して、1000 の部屋と各部屋に 100 のゲーム オブジェクトがあるゲームを想像してみてください。プレイヤーは、一度に 1 つの部屋にしか入ることができません。すべてのゲーム オブジェクトが 1 つの大きな SO に収まるようにゲームが設計されている場合、それが適切なソリューションではないことは明らかです。

ゲームが本当に「プレイヤーは自分がいる部屋の中のものしか見ることができない」ように設計されている場合は、部屋ごとに 1 つの SO を持つことができます。しかし、それはゲームデザインに帰着すると思います。

于 2010-01-08T09:20:55.560 に答える