Buggy behaviour when joining a game with a large number of network objects

JoshDBB
JoshDBB
edited December 2021 in Fusion

I have another post here: https://forum.photonengine.com/discussion/19406/exception-invalidoperationexception-not-found-tick-280/p1?new=1

where I explain how I am getting errors when trying to join a host in the 'Hello Fusion' sample project with 450 physics boxes.

In an attempt to work around the errors I tried changing the 'Replication Mode' in the network config to 'Eventual Consistency'. When I do this I experience different issues so I thought I should make a second post about it.

Now (most of the time) when I join the host as a client all of the cubes disappear and the player controlled balls act all buggy and float around or go into the ground. Then sometimes I get an error pop up lots of times. This only happens on the client, the host is fine.

I have also found that the issue only occurs if both the host and the client are on Windows, if either of the host or the client are on OSX then it runs fine for both players (I should mention that the Windows computers and the OSX computers are in different locations with different internet connections).

This is the error (doesn't always show):

AssertException: [Id:12]
Fusion.Assert.AlwaysFail[T] (T error) (at Fusion/Fusion.Common/Assert.cs:107)
Fusion.Simulation+StateReplicatorEventualConsistencyBase.ReadObjectHeader (Fusion.Sockets.NetConnection* connection, Fusion.Sockets.NetBitBuffer* buffer, Fusion.SimulationSnapshot snapshot, System.Int32& bitOffset, System.Boolean& created) (at Fusion/Fusion.Runtime/Simulation/Simulation.StateReplicatorEventualConsistencyBase.cs:226)
Fusion.Simulation+StateReplicatorEventualConsistencyClientServer.RecvPacket (Fusion.Sockets.NetConnection* connection, Fusion.Sockets.NetBitBuffer* buffer) (at Fusion/Fusion.Runtime/Simulation/Simulation.StateReplicatorEventualConsistencyClientServer.cs:90)
Fusion.Simulation+Client.RecvPacket (Fusion.Sockets.NetConnection* connection, Fusion.Sockets.NetBitBuffer* buffer) (at Fusion/Fusion.Runtime/Simulation/Simulation.Client.cs:284)
Fusion.Simulation.Fusion.Sockets.INetPeerGroupCallbacks.OnNotifyData (Fusion.Sockets.NetConnection* connection, Fusion.Sockets.NetBitBuffer* buffer) (at Fusion/Fusion.Runtime/Simulation/Simulation.INetPeerGroupCallbacks.cs:292)
Fusion.Sockets.NetPeerGroup.HandlePacketNotifyData (Fusion.Sockets.NetPeerGroup* g, Fusion.Sockets.INetPeerGroupCallbacks cb, Fusion.Sockets.NetConnection* c, Fusion.Sockets.NetBitBuffer* b) (at Fusion/Fusion.Sockets/NetPeerGroup.cs:769)
Fusion.Sockets.NetPeerGroup.HandlePacket (Fusion.Sockets.NetPeerGroup* g, Fusion.Sockets.INetPeerGroupCallbacks cb, Fusion.Sockets.NetConnection* c, Fusion.Sockets.NetBitBuffer* b) (at Fusion/Fusion.Sockets/NetPeerGroup.cs:617)
Fusion.Sockets.NetPeerGroup.Receive (Fusion.Sockets.NetPeerGroup* g, Fusion.Sockets.INetPeerGroupCallbacks cb) (at Fusion/Fusion.Sockets/NetPeerGroup.cs:564)
Fusion.Sockets.NetPeerGroup.Update (Fusion.Sockets.NetPeerGroup* g, Fusion.Sockets.INetPeerGroupCallbacks cb) (at Fusion/Fusion.Sockets/NetPeerGroup.cs:143)
Fusion.Simulation.NetworkRecv () (at Fusion/Fusion.Runtime/Simulation/Simulation.INetPeerGroupCallbacks.cs:101)
Fusion.Simulation.Update (System.Double dt) (at Fusion/Fusion.Runtime/Simulation/Simulation.cs:1056)
Fusion.NetworkRunner.UpdateInternal (System.Double dt) (at Fusion/Fusion.Runtime/Runner/NetworkRunner.cs:1374)
Fusion.NetworkRunnerUpdater.InvokeUpdate () (at Fusion/Fusion.Runtime/Runner/NetworkRunnerUpdater.cs:75)


Answers

  • Hi @JoshDBB ,


    Do you have a reproduction project showing the behavior that you can send to us?

    This way we can take a better look.

    Also, based on your second post, we ask you to update to the latest SDK version and check again.


    --

    Ramon Melo

    Photon Fusion Team