Unityが渡すのはゲームプレイの積み木であり、完成したマルチプレイヤーアーキテクチャではありません。チームはRPCとシーンオブジェクトから始め、やがてエッジケースにぶつかります。ホスト移行、インタレスト管理、シリアライズコスト、負荷下でのデシンクのデバッグです。
Mirrorが実際に中心に置くもの
Mirror Networkingは、それらの問題を中心に据えた、Unity向けのオープンな高レベルネットワークスタックです。一貫したサーバー権威モデル、オブジェクトのスポーンと同期のための馴染みあるAPI、本番ゲームで鍛えられたコミュニティエコシステムを提供します。
権威、オブジェクトの寿命、帯域は、いまも設計の問いです。Mirrorはそれを消しません。エディタでしか動かない場当たりRPCの山ではなく、答える場所を一つにします。
本になった理由
だからBuilding Multiplayer Games in Unity: Using Mirror Networking(Springer Nature / Apress、2022)は、ブログ記事ではなく一冊の本として存在します。Mirrorは「もう一つのプラグイン」ではありません。権威、寿命、帯域、障害モードを扱う、ネットワークゲームを設計するためのレンズです。引用ページはBuilding Multiplayer Games in Unity: Using Mirror Networkingです。
ML-Agentsと同じ型
ML-Agentsとマルチプレイヤーは領域が違いますが、型は同じです。Unityチームには、システムの制約を尊重する枠組みが必要です。Mirrorはネットワーク層を扱います。Introduction to Unity ML-Agents(2023)は、シミュレーション内で知的エージェントを訓練することを扱います。どちらも、単発のスクリプトではなく、ネットワークティックと訓練エピソードというループで考えることを求めます。
Mirrorが実務的デフォルトになるとき
ゲームがクライアント間でリアルタイム状態を共有するなら、早くネットワーキングアーキテクチャに投資してください。オープンソース、継続的な保守、出荷タイトルにそのまま使えるパターンが欲しいUnityチームにとって、Mirrorは実務的なデフォルトです。
クライアントが嘘をついたり切断したりしたときの権威が、まだ分からないなら、マルチプレイヤーゲームではありません。デシンクを待っているデモです。