Transcript ppt
ネットワークゲームの再利用を可能に する通信接続形態切替機構 Netgames 環境情報学部4年 金田 裕剛 親:政策・メディア研究科 峰松 美佳 サブ親:政策・メディア研究科 高橋 ひとみ 発表概要 研究背景・問題意識 ネットワークゲームの再利用問題 Gaming Swapperの概要 設計 実装 評価 今後の課題・まとめ 研究背景・問題意識 研究背景 常時接続回線の普及 大人数で遊ぶMultiplayer Online Gameの 普及 クライアント・サーバ型(C/S)によるサービ スの定着 C/S型ネットワークゲーム 構成図 データベースサーバ ゲーム計算サーバ ユーザ操作メッセージ Internet 認証サーバ 更新 認証接続 クライアント クライアント クライアント C/S型における問題意識 商用ネットワークゲーム サービス(サーバ)維持費用が高い クライアント数の制限 →商用ネットワークゲームの行く末 遊べなくなっていくC/S型ネットワークゲーム多数発生 Dreamcastネットワーク対応ゲーム(Sega Rally2, Frame Glide, ぐるぐる温泉) 疾走、ヤンキー魂。 再利用の必要性 C/S型ではサーバが停止するとサービス終 了 ユーザ全員が強制的に終了を告げられる →サービス提供側の事情に関わらず永続的 に遊べる仕組みが必要 本研究では“再利用”と定義 ピア・ツー・ピア型(P2P) ネットワークゲームへの期待 参加ユーザ同士で直接接続してゲームす る 各ユーザがサーバでありクライアント Ex:)Diablo, WarCraft, Lunatic Dawn →ネットワーク保障や課金が難しい C/S型からP2P型へ 既存のC/S型ゲームをP2Pに サービス終了期限がなくなる 履歴データが各ユーザごとに集約管理 →課題あり アプリケーションの通信コード修正が必要 単一管理を分散管理にする必要 平等なネットワーク処理の保証が必要 Gaming Swapperの提案 簡易にネットワーク形態を切り替える汎用 的フレームワークの実現 C/Sネットワークゲームを手軽にP2Pへ Netgames Gaming Swapper適応前 端末(ユーザ側) 端末(ユーザ側) Client Application Client Application network 端末(サービス提供側) Server Application Gaming Swapper適応後 端末 端末 Client Server Application Application Client Server Application Application Gaming Swapper Gaming Swapper network 関連研究 再利用方法 ネットワークゲーム開発用ミドルウェア 公開フリーウェア サーバエミュレーションツール 関連研究: ネットワークゲーム開発用ミドルウェア DirectPlay(Microsoft) MassPlayerSystem DynaLink(Multiterm) NetEngine(Dwango) →“開発者向け”フレームワーク 修正コストがかかり、敷居が高い ユーザのためのフレームワークが必要 関連研究: 公開フリーウェア 商用ゲームをフリーウェアとして公開 id software “Doom” “Quake” “Wolfenstein” →通信接続形態はそのまま →誰かが管理しなければならない 関連研究: サーバエミュレーションツール 商用ゲームを公式のサーバを介さず遊ぶ ためのフリーソフトウェア bnetd, etc… 公式のゲームサーバ機能をほとんどエミュ レーション →各社ゲームごとに乱立 通信接続形態を変更するものではない 設計 設計方針 1. 汎用的フレームワークの実現 →複数のゲームで共通して使える 2. 3. ゲームコードの修正不要 マルチプラットフォーム対応 ネットワークゲームのジャンル First Person Shooting(FPS) Real-Time Strategy(RTS) 多人数で銃撃戦 多人数で戦略侵攻戦 Massively Multiplayer Online Role Playing Game(MMORPG) 多人数で冒険及び仮想生活 ネットワークゲームの機能分類 ジャンル共通部分 ゲーム空間計算処理 ゲーム資源(グラフィックス、サウンド等) クライアント・サーバ間基本通信 各ジャンル依存部分 パケット到着時間制限処理 ユーザ認証 暗号化 サーバ自動計算処理 Gaming Swapperの前提条件 ゲームのソースコード又はバイナリ提供 ゲームのアドレス・ポート・プロトコルの開示 ゲームのメッセージプロトコルの開示 大半のゲームで存在 クライアント・サーバアプリケーションのポートが 重複しない 同一端末内でクライアントとサーバの同時実行 Gaming Swapperの機能 主に5つのモジュールから構成 認証管理モジュール ゲームメッセージ送受信モジュール ゾーンに応じてIDを生成 同期管理モジュール 内部でのC/S転送、P2P通信時の配送 ゲームゾーン管理モジュール C/S通信時の認証メッセージの適切な配送 P2P時のメッセージ配送タイミング管理 トポロジ構築 P2P時のトポロジの最適化 Gaming Swapper構成図 クライアントアプリケーション サーバアプリケーション 認証メッセージ送受信 認証管理 ゲームメッセージ送受信 ゲームメッセージ送受信 参照 ゲームメッセージ送受信 参照 ゲーム ゾーン管理 システム メッセージ 送信 サーバ管理表 メンバ管理表 参照 トポロジ構築 同期管理 ゲームメッセージ ゲームメッセージ 送信 受信 ネットワークレイヤ システム メッセージ 受信 実装 プロトタイプ実装 C言語 + WinPcap Windows 2000及びXP アプリケーションレイヤで実装 ポータビリティを高くできる プロトタイプ実装機能 ゲームメッセージ送受信機能 メッセージ配送ルールの記述(XML) サーバ管理表 メンバ管理表 実装個所 クライアントアプリケーション サーバアプリケーション 認証メッセージ送受信 認証管理 ゲームメッセージ送受信 ゲームメッセージ送受信 参照 ゲームメッセージ送受信 参照 ゲーム ゾーン管理 システム メッセージ 送信 サーバ管理表 メンバ管理表 参照 トポロジ構築 同期管理 ゲーム ゲームメッセージ メッセージ送信 受信 ネットワークレイヤ システム メッセージ 受信 メッセージ配送ルールの定義 適切にメッセージを配送するため、配送すべきア ドレスのペアを記述 クライアントアプリケーション アドレス ポート サーバアプリケーション 本来接続するサーバ情報 転送するべき内部サーバ情報 アドレス ポート XML設定例(クライアント情報) <client> <ip>133.27.XX.XX</ip> <gameproto>UDP</gameproto> <gameport>27901</gameport> <certproto>UDP</certproto> <certport>27901</certport> <virtualip>192.168.250.X</virtualip> </client> XML設定例(サーバ情報) <gameserver> <origin> ←C/S時の接続先サーバプロセス <ip>217.20.XX.XX</ip> <proto>UDP</proto> <port>27910</port> </origin> <forward> ←ユーザ端末内部の転送先プロセス <ip>133.27.XX.XX</ip> <proto>UDP</proto> <port>27910</port> </forward> </gameserver> Gaming Swapper動作手順 メッセージ配送ルールの記述 1. 2. 3. 4. ゲームのメッセージプロトコルの記述(ゲー ム依存)→今後実装予定 Gaming Swapperの起動 サーバアプリケーションの起動 クライアントアプリケーションの起動 評価(定量及び定性評価) 定量評価 メッセージ処理のオーバヘッド 1. 端末内部のオーバヘッド 2. UDP Constant Bit Rateプログラムで10ミリ秒ご とに300回 UDPパケット送信 P2P送信スケーラビリティ Quake2クライアントを利用しP2P送信回数を増加 メッセージ処理の評価環境(1) クライアントアプリケーション サーバアプリケーション 認証管理 タイムスタンプ ゲーム ゾーン管理 ゲームメッセージ送受信 サーバ管理表 メンバ管理表 トポロジ構築 ネットワークレイヤ 同期管理 メッセージ1個当たりの処理時間(u秒) メッセージ処理の評価結果(1) 100 90 80 70 60 50 40 30 20 10 0 0 50 100 150 200 250 計測回数( 回) 平均69マイクロ秒でサーバプロセスへ出力 層になるのはOSのスケジューリングの影響 300 送信スケーラビリティの評価環境(2) 100Base-T 100Base-T Gaming Swapper 市販の小型 Client Server ブロードバンドルータ Client Server Gaming Swapper 評価用送信ホスト P2P受信ホスト (Pen4 3.6, メモリ2GB) (PenM 1.3, メモリ512MB) 評価ホストで全て計測 Quake2 version 3.21 計測パケット数 3000 送信処理の平均遅延・標準偏差 送信スケーラビリティの評価環境(2) クライアントアプリケーション サーバアプリケーション 認証管理 タイムスタンプ ゲーム ゾーン管理 ゲームメッセージ送受信 サーバ管理表 メンバ管理表 トポロジ構築 ネットワークレイヤ 同期管理 1回の送信処理における平均処理時間 (ミリ秒) 評価結果(2): 平均処理時間の推移 80 70 60 50 40 30 20 10 0 100 200 300 400 500 600 700 800 900 送信端末台数( 台) •関連研究からFPSでは50~150ミリ秒の片道遅延 →体感許容片道遅延200ミリ秒程度より30~40ミリ秒程度 評価結果(2): 平均処理時間の標準偏差推移 1回の送信処理における標準偏差 35 30 25 20 15 10 5 0 100 200 300 400 500 600 700 800 900 送信端末台数( 台) 台数が多いとメッセージ送信タイミングにばらつきが発生 考察 一般的ネットワークゲームにおいて片道 200~250ミリ秒程度まで体感許容遅延 →端末内部におけるオーバヘッドは小さい メンバ増加によりオーバヘッド増加 全機能を含めたネットワーク上での詳細な 評価が必要 定性評価 4つのポイントを比較 コードの修正が必要かどうか ネットワークの耐故障性 対応ゲーム種の数 評価結果 項目 コード修正 不必要 耐故障性 サーバエ ミュレーショ ン × × 開発ライブラ Gaming Swapper リ × ○ ○ ○ ○ ○ 対応ゲーム 種 アプリケーションコードに対する修正が不要 × 今後の課題・まとめ 今後の課題 全機能の実装 インターネット上での評価 シミュレータによるスケーラビリティ評価 ルール記述の妥当性の検証 ゲームのメッセージプロトコル依存部の対応 多種タイトルへの対応 セキュリティの付加 サーバ同士の同期問題の解決 まとめ C/S型ネットワークゲームの再利用問題の 定義 C/S型・P2P型において通信接続形態を変 更する機構の提案 より詳細な評価・検証が必要 発表論文 “P2Pネットワークゲームのための階層型遅延最適化ミドル ウェアの提案と評価” “ANGEL: A Hierarchical State Synchronization Middleware for Mobile Ad-hoc Group Gaming” 金田 裕剛, 峰松 美佳, 斉藤 匡人, 間 博人, 徳田 英幸 情報処理学会第66回全国大会 Yugo Kaneda, Mika Minematsu, Hiroto Aida, Hideyuki Tokuda 2nd International Conference Pervasive 2004 Workshop on Gaming Applications in Pervasive Computing Environment. “ANGEL: A Hierarchical Path Optimization Middleware for RealTime Multiplayer Gaming in Wired and Wireless Networks” Yugo Kaneda, Mika Minematsu, Hiroto Aida, Hideyuki Tokuda 情報処理学会第12回マルチメディア通信と分散処理(DPS)ワークショップ