Multiple rooms issue with proximity list
Posted: 26 Jan 2020, 23:43
Hello there,
Overview
-------------------------------
our gameplay is divided into two separate rooms:
1. world room (mmo-room where players walk around)
2. battle room (regular room being spawned whenever two players battle against each other)
The world room uses the proximity list to spawn and remove player entities automatically; when a battle starts, the player stays in the MMO room but also joins the battle room.
-------------------------------
Problem
All goes according to plan except, when one of the players disconnect during the battle while being in the proximity list of each other.
What happens is that the remaining player returns (from a visual POV only) to the world view but the disconnecting player remains apparently in his proximity.
The remaining player receives two OnUserExitRoom events, one for himself and one for the disconnected player. However, the proximity list does not contain the disconnecting player. In fact, the proximity list gets triggered on the client, but with an empty list -> the removedUsers are empty
So my question is, is that the expected/by-design behavior?
I can see a client-side "hack" being to remove the user from the whole game manually when a disconnect happens (our server happens to send the reason why a battle is over (forfeit, disconnect, won/etc) already - however that seems strange in my opinion.
Overview
-------------------------------
our gameplay is divided into two separate rooms:
1. world room (mmo-room where players walk around)
2. battle room (regular room being spawned whenever two players battle against each other)
The world room uses the proximity list to spawn and remove player entities automatically; when a battle starts, the player stays in the MMO room but also joins the battle room.
-------------------------------
Problem
All goes according to plan except, when one of the players disconnect during the battle while being in the proximity list of each other.
What happens is that the remaining player returns (from a visual POV only) to the world view but the disconnecting player remains apparently in his proximity.
The remaining player receives two OnUserExitRoom events, one for himself and one for the disconnected player. However, the proximity list does not contain the disconnecting player. In fact, the proximity list gets triggered on the client, but with an empty list -> the removedUsers are empty
So my question is, is that the expected/by-design behavior?
I can see a client-side "hack" being to remove the user from the whole game manually when a disconnect happens (our server happens to send the reason why a battle is over (forfeit, disconnect, won/etc) already - however that seems strange in my opinion.