P2P方式によるオンラインゲームの研究、開発
Download
Report
Transcript P2P方式によるオンラインゲームの研究、開発
P2P方式によるオンライ
ンゲームの研究、開発
情報工学科
大嶽 優
はじめに
本研究の目的はP2P技術などの通信技術を
調べ、オンラインゲームを実現することである。
2.開発環境
■クライアント概要
OS
WindowsXP
■サーバー概要
OS
Solaris 8x86
CPU
Pen4 3.0G
Mem
1.0G
■開発環境
コンパイラ
データベース
VisualC++ 6.0,gcc 2.95
MySQL 3.23.58
3.研究概要
3.1.ソケットプログラミング(TCP,UDP)
TCP/IPプロトコルには、接続型(コネクション型)
と非接続型(コネクションレス型)という2種類の
ネットワーク通信がある。
TCP,UDPのチャットプログラム”EasyChat”を開発
した。
EasyChatのアルゴリズム
ネットワークの初期化
(ソケット生成,bind)
接続待機
送信
Main関数ループ
(ゲームループ)
受信スレッド
(Worker Thread)
3.2.連結リストとノードライブラリの構築
ネットワーク通信では多くのデータが行き来し、管
理しなくてはならないので効率的なデータ構造が
必要不可欠である。そのためにキュー構造の
ノードを構築した。
Node1
Node2
link
Node3
link
Node4
link
Node5
link
3.3.P2Pライブラリの構築とP2PChat
P2P(ピアツーピア)とはピア、つまりネットワークの
終点・到達地点を連結するという意味です
Host
ユーザー
プレイヤーリスト送信や、更新によるつながり
ユーザー
ユーザー
ユーザー
P2Pのアルゴリズム
ホスト
非ホスト
参加
新規生成
プレイヤーリストを受け取る
No
新規プレイヤー
他のプレイヤーに接続
Yes
プレイヤーリスト更新
他のプレイヤーに送信
待機
No
新規プレイヤー参加
Yes
3.4. ロビーサーバーとNetTetris
MySQLでデータベースを作成し、
ODBC(OpenDatebaseConnectivity)を使用してロビーサー
バーのユーザー管理を構築。
ゲームにはアルゴリズムが確立されていて容易に実装で
きるテトリスを選択した。
テーブル設計
フィールド名
形式/長
さ
NUL
L
説明
id
Char/10
true
ユーザーID
psw
Char/10
true
Password
Friend
char/10
true
freiend登録
データベースサーバー
ロビーサーバー
クライアント
Net_Tetris
4.まとめ
本研究を通してネットワークプログラミング概念やソ
ケット、パケットの扱い方をある程度理解できた。ま
た、ネットワーク分野の広さと難しさを改めて実感し
た。
今回の研究ではそれぞれのゲームの同期処理が
正確にできなかった。ゲーム自体はフレーム同期を
とっているがに回転や移動などの動作ついては
データを送っているので、互いの動作がワープした
りちぐはぐになったりしたので、それぞれの誤差を修
正する処理が今後の課題に挙げられる。