オーバーレイネットワークを用いた 大規模マルチプレイヤーオンライ ンゲーム インフラストラクチャの構築 NAIST IPlab 飯村 卓司 1 MMOGの今と限界 • ネットワークゲームの発達 – 複数人数参加型オンラインゲーム • 小規模参加型オンラインゲーム: MOG (~100人程度) – 友達同士で遊ぶ • 大規模参加型オンラインゲーム: MMOG (1000~10000人程度) – 新しい友達と出会う – 最近注目を集めている比較的新しい形式のゲーム • 大規模参加型オンラインゲーム(MMOG) – クライアント・サーバ型が一般的 • 大規模な人数を扱うサーバ – 高処理能力 (クラスタなど) – 広帯域幅 (多数のプロバイダとのピア接続など) • 運用コスト、初期導入コストが高い • ネットワークプロバイダの持つ知識などが必要 – ゲーム製作のみの知識では難しい 2 目標 • サービスクオリティの維持 – クライアント・サーバインフラストラクチャと同等の規模の実現 • 既存のMMOG(同時接続数10万人)を実現 • 低レーテンシでの通信 – さまざまな種類のゲームをサポート • Role Playing Game (RPG) – 膨大なデータ量の管理、維持 • First Person Shooter (FPS) – 低レーテンシ • 運用コストの削減 – 参加ユーザの資源を用いたクラスタサーバの機能の実現 – 最小限のサーバ運営のみでのサービス提供 • アカウンティングサーバ,データバックアップ用のストレージサーバの運 用のみ 3 Zone Federation Model (ZFM) • ZFM – サーバ機能をP2Pオーバレイに分散 – 伝送速度でクライアント・サーバと同 等の性能 ゲームワールド全体 Zone X • 基本的な技術 Zone W X – サーバ機能をデータの塊(Zone) 単位 に分割 W • 分割されたzoneごとに小規模のクラ イアント・サーバを構築 – ZoneをP2Pオーバレイ上に構築 Y • Distributed Hash Table (DHT) を用 いてZoneのデータを分散 – それぞれのZoneでは、書き換え権限 を持つノードが一つのみ • データの一貫性を保障 • SIGCOMM併設workshop NetGames2004にて発表 Zone Z Z V Zone V Zone Y 4 Zone • Zoneとは – 判定とデータ転送のブロック • ブロックごとにメンバを管理 – Zone owner: サーバ役のノード – Zone member: クライアント役のノード – Independent: 対象zoneには興味の無いノード • Zoneごとに記録されているデータ – Candidate list • Zone owner になりうるノードのアドレスリスト – Member list • Zone member のアドレスリスト – データ • そのZoneにおけるゲーム内データ 5 Zoning (データの分割) candidate Game < ゲーム全体のデータ > members MAP A 川の場所 Map Map A MAP B 町の場所 プレイヤ X 現在地 プレイヤ Y 現在地 川の場所 町の場所 MAP B 川の場所 MAP A 町の場所 Zone W candidate Zoning members Map B candidate Zone X 川の場所 町の場所 members プレイヤの現在地 プレイヤ X プレイヤ Y Zone Y ログイン情報 candidate ログイン members Zone Z 6 Mapping (分割されたデータをP2P上に配置) < DHT上のゲームデータ > Key data contents zone1 Game “foo” のプレイヤ情報 zone2 Game “foo” の地図情報 zone3 Game “foo” のスコア情報 zone4 Game “bar” のプレイヤ情報 zone5 Game “bar” の地図情報 zone6 Game “bar” の敵情報 Zoneは複数のゲームを 同じDHT networkの上に実現可能 < DHT network にマップされたZone > Node B zone 4 Node C Node D zone 1 zone 5 Node E Node G Node A none zone 2 none Node F zone 6 Node H zone 3 7 Zoned Federation (1/2) • ノードの3状態 – Zone owner: Zoneを管理するserver役 – Zone member: Zoneのデータを得るclient役 – Independent: それ以外のノード • Zone それぞれに小型の client-server を構築 – Zone ownerは一時期にひとつのみ • データの書き換え権限を持つノードはZone ownerのみ • データの一貫性を保障 – Zone ownerの消滅 • Zone member は検知可能 – Zone ownerが必要である可能性が高いのはZone memberである – 必要なノードがZone owner役を買って出ることができる 8 Zoned Federation (2/2) step up join commit update Zone X member member owner independent ディスクスペース を提供 Candidate list Member list Zone X Zone Z Zone Y Zone W DHT network 9 ZFM実装 • libcookai – ライブラリとして提供 • C言語にて実装 – 動作確認済みプラットホーム • • • • • • NetBSD- (1.6, 2.0*) FreeBSD-4.*/ -5.* Vine Linux 2.6 Sun OS 5.8 Mac OS X Game Program DHT libcookai – オンラインゲームに特化させた Pastry実装 Pastry • C言語にて実装 • Hash関数としてSHA-1を使用 • X Rally-X Network – サンプル実装 10
© Copyright 2024 ExpyDoc