State of the Networking:
My vps hosted master server still crashes every couple days, but Zumwalt is has reported that he should soon have an autorestart system for it ready to go.
I now have Unity powered dedicated servers beautifully integrated into my game - complete with fully automated connection initialization and load balancing. Unfortunately, although implementing dedicated servers has greatly increased the reliability of connecting to servers and and the average speed of packet transfers in my game, these advantages have been more than counterbalanced by a dramatic increase of the bug where NetworkViews refuse to serialize.
I can state with certainty that the bug always occurs between a non authoritative server and certain random connected clients (the packets always reach the server from the authoritative client instance correctly). This bug only affects NetworkView serialization - not RPCs, which always get transmitted correctly. This bug is also asymmetrical: The player who joined the server earlier generally can’t receive serialized views from players who joined later, but the latter players can almost always receive views reliably from the players that were in the server when they joined. If the earlier player exits and rejoins the server, the issue is reversed. And finally, the bug is highly selective: just because your client isn’t receiving the NetworkView packets from a given player doesn’t mean that other clients aren’t. From my experience, half or so of the players in each game can receive updates from everyone (even players who joined after them), and the other half only receive updates from players that were in the server before they joined it.
I have created a custom, super simple test project that demonstrates this bug - and sent it to Larus several weeks ago. I really don’t know where to go from here, and am starting to get pretty discouraged.
From my point of view, Unity is committing false advertising when they talk about how great their networking is. I have never seen a serious, physics enabled multiplayer fps type game that used Unity’s networking and that worked reliably. I feel like I have been some kind of test subject in a dreadful experiment - where a company releases a flawed product, claims it works great, and then provides no support when someone invests years of their life developing something with it only to find that the fundamental systems they were counting on don’t function as advertised.
Unity: Please prove me wrong!
-Aubrey