Virtual SFS Room
Posted: 20 Mar 2022, 12:12
Hello SFS folks,
I have talked about this before with one of the SFS team, we had an issue before that we got resolved over email, we asked for this feature and they said they will consider it, it's been a while now but I thought I should throw this out again.
the problem was that we had a lobby room that everyone joins when they first connect to the game servers, this made the room generate so much traffic for thousands of users in it and thousands of continuous join/leave event
we temporarily solved the issue by disabling all join/leave event on this room, but SFS still syncs the entire user list when the user joins the lobby room every-time, this information is useless to our use case and we don't need it to be sent at all, someone could say then why do you need a room in the first place?
now here is where the virtual room concept came to be, we have several pieces of game logic that depends on wether the player is in the main lobby or not, so we need nothing more than a list of users!
however, SFS room has everything taken care of already, thread safety for joins and leaves, integration with the already used everywhere api of join/leave requests, seemless integration with User.IsInRoom, and the cherry on the top, auto sync for room variables (which we use)
so all what we need to do is a mechanism to disable sending the users list for players when they join the room, other wise we will have to reinvent the wheel to what SFS already does best.
I have talked about this before with one of the SFS team, we had an issue before that we got resolved over email, we asked for this feature and they said they will consider it, it's been a while now but I thought I should throw this out again.
the problem was that we had a lobby room that everyone joins when they first connect to the game servers, this made the room generate so much traffic for thousands of users in it and thousands of continuous join/leave event
we temporarily solved the issue by disabling all join/leave event on this room, but SFS still syncs the entire user list when the user joins the lobby room every-time, this information is useless to our use case and we don't need it to be sent at all, someone could say then why do you need a room in the first place?
now here is where the virtual room concept came to be, we have several pieces of game logic that depends on wether the player is in the main lobby or not, so we need nothing more than a list of users!
however, SFS room has everything taken care of already, thread safety for joins and leaves, integration with the already used everywhere api of join/leave requests, seemless integration with User.IsInRoom, and the cherry on the top, auto sync for room variables (which we use)
so all what we need to do is a mechanism to disable sending the users list for players when they join the room, other wise we will have to reinvent the wheel to what SFS already does best.