Unity3D エンジンの高レベル ネットワーク API (HLAPI) を使用することは、全か無かのアプローチのようです。マルチプレイヤーでの使用が予想されるゲーム オブジェクトでは、(ほとんどの) 動作を として実装する必要がありNetworkBehaviour
、ネットワーク コンポーネントが必要です。さらに、すべてのシーンで Network Manager が必要です。すべてのシングルプレイヤー アセットのネットワーク対応バージョンを複製することは避けたいと思います。シングル プレイヤー ゲームは、単一の (localhost) のみを使用して LAN ホストベースのネットワーク ゲームとして実現されることが予想されるようです。クライアント。
私の懸念は、絶対にすべての上に乗っている HLAPI が、ゲームの主な焦点であるシングルプレイヤー モードでかなりのオーバーヘッドをもたらすことです。これは正当な懸念事項ですか?
私はいくつかの緩和手法を検討しましたが、保守性とコードの複雑さに関して独自の問題を引き起こします。
- 両方のモードで必要なプレハブが複製されます (DRY に違反: 1 つのプレハブへの変更は、手動で別のプレハブにミラーリングする必要があります)。
- シングルプレイヤー アセットをマルチプレイヤー アセットに動的に変更または置換する、またはその逆 (複雑でエラーが発生しやすい)
より良い緩和技術は何ですか? それとも必要ですか?