Unity を利用して比較的簡単に誰でもリアルタイム通信アプリを作ることが可能なオープンソースパッケージです。
なにがいいの?
リアルタイム通信といえば Photon など有名なサービスがいくつかあります。
しかしながら無料で利用するには制限があったり、その制限を超えてしまうと超過分は課金されてしまったりするため、想定外のバズり方をしてしまうと目をそむけたくなるような金額を請求されてしまうケースも実際にあったりします。
その点、majiXA は Unity において簡単にリアルタイム通信が実現できるだけでなく、完全なオープンソースのためパッケージの利用においては一切お金がかかることがありません。
開発したアプリを実際にアプリストアへ公開して運用するにはリアルタイム通信用のレンタルサーバやクラウドを別途契約してセットアップを行うことが必要にはなりますが、アプリのダウンロード数が増え通信量が増えたとしても従量課金があるわけではないので毎月固定のサーバ料だけで運用することができます。
(AWS のように通信量で従量課金が発生するサーバもありますが、リアルタイム通信で扱う通信量は軽量なため従量課金が発生することは稀です。)
このような理由から開発から運用まで低コストでリアルタイム通信アプリを作成できる点が majiXA の良い点と言えます。
クライアントとサーバを同時に開発可能
さらに majiXA の最大の特徴として、クライアントの処理とサーバ側の処理を Unity 上で同時に、ワンソースで開発することができます。
ソーシャルゲームでよくある開発構成ですと、クライアントを Unity で開発し、サーバ側を PHP で開発したりします。そうなるとデータの受け渡しを行う場合にサーバ側では PHP のクラスが定義され、クライアント側では C# でクラスが定義されていたりします。
データの項目が増えたりした場合はクライアントとサーバの両方のソースを修正する必要があり、メンテナンス性が大きく低下しバグを引き起こしやすくなります。
クラス定義を例に挙げて説明しましたが、そのほかにもクライアントとサーバで同じような処理を書かなくてはいけなくなるケースは多いはずです。
majiXA ではすべての処理を Unity 上で記述するため、クラス定義に限らずあらゆる処理をクライアントとサーバで共有して利用することが可能になります。
開発時にはサーバ不要
majiXA では開発段階の開発費や手間を削減するため、プラクティスサーバを用意しています。プラクティスサーバを介して通信を行うことでパッケージの導入するだけで即時にリアルタイム通信を実装することが可能になります。
(※リレータイプのサーバ処理に限ります)
このサーバは majiXA の利用者が共有して使用する共有サーバにはなりますが、アプリ単位でユニークなキーを指定して通信を行うため通信内容が混在してしまったりすることはありません。