Transcript 卒論 preview
卒論 preview
12/14 全体ミーティング
米澤研究室卒論生
山崎孝裕
テーマ
Massively Multiplayer Online Game
(MMOG)をP2P上に実装する
内容
MMOGとは?
P2P技術を使ったMMOGの提案
実装の方針
今後の予定
MMOGとは?
オンラインゲーム
MOG
MMOG
アプリケーションモデル
一般的な分散システムとの差異
従来のネットワークモデル
MMOGの現状
オンラインゲーム
ネットワークで繋がれたコンピュータ上に仮
想世界を構築
複数のプレイヤーが仮想世界上で相互作
用
計算ノードが人間(クライアント)である分散
シミュレーションとして見られる
規模による分類:MOGとMMOG
MOG
Multiplayer Online Game
数人~十数人のプレイヤー
プレイヤーのあるノードがサーバになり、そこに
ほかのノードが接続する形が一般的
プレイヤーのマッチング用に中央サーバを置く
こともある
MMOG
Massively Multiplayer Online Game
数十人~数千人以上のプレイヤー
全プレイヤーがひとつの世界を共有
ゲームステートを管理する特別なサーバ(ゲー
ムサーバ)が存在する形が一般的
ゲームサーバへ接続するためのサーバが存在
アプリケーションモデル(1)
仮想世界中にオブジェクトが存在
オブジェクト同士が相互作用
Player Character(PC)
Non-player Character(NPC)
プレイヤーがクライアントを通して行動を決定
コンピュータが行動を決定
その他
アプリケーションモデル(2)
エリアの概念
広大な仮想世界を分割
基本的には実装上の都合
相互作用の複雑度の低下
Interest Management
一般的な分散システムとの差異
ノードの物理的位置が固定
クライアントノードの位置は固定
リアルタイム性の重視
逆に正確性はゲームの性質次第では緩めるこ
とができる
従来のネットワークモデル(1)
クライアントサーバモデルが主流
サーバ
運営側が全サーバを管理
仮想空間の状態を一括して計算・管理
非常に大きな計算能力と回線帯域が必要
→Scalabilityに問題
従来のネットワークモデル(2)
クライアント
ゲーム空間の周囲の情報をサーバから得る
サーバにPCの行動を送信
例:FINAL FANTASY XI のネットワーク構成
P2Pを利用したMMOG
サーバの機能をPeerに分散
ゲーム空間の管理をPeerに任せる
通常はエリアごとなど
高いScalability
運営側の必要なリソースが小さい
→コスト面で大きなメリット
Peerは信頼できない
→故障耐性・セキュリティがより重要
実装の方針
Phoenixを使った実装
実装の詳細
Phoenixを使った実装(1)
オーバレイネットワークにPhoenixを使用
仮想ノードによる抽象化
ノードの動的参加/脱退が容易
故障検知機能
Phoenixを使った実装(2)
複数のPhoenixオーバレイを作成することで
システムのScalabilityをあげる
ノード管理オーバレイ
全エリア管理オーバレイ
エリア管理オーバレイ
実装の詳細
中央で管理するサーバ
認証・データサーバ
エリアマスターサーバ
Peer上のノード
エリアサーバ
エリアレプリカ
クライアント
認証・データサーバ
ノード管理オーバレイを管理
クライアント情報とPCのデータベースを保持
クライアントにPCデータと所属エリアを提示
(マッチング)
長期的なPersistency確保
ユーザ数に対するScalabilityはない
エリアマスターサーバ
全エリア管理オーバレイを管理
エリアサーバの管理
全エリアサーバのメタ情報を保持
エリアサーバ移行時の調停
エリアオーバレイへのエントリポイントを提示
ユーザ・エリア数に対するScalabilityはない
エリアマスターの分散も考えられるが今回は考
えない
エリアサーバ・レプリカサーバ
エリアオーバレイを管理
対応するエリアの管理
エリア状態の保持
エリア状態の計算
クライアントとの通信
脱退時・故障時の移行処理
クライアント
各エリア管理オーバレイに接続
PCに対応する仮想ノード番号をassume
システムと物理的なプレイヤーとの橋渡し
エリアサーバやレプリカと物理ノードを共有
することもあるが、別プロセスで処理
今後の予定
故障を考慮に入れないプロトタイプを作成
エリアサーバ故障時のプロトコルの考案
→これをメインテーマにする予定
参考文献
[1] B. Knutsson, H. Lu, W. Xu, B. Hopkins. Peerto-Peer Support for Massively Multiplayer Games
[2] K. Taura, T. Endo, K. Kaneda, A. Yonezawa.
Phoenix: a Parallel Programming Model for
Accommodating Dynamically Joining/Leaving
Resources