I’m working on a multiplayer third-person controller using PlayCanvas for the client and Photon Realtime for networking.
Each player controls their own character, and movement data is sent through Photon events to update positions across clients.
Everything works correctly when there are only 2 players in the room — movement and updates are fully synchronized between both players.
However, when a third player joins, the synchronization breaks in a strange way:
-
When the first joined player moves, the second and third players don’t see the movement.
-
When the second player moves, the first player doesn’t see it, but the third player does.
-
When the third player moves, the movement is visible to both the first and second players.
It seems like a desync starts happening once more than 2 players are connected.
I suspect it could be related to actor numbers, entity mapping, or the way I’m handling onEvent() callbacks for syncing player positions.
Here’s the test project link for reference:
PlayCanvas 3D HTML5 Game Engine
If anyone has ideas or has faced a similar issue, I’d really appreciate your input! Thank you!