WSNet2はWebSocketをベースとしたモバイルオンラインゲーム向けのリアルタイム通信システムです。
- WebSocketベース: ほとんどの環境から特別な設定なく接続することができます
- 自動再接続・再送: 利用アプリは一時的な切断を気にすることなく実装できます
- スケーラブルな観戦: 中継サーバ(Hub)を増やすことで大規模な観戦に対応できます
- Unity/.Net両対応: C#のゲームロジックをより軽量にサーバ上でも実行できます
- サーバ
- Go 1.19 以降
- MySQL 5.7 以降
- クライアント
- C#
- Unity 2020 以降
- .Net 5.0 以降
- Go 1.19 以降
- C#
$ cd server
$ docker compose up
VMやリモート環境で起動する場合は、
docker-compose.yml
にてgame/hubの接続ホスト名を環境変数WSNET2_GAME_PUBLICNAME
で適切に指定してください。
wsnet2-unity
ディレクトリをUnityで開き、Assets/Sample/Title.unity
シーンを実行します。
- テキストボックス
- Lobby: WSNet2のlobbyのURLです
- AppID/Key: WSNet2に登録しているAppIDとKeyです(Dockerでは
testapp
/testapppkey
が登録されています) - UserID: WSNet2がユーザを識別するIDです。対戦するにはお互い異なるUserIDにします
- ボタン
- CPU対戦: オフラインでCPUと対戦します(WSNet2に接続しません)
- 部屋作成: WSNet2に部屋を作り、相手プレイヤーを待ち受けます
- ランダム入室: プレイヤーを待っている部屋に入室します
- ランダム観戦: 対戦中のゲームを観戦します
Unityクライアントのタイトルシーンで「部屋作成」ボタンを押して、部屋を作り対戦相手の入室を待ちます。 対戦相手のBotを次のように起動します。
$ cd wsnet2-dotnet/WSNet2.Sample
$ dotnet run -- -b
Lobbyサーバをhttp://localhost:8080
以外で起動している場合は、
Titleシーン画面のLobbyに入力したうえで、Bot起動時にも-s
オプションで指定してください。
次のようにゲームロジッククライアント(MasterClient)とBotを起動します。 MasterClientが部屋を作り、BotとUnityクライアントの入室を待ち受けます。
$ cd wsnet2-dotnet/WSNet2.Sample
$ dotnet run -- -m -b
UnityクライアントのTitleシーンで「ランダム入室」を押してMasterClientの待ち受ける部屋に入室します。
次のようにゲームロジッククライアント(MasterClient)とBotを2つ起動します。 MasterClientが部屋を作り、Botが入室して対戦を始めます。
$ cd wsnet2-dotnet/WSNet2.Sample
$ dotnet run -- -m -b 2
UnityクライアントのTitleシーンで「ランダム観戦」を押して観戦します。