書き物

技術とか作った物の話とか愚痴文句感想など

NetStream と NetGroup 比較

RTMFP による通信手段には大きく分けて NetStream クラスを使う方法と、 NetGroup クラスを使う方法があります。それぞれ一長一短があるので、要件に応じてうまいこと使っていきたいところ、ということで、ゲームを作る上で調べてた時に気づいたことを書いてみます。

NetStream

  • FlashPlayer10から使用可
  • 基本的に 1 対 1 の一方向通信用。双方向通信するためには、クライアント毎に受信用、送信用、2 つの NetStream が必要。
  • 通信速度が速い。ローカルで試した結果、お互い通信待ち処理を入れても、スムーズに同期がとれた。(遠距離だと分からないですが)
  • コネクションの確立に、相手の NearID が必要。不特定の相手と接続するためには、 CGI とかによる別ルートのやり取りが必要。

NetGroup

  • FlashPlayer10.1から使用可
  • 不特定多数との同時通信向き
  • 通信速度が若干遅い。同期待ち処理を入れると、かなりガタガタして使いものにならなかった。
  • あるグループに対して接続するイメージであるため、グループの識別名を指定するだけで、簡単に双方向通信する準備が出来る。

総括 格ゲーとかアクションゲームのようなリアルタイムさが要求される場合、NetStream クラスを、RPG の戦闘や、ボードゲーム、 カードゲームのような、各プレイヤーが順番に操作していくようなリアルタイムさはさほど不要なゲームなら NetGroup クラスを使う感じでしょうか。 しかし、NetStream クラスは高速ながら、複数人数の双方向通信環境を構築するだけでも、結構な手間です。NetGroup クラスの、コーディングの容易さは異常で、簡単なチャット程度ならすぐに実装出来てしまいます。リアルタイムさを求めるゲームを Flash で実現する場合、まずはできるだけ簡単に NetStream クラスによる複数人数の双方向通信を行える環境を作れるようにする必要があると思います。