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)ワークショップ