【ソースコード公開予定】サーバー1台↔複数クライアントの通信を想定したUDP通信システム
OVERVIEW
卒業作品として制作中のデジタルゲームで使用する、サーバーを介したマルチプレイを実現するUDP通信(ソケット通信)システムの紹介です。(ゲーム本編を製作中であるため、随時更新予定です!)
<使用言語>
C#
<使用ツール>
- Visual Studio
- Unity
<概要>
同一LAN内において、1台のサーバーコンピュータと最大4台のクライアント(タブレット)を接続してマルチプレイを行うことを目的に、ゲームの基幹となる通信システムを自作しました。
Unityでのマルチプレイを実装するために、Mirrorなどのアセットを使用することも考えましたが、カスタマイズ・メンテナンスを容易にしたかったこともあり、勉強を兼ねてUDP通信システムを制作することにしました。
System.Net.Sockets のTcpClientクラスを使用しています。
リファクタリングが終わり次第、GitHubにてソースコードを公開予定です。
<内容>
- パケット情報を定義し、Byte配列との相互変換メソッドを持つCommDataクラス
- TcpClientインスタンスを持ち、バイト配列の送受信のみを請け負うUdpCommunicatorクラス
- 上記のクラスを使って実際にゲームを動作させるGameServerManagerクラス・GameClientManagerクラス (MonoBehaviourを継承)