まずはパッケージをダウンロード
majiXA
https://github.com/YarukimanTokkys/majiXA
上記 github リポジトリから ZIP ファイルをダウンロード、もしくは git で Clone してパッケージ取得します。
動作推奨環境
クライアント (Unity)
・Unity 2017 以降のバージョン
majiXA の仕組み
majiXA はリアルタイム通信ゲームを簡単に実装できるパッケージです。
nginx-luajit-ws をベースにして Unity 上での開発をしやすくしたものです。
開発言語は C# です。
nginx-luajit-ws
https://github.com/sassembla/nginx-luajit-ws
クライアントのセットアップ
majiXA を Unity で使用するためには WebuSocket と Disquuun というライブラリがさらに必要になります。
WebuSocket ライブラリはクライアントからサーバに WebSocket 接続を行うために必要な処理をすべて行ってくれるライブラリです。
また、Disquuun ライブラリはクライアントからサーバへ渡されたデータが nginx を介して Disque と呼ばれるオンメモリキューシステムに保存され、そのデータをサーバ側が吸い出すために必要となるライブラリです。
STEP1 majiXAパッケージのインポート
- Unity 上で新規プロジェクトを作成します。
- majiXA_1.0.0.unitypackage を Unity へインポートします。
STEP2 WebuSocket ライブラリの配置
- 次に WebuSocket ライブラリをダウンロードして解凍します。
- 解凍してできた WebuSocket-master/WebuSocket フォルダを、プロジェクトの Assets/majiXA/Client/ 配下にコピーします。
WebuSocket
https://github.com/sassembla/WebuSocket/releases/tag/0.8.0
STEP3 Disquuun ライブラリの配置
- 次に Disquuun ライブラリをダウンロードして解凍します。
- 解凍してできた Disquuun-master/Disquuun フォルダを、プロジェクトの Assets/majiXA/Server/Editor/ 配下にコピーします。
Disquuun
https://github.com/sassembla/Disquuun/releases/tag/0.6.0
STEP4 サンプルパッケージのインポートと準備
- sample.unitypackage をプロジェクトへインポートします。
- インポートしてできた Assets/Sample/SampleScene シーンを開きます。
- Assets/majiXA/Configs/Config.cs の BUNDLE_IDENTIFIER をユニークなバンドルIDに書き換えます。
例)com.yarukiman.majixa
ここまでの作業で majiXA を使う準備が整いました。
それでは実際に Unity 上でサーバを起動して試してみましょう。
サーバの起動と言っても難しいことをする必要はありません。
majiXA の動作確認
- Unity プレイヤーの実行ボタンを押して再生します。
- メニューから MajiXA > Local Server Controller を選択し majiXA のコントロール用ウィンドウを表示させます。
- Local Server Controller (以後LSC) の START ボタンを押します。
接続プレイヤーとルーム数が表示されます。
これで majiXA サーバの起動ができました。
majiXA サーバへの接続
- Game画面内の「Connect to Server」ボタンを押します。
- 続けて「Room Join」ボタンを押します。
- LCS の接続プレイヤー数とルーム数が 1 になったことを確認します。
ここまでで majiXA サーバへの接続とルームへのジョインができました。
次はサーバとの通信を行ってみます。
majiXA サーバとの通信
- Game 画面内の「Response Number」ボタンを押します。
- クライアントからサーバへランダムな数字のリクエストが送られ、そのリクエストをトリガーにサーバがランダムな数字を送信します。
取得した数字が「Get Number XX」という表示で出力されます。
majiXA サーバからの切断
- Game 画面内の「Room Leave」ボタンを押します。
- LSC のルーム数が 0 になったことを確認します。
- 「Disconnect」ボタンを押します。
- LSC の接続プレイヤー数が 0 になったことを確認します。
- Unity の再生を終了します。
おつかれさまでした!
この一連の流れが動作していれば majiXA は正常に動作しています。