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