オンラインゲームの開発

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.まとめ

本研究を通してネットワークプログラミング概念やソ
ケット、パケットの扱い方をある程度理解できた。ま
た、ネットワーク分野の広さと難しさを改めて実感し
た。

今回の研究ではそれぞれのゲームの同期処理が
正確にできなかった。ゲーム自体はフレーム同期を
とっているがに回転や移動などの動作ついては
データを送っているので、互いの動作がワープした
りちぐはぐになったりしたので、それぞれの誤差を修
正する処理が今後の課題に挙げられる。