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は実務的なデフォルトです。

クライアントが嘘をついたり切断したりしたときの権威が、まだ分からないなら、マルチプレイヤーゲームではありません。デシンクを待っているデモです。