240 likes | 407 Views
卒論 preview. 12/14 全体ミーティング 米澤研究室卒論生 山崎孝裕. テーマ. Massively Multiplayer Online Game ( MMOG )を P2P 上に実装する. 内容. MMOG とは? P2P 技術を使った MMOG の提案 実装の方針 今後の予定. MMOG とは?. オンラインゲーム MOG MMOG アプリケーションモデル 一般的な分散システムとの差異 従来のネットワークモデル MMOG の現状. オンラインゲーム. ネットワークで繋がれたコンピュータ上に仮想世界を構築
E N D
卒論 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の行動を送信
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. 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