スーパーマリオラン出ましたね。 「メニュー」→「せってい」→「このアプリについて」の中にある「権利表記」の内容から使われている技術を確認していきたいと思います。
UniRx
UniRxはReactive ExtensionsをUnityで使えるように再実装されたライブラリです。仕事でUnityを使う時にはいつもお世話になっています。 UniRx作者本人のブログ記事が一番詳しいと思うので、時系列で紹介します。
2014/08/23
neue cc - A Beginners Guide to Reactive Extensions with UniRx
2014/09/08
neue cc - Immutable CollectionsとSubject(Rx)の高速化について
2014/12/18
neue cc - Unityのコルーチンの分解、或いはUniRxのMainThreadDispatcherについて
2015/04/13
neue cc - UniRx 4.8 - 軽量イベントフックとuGUI連携によるデータバインディング
2015/05/11
neue cc - UniRxでの空呼び出し検出、或いはRoslynによるCode Aware Libraries時代の到来について
2015/06/20
neue cc - 第一回UniRx勉強会を開催しました+スライドまとめ
2015/10/23
neue cc - 同期(風)コードと対比させたUnity+UniRxで非同期を扱う場合のパターン集
2015/12/21
neue cc - UniRx 5.0 - 完全書き直しによるパフォーマンス向上とヒューマンリーダブルなスタックトレース生成
2016/01/06
neue cc - Unityでのボクシングの殺し方、或いはラムダ式における見えないnewの見極め方
2016/05/14
neue cc - Unityにおけるコルーチンの省メモリと高速化について、或いはUniRx 5.3.0でのその反映
2016/08/03
neue cc - UniRx 5.4.0 - Unity 5.4対応とまだまだ最適化
2016/10/05
neue cc - UnityのMonoアップグレードによるasync/awaitを更にUniRxで対応させる
FlatBuffers
FlatBuffersについてはDocumentationのOverviewをGoogle翻訳すると下記の通りです。
FlatBuffersは、C ++、C#、C、Go、Java、JavaScript、PHP、およびPython用の効率的なクロスプラットフォームシリアライズライブラリです。 もともとは、ゲーム開発やその他のパフォーマンス重視のアプリケーション向けにGoogleで作成されたものです。
FlatBuffersはデシリアライズのパフォーマンスに特化したシリアライザで、なぜ高速にデシリアライズできるのかというと、定義されたスキーマに則ってシリアライズしたバイト配列をオブジェクトへのアクセス時にそのまま利用する実装になっているからです。
UniRx作者がFlatBuffersにインスパイアされてZeroFormatterというシリアライザを作成公開しています。
ZeroFormatterもデシリアライズのパフォーマンスに特化したシリアライザで、シリアライズしたバイト配列をオブジェクトへのアクセス時にそのまま利用するところはFlatBuffersと同様ですが、C#のクラス定義をそのままスキーマ定義として利用できるようになっています。 なので例えばC#(UnityやUWP等)で作成したゲーム内でクライアントが頻繁に通信をする場合などにFlatBuffersよりも楽に使えます。
ちなみにC#で使えるシリアライザのパフォーマンス比較結果がZeroFormatterリポジトリのREADMEにあります。
https://github.com/neuecc/ZeroFormatter#performance
OpenSSL
OpenSSLはTLSおよびSSLプロトコル用のライブラリです。Facebook SDK for Unityが依存しているので入っているのではないでしょうか。
iOS Native Code Samples
iOS Native Code SamplesはUnity開発元のUnity Technologies社が公開しているサンプルコードです。
MiniJson
MiniJsonはJSONシリアライザです。勝手な予想ですが、FlatBuffersは対戦などリアルタイム通信系のシリアライズ・デシリアライズが頻繁に行われる箇所に、JSONはAPIとのHTTPS通信等たまにシリアライズ・デシリアライズが行われる箇所に使用されていたりするのではないでしょうか?
Facebook SDK for Unity
Facebook SDK for UnityはFacebookログイン、Facebookへのシェア、Facebookの友人とデータ共有(ランキングとか)などをUnityで開発するアプリで利用するためのライブラリです。
adjust SDK for Unity
adjust SDK for Unityは、売上、セッション数、インストール数などのKPIを収集して可視化したり、広告の効果測定を行うためのadjustというサービスを利用するためのライブラリです。
Firebase-Unity
Firebase-Unityは、Push通知、クライアント・サーバー間やクライアント同士のデータ同期、分析、テスト、クラッシュレポート等のモバイルアプリの開発・運用で必要になる技術をサービスとして提供するFirebaseというmBaaSを利用するためのライブラリです。
総括
FlatBuffersを使っていてパフォーマンスを強く意識している感じがします。Firebaseを使っていてサーバー側はマネージドなサービスで運用できている感じもしますね。ゲームあるところにObserverパターンありといった感じで、一度独自Observerパターンの代わりにUniRxを使ったらもう戻れないぐらい便利なので、UniRxは多くのUnity開発者にとって手放せないライブラリになってきているのではないでしょうか。現場からは以上です。