12/14 全体ミーティング 米澤研究室卒論生 山崎孝裕 卒論 preview 12/14 全体ミーティング 米澤研究室卒論生 山崎孝裕
テーマ Massively Multiplayer Online Game(MMOG)をP2P上に実装する
内容 MMOGとは? P2P技術を使ったMMOGの提案 実装の方針 今後の予定
MMOGとは? オンラインゲーム アプリケーションモデル 一般的な分散システムとの差異 従来のネットワークモデル MMOGの現状 MOG
オンラインゲーム ネットワークで繋がれたコンピュータ上に仮想世界を構築 複数のプレイヤーが仮想世界上で相互作用 計算ノードが人間(クライアント)である分散シミュレーションとして見られる 規模による分類: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 通常はエリアごとなど 高いScalability 運営側の必要なリソースが小さい →コスト面で大きなメリット Peerは信頼できない →故障耐性・セキュリティがより重要
実装の方針 Phoenixを使った実装 実装の詳細
Phoenixを使った実装(1) オーバレイネットワークにPhoenixを使用 仮想ノードによる抽象化 ノードの動的参加/脱退が容易 故障検知機能
Phoenixを使った実装(2) 複数のPhoenixオーバレイを作成することでシステムのScalabilityをあげる ノード管理オーバレイ 全エリア管理オーバレイ エリア管理オーバレイ
実装の詳細 中央で管理するサーバ 認証・データサーバ エリアマスターサーバ Peer上のノード エリアサーバ エリアレプリカ クライアント
認証・データサーバ ノード管理オーバレイを管理 クライアント情報とPCのデータベースを保持 長期的なPersistency確保 ユーザ数に対するScalabilityはない
エリアマスターサーバ 全エリア管理オーバレイを管理 エリアサーバの管理 ユーザ・エリア数に対するScalabilityはない 全エリアサーバのメタ情報を保持 エリアサーバ移行時の調停 エリアオーバレイへのエントリポイントを提示 ユーザ・エリア数に対するScalabilityはない エリアマスターの分散も考えられるが今回は考えない
エリアサーバ・レプリカサーバ エリアオーバレイを管理 対応するエリアの管理 脱退時・故障時の移行処理 エリア状態の保持 エリア状態の計算 クライアントとの通信 脱退時・故障時の移行処理
クライアント 各エリア管理オーバレイに接続 PCに対応する仮想ノード番号をassume システムと物理的なプレイヤーとの橋渡し エリアサーバやレプリカと物理ノードを共有することもあるが、別プロセスで処理
今後の予定 故障を考慮に入れないプロトタイプを作成 エリアサーバ故障時のプロトコルの考案 →これをメインテーマにする予定
参考文献 [1] B. Knutsson, H. Lu, W. Xu, B. Hopkins. Peer-to-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