Will there be a way to make old servers stale?
As in existing players in old servers do not get kicked,
but there is no way for more players to join said servers?
It would help reduce frustration with players doing an activity - say currently in a match or a boss fight - getting interrupted, but the issue I see is integration with other features like the Follow/Join system, as in how it would work if you tried to join a friend in a “stale” server.
If not this, then perhaps a “schedule” system for the new Restart servers feature that actively displays a countdown until the servers get migrated, of which we can customise and schedule for a time we see fit?
Upload that module as a model. Use a script in all 20 places that inserts this model on run time. This way the only thing you need to update is the model which effectively also automatically updates all your 20 places.
The worst case scenario here is having to update the injector script whenever necessary, but usually this will never be required once it has been property set up.
Good news that someone is looking actively at these problems.
In our game we use a custom soft shutdown system. We don’t want to kick players while they are playing, but we want to do it immediately after. Right now we open private servers and send players there when they finish a game. The problem is that the old servers stay up until all of the players have finished their game (max 5-10 mins). New players can still join these, but are insta teleported which results in worse UX.
What we need is a method to stop considering old versions for matchmaking but without the shutdown feature. This would allow us to send players to new public servers instead of private ones. It would also stop the old servers from being populated while we are soft-shutting them down.
You are mostly correct. We don’t want “shutdown all servers” to disappear since it’s incredibly helpful and it would be difficult to release an update if we had to shut down each server individually.
In addition, I believe that when a game is made private, all players get kicked from the game.
Could we have an updating method where it doesn’t kick anyone, but instead locks outdated servers?
With this, joining players would only join new and updated servers, where as the old server can continue until every player has eventually left. This works especially great in experiences that use multiple places.
Alternatively, could we get API that allows us to lock a server with a script and prevent joining? I would actually like this API regardless of the previous question.
This can technically be implemented with MessagingService APIs. You would need to have every server listen to an update message. When you update the game, just send the update message to all servers. When a server relieves the message, you can then just connect an event to auto-kick any new players attempting to join.