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