It would be swell if after uploading a new version of a game, Roblox would cease adding new players to existing servers and instead create new servers for new players, thus allowing a server running an older version of the game to more rapidly die without necessarily kicking everyone out of the game by shutting down all servers.
I fix a bug in Lava Tumble
I upload that fix to Roblox
From this point, Roblox places all new players into a server running the newest version of Lava Tumble
Servers running previous version of Lava Tumble are left to die out as players leave servers. Thus, servers running older versions die off more quickly.
Ideally, updates to the game description (which change the Updated timestamp on the game page) and other changes unrelated to the actual source would not do this.
I see that a similar request was once made over two years ago, but this still isn’t a thing. Hopefully the state of Roblox is such that this popular idea is more readily addressed today than back then.
As good as it sounds, it has drawbacks to player experience when they are being left in collapsing servers.
This problem is best solved by keeping everything as is by default (cause many updates can be minor and don’t require refreshing at all) while allowing the developer to refresh all sessions from the site and automatically inform players that they are being “teleported” to the new version of the game.
The place isn’t going to update that often. When it does happen the amount of players will decrease in the server, and some people will feel lonely and leave. I think your implementation is better, but a bit trickier. I’m happy if we get either (and it’s optional).
As long as its optional. I think we need a real shutdown() function. Using datastore and a simple StringValue/NumberValue to keep track of versions you can have more control over your servers. For example, sometimes I dont want older versions to die out artificially at all(minor updates). Sometimes I want that version to die now(maybe there’s a serious currency exploit). On some updates, I want it to shutdown only if the round ended/barely started. I think that’d be more useful than force deprecating servers based on version.
I want Roblox to implement some kind of server update protocol, where roblox tells the server that it wants to be updated, and then the server has to tell it when its allowed to update.
When its allowed to update, it will handle all of the game.OnClose protocol stuff, and then it’ll teleport the players to a new server.
Technically this could be implemented with a custom server distribution system, and ReserveServer
while true do
startGame()
game.UpdateReady = false
repeat wait() until GameOver;
GameOver()
game.UpdateReady = true
end
Every [insert interval] seconds, the server checks with ROBLOX to see if there’s a newer version of the place. If there is, and UpdateReady is true, each player sees a default “Updating game…” message while a new server is created. Then everyone in that existing server is teleported to the new updated server, with the same functionality as Teleport(). like nothing happened.
Probably asking for too much but I think it would be extremely beneficial to everyone; the players, developers, and ROBLOX themselves. Also it would be a massive step in the right direction towards being a ‘real’ game development platform.
It should definitely not be an automatic thing. I tend to periodically make small updates/modifications that I wouldn’t want to kill off all my servers for, like Alkan said. There should be a manual switch to trigger this kind of behavior.