【ソースコード公開予定】サーバー1台↔複数クライアントの通信を想定したUDP通信システム

OVERVIEW

卒業作品として制作中のデジタルゲームで使用する、サーバーを介したマルチプレイを実現するUDP通信(ソケット通信)システムの紹介です。(ゲーム本編を製作中であるため、随時更新予定です!)

YEAR 2024

<使用言語>

C#

<使用ツール>

  • Visual Studio
  • Unity

<概要>

同一LAN内において、1台のサーバーコンピュータ最大4台のクライアント(タブレット)を接続してマルチプレイを行うことを目的に、ゲームの基幹となる通信システムを自作しました。

Unityでのマルチプレイを実装するために、Mirrorなどのアセットを使用することも考えましたが、カスタマイズ・メンテナンスを容易にしたかったこともあり、勉強を兼ねてUDP通信システムを制作することにしました。

System.Net.Sockets のTcpClientクラスを使用しています。

リファクタリングが終わり次第、GitHubにてソースコードを公開予定です。

<内容>

  • パケット情報を定義し、Byte配列との相互変換メソッドを持つCommDataクラス

  • TcpClientインスタンスを持ち、バイト配列の送受信のみを請け負うUdpCommunicatorクラス

  • 上記のクラスを使って実際にゲームを動作させるGameServerManagerクラス・GameClientManagerクラス (MonoBehaviourを継承)