P2Pと遅延+P2PでMMORPG
昨日、職場で飲み会があった。その前の打ち合わせで上司がこんな事を言っていた。
「出る杭になれ」
つまり、自分の意見や主張を周り言うと、その反応が多くの人から集まる。もちろんそれは肯定的な意見とも限らないが、そのような反応を処理することで自分の意見をより練る事ができる、最終的にはスキルアップして自分の価値を上げることに繋がる、という訳である。なるほどと思った。
HPにおいてP2Pのトピックスを書くようになって、いろいろな所からリンクを張られたり、コメントが寄せられている。また某巨大掲示板でも私のHPの紹介があったりしているようだ。もちろん、その中には批判的なものもあるが、逆にそれを見て、中身をより精査したり、もっとより充実したHPを作る意欲が沸いてきた。P2P TodayのBlogにも書いてあったが、P2Pに関心のある人はBlogでもHPでも良いのでP2Pの話題を書いて欲しいと思う。そうすることによって自分の考えがもっと洗練し、結果的にはスキルアップが図れると思う。もちろん、情報共有と意味でも重要である。
さて、本題に戻して今日はP2Pと遅延について考えてみようと思う。
P2Pで遅延が話題になるところといえば、VoIPとゲームが挙げられる。今回は後者のみ考える事とする。P2Pの遅延についての研究については下記の資料が参考になるだろう。
P2Pネットワークゲームのための階層型遅延最適化ミドルウェアの評価
その説明資料(パワーポイント)
この資料は面白いしわかりやすいので一回読んで欲しい。P2Pゲームでは同期が重要なファクターとなる。例えばAとBがアクションゲームをしてたとする。このときちゃんと遅延を考慮した同期をとらないと、リアルな時間ではAが先にBに必殺技をかけてBを倒していたはずなに、実際のゲームでは逆にBの方がAに必殺技をかかってしまう、なんてことが起きてしまう。同期については遅延が一番大きいのに引きずられるために、どのように遅延時間を短くするかということを考える必要がある。
通常のP2Pゲームではメッシュ型のネットワークを構築するが、この論文では、ノード間の遅延時間を測定し、それをある特別なノードが計算をとりまとめ、ノード間が一番遅延の少ないルートを選ぶようにする。そのため、場合によってはノード間に他のノードを挟んだ方が遅延が少ないこともありうる。
さて、このようなことを調べた時に、そもそもWinnyのようなP2Pネットワークが遅延時間(帯域などのほかのパラメータでも良いが)を最適化にするネットワーク構成に動的にリンクを接続・消去しながら形成できないか?と思った。そんなことを考えていたら、やっぱり同じような考えている人がいたので、その資料を紹介する。
オーバーレイネットワークの最適化手法の提案
これも平易な文章で書かれているので、読みやすいと思う。
Winnyではクラスターと呼ばれる手法によってファイル共有を最適化するネットワーク構成を実現しているが、今後上記のような研究が進めば、P2Pで行うサービスに応じて最適化するネットワークを自律的に構成することも可能になるだろう。
さて、ゲームの話が出たのでその話題に振ろう。今、某巨大掲示板でP2PでMMORPGができるかどうか、ということについて色々と意見がでている。P2Pゲームであると通常はアクションゲームなど数人で行うことが普通である。ではP2PでMMORPGは本当に実現可能だろうか?(ちなみにMMORPGとは大規模ユーザ参加型のRPGゲームにこと)
まず、MMORPGでは巨大なストレージと計算を行う必要がある。しかしこれはP2P分散ストレージやグリッドを使えば解決できることだろう。(つまり各ノードで分散して計算をさせ、ストレージを共有させる。)問題はユーザ間の通信をどうするかということである。
通常であればP2Pゲームはメッシュ型のネットワーク形態を取るが、MMORPGでは参加人数が多いのでかなり無理がある。一般にnの人が参加してしているメッシュ型のリンク数はn(n-1)/2である。そこで、Hybrid-P2Pが使えるのではないかと考えた。つまり、先ほど言った分散ストレージやグリッドの計算の管理及び課金を事業者のサーバで行う。またそれだけでなく、このサーバはある複数のノード(ユーザ)をアプリケーションサーバに指名して、そこに他のノードが接続してゲームを行うようにする。(もちろん事業者サーバはノードに対してどのアプリケーションサーバと接続させるか決定し、アプリケーションサーバの負荷分散を行う。)つまり、P2Pのネットワークは形成しているものの、実質的にはクライアント=サーバモデルになる。
このようなモデルにすれば、かなり大きなユーザでも収容できるシステムができそうだ。つまりユーザが増えてもそれに伴い、アプリケーションサーバが自然に増えるというわけだ。事業者サーバも数台でMMORPGが提供できるかもしれない。もちろん、事業者サーバは各ノードを管理するために適切なアルゴリズムを使用する必要があり、この作りが悪いと、ゲームの快適さもユーザ数の増加につれ極端に落ちる。
まだまだジャスト イン アイデアに過ぎないので、面白いアイデアやコメントがあれば、連絡を頂きたいと思う。
| 固定リンク
「P2P」カテゴリの記事
- WebRTCを実現するためにSTUNだけでなくTURNも必要な理由(2015.01.08)
- [P2P]P2Pストリーミングのサーベイ文書について(2014.11.09)
- Winnyの開発者、金子 勇氏の急逝を悼んで(2013.07.07)
- 「分散ハッシュシステムでのNAT超えの考察」に対する質問について(2012.12.16)
- [P2P]Websocketでブラウザ間P2P通信は実現できるか?(その2)(2011.11.20)
この記事へのコメントは終了しました。
コメント