Using the Unity3D engine for a high-level network API (HLAPI) seems completely or nothing. For any game objects that are supposed to be used in multi-user mode, (most) behavior should be implemented as NetworkBehaviours, and this requires network components. In addition, Network Manager is required in all scenarios. I would prefer not to duplicate the network versions of all single-user assets, and it seems that the expected practice is that a single-user game will be implemented as a network game based on a host based on a LAN with a single (localhost) client.
My concern is that the HLAPI material, riding a horse on top of absolutely everyone, will lead to significant overhead in single-player mode, which is the main focus of the game. Is this a serious problem?
I examined a couple of mitigation methods, but they create their own problems for ease of maintenance and code complexity:
- Preparatory files required in both modes will be duplicated (violates DRY: changes in one prior should be mirrored in another)
- Dynamically change or replace single-user assets with multi-user or vice versa (complex and potentially error-prone)
What are the best mitigation methods? Or are they even needed?
source
share