[P2P]P2Pゲームの可能性について
さて、先日お伝えしたように未踏ユースにおいてP2Pゲームを作成するプロジェクトがあるらしいことをこの場で書きました。一つはグリッドでゲームシステムを構築する名付けて「グリゲー」、もうひとつはP2P用にゲーム自体をカスタマイズしてP2Pゲームの実現を可能にするらしいもの。
P2Pでゲームをする事、特にMMORPGを実施するのは個人的にはかなり困難が予想されるだろうと思っていた。DHTでシステムを構築するにも例えばデータをLookupするにもノード数Nに対してLog(N)の時間がかかるし、何よりも各ノードから膨大なデータを取得するのが大変であり、特にノード間の同期を取るのが難しそうだからだ。
そういう意味でP2P用にゲームをカスタマイズする、という作戦は妙案だと思う。例えば私がもしこれをするとすれば、
1)ほとんどのゲーム処理についてはクライアントで行う
2)P2Pで行うところはユーザ間の同期(ユーザのプレイ情報、敵情報)のみ
3)遅延の影響を考慮してターン制ゲームにする
ということを考えるだろう。
とは言え、私が思っている困難さを見事に超えP2Pで大規模参加型ゲームをする試みは着々と進んでいる。
今回は次回P2P勉強会にも参加していただく予定のNAIST 飯村氏の論文、プレゼンを紹介したい。
なお、飯村氏のプレゼン資料については、ここに置かせて頂いた。
また、快く論文を紹介をさせて頂きました飯村氏に深く感謝を致します。
飯村氏のプレゼン資料を非常にざっくり解説をしよう。
飯村氏は大規模ゲーム(これを彼はMMOGと呼んでいるので、今後これで書かせて頂く)を実現するにあたり、DHTのPastryを用いている。この論文では彼はあるデータを管理する領域についてZoneという概念を導入している。
Zoneにおいてクライアントから選ばれたあるノードが「サーバ」として振舞う。もし、そのZoneのデータとやりとりをするのであれば、クライアントはそのZoneのサーバと通信する必要がある。またそのZone内のデータを変更できるのは、そのサーバ1つのみ。この処置によって、データの一貫性が守れるわけである。
では結論として、どのくらいのユーザでこのMMOGを実現できるのだろうか?論文のシミュレーション結果によると、適切にZoneを設定すれば、数100人~数10万人のユーザが利用可能だと思われます。これはZoneを上手く設定する必要があります。
飯村氏は既にこのDHTを搭載したミドルウェアを各種OSで開発済みで、多くのゲーム開発者に使って頂きたいと考えている。MMOGは一般に初期コストが非常に高いが、このようなP2Pアプローチであれば、安価にシステムを構築できる。興味がある方は飯村氏か私に連絡して頂ければ幸いである。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- iPhoneのスクリーンショットを自動的にメールに投稿するテクニック[IFTTT](2014.11.23)
- WebRTC研究会開催のお知らせ(2014年12月開催予定)(2014.08.24)
- 「Gunosyオフィスツアー」を振り返る〜世界一のニュースアプリを目指すために(2014.06.01)
- Gunosyオフィスツアーの参加者募集を開始しました!(5月9日[金]開催)(2014.04.29)
- 第4回Twitter研究会(5/18[土])の講演スケジュール(2013.05.10)
この記事へのコメントは終了しました。
コメント
こんにちは。puuこと飯村卓司の議論相手をしていた(むしろさせられていた)者です。本人がコメントしてないようなので、この記事の補足をいくつか。
まず、puuが使用しているDHTライブラリは、PastryではなくてPastry-likeな自前コードで(Pastry論文を元に作成)、何点かZFMに合わせた機能拡張をしている筈です。現在、ZFM実装と合わせて以下のURLにて公開しています。
http://libcookai.sourceforge.net/
あと現在のZFMだけでは実際の商用ゲーム作成には不十分で他にも検討しなければならない点が多数あります。記事中でおっしゃっていた適切なZone分けがまず1点、他にもAAA、チート対策、安定運用のためのストレジの在り方、などなどが挙げられます。きちんとした文書ではありませんが、以下にpuuが書いた技術メモが置かれています。皆々様方、よろしければ、叩いてあげてくださいませ。
http://iplab.aist-nara.ac.jp/research/overlay/ZFM/
zone分けとZoneOwnerの決定方法については、上記リンクに数日以内にアップするとのことです。しばしお待ちを。
# ところで、、、
上の3条件だけだとソフトウェア改竄によるチートのやりたい放題なのでは…。
投稿: hiro-kid | 2004.11.22 20:14
あげ様:
コメントありがとうございます。
>ターン制だと、オンライン競馬ゲームが全部大丈夫かも。
確かに、これはイイですよね!全ての条件クリアしていますし。
未踏ユースの人がどんなゲームを作っているか、今から楽しみです。
投稿: Tomo | 2004.11.19 09:38
ターン制だと、オンライン競馬ゲームが全部大丈夫かも。
・競馬伝説Live! オンライン シミュレーション ゲーム
http://www.k-den.jp/index.html
コレで遊んでるんだけど、1週間が1日で進行するので、
・ほとんどのゲーム処理についてはクライアントで行う
→レース処理はPCの方で。育成もPCで。
・P2Pで行うところはユーザ間の同期(ユーザのプレイ情報、敵情報)のみ
→結果のみ鯖に送る。(1日の余裕があるのでマターリ拡散)
・遅延の影響を考慮してターン制ゲームにする。
→毎回、締切時間で区切って、競馬内の次の週パートに進む。
私自身が技術は詳しくないので、直感的な意見になってしまうのですが。。。
投稿: あげ | 2004.11.18 19:29