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 やリモート環境で起動する場合は、
compose.yaml
にて 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 シーンで「ランダム観戦」を押して観戦します。