One thing practically all major game titles do in an update is they shutdown servers and put it into “maintenance” state where only admins and developers can access and freely test for issues as if it were live.
Whenever we make updates on Roblox to large active front page games, it is a huge gamble to shutdown all servers and hope nothing breaks on the live servers that didn’t show up on studio.
Yet, our only way to take populated games out from public is to make it “inactive”, which completely impractical as it kills VIP server subscriptions and locks developers out from being able to play it live as well. This clearly has no benefits to us for the purpose of a temporary maintenance.
There were many times game developers could have avoided multiple successive shutdowns after major updates on active games because we don’t have a reliable way to isolate our game servers for a short period of time to test in a live environment state.
Here I propose that Roblox should add website options that allows you to set maintenance times, which will be announced across all your servers beforehand similar to shutdown messages and automatically handle shutting down for you at the specified times.
On the game page while in maintenance, it would inform players when maintenance ends and automatically reopen the servers once that happens. This assumed we have long finished with our testing and are free to wait for the maintenance end time to take effect.
Of course during maintenance, developers should have the freedom to extend the time if necessary with reasonable limits to how long it can go on.
The two main ideas this attempts to solve:
First is preventing the cancellation of VIP servers for making games inactive.
Second is allowing developers to play an active front page game in a true live state in an isolated time frame and environment for debugging and quality checking before pushing a major update.
Isn’t the problem you’re suggesting a solution for solvable by simply pushing your game up to a completely separate game slot meant solely for testing?
The only difference is datastore contents, and you shouldn’t be doing testing on your production datastore anyway.
You can just test on another place, no reason to test on the main game. This isn’t Fortnite where they have their own servers to work on, Roblox does all the server maintence for us.
Yes and no. Most games have a public test environment and we do too, but it doesn’t replace maintenance.
The fact that data store contents are different in the live servers means we have even more reason to be careful with new updates that may change them with a maintenance period.
We also have parameters that are enabled on test place and disabled on production and vice versa. There are noticeable differences between the two and for a variety of strong development reasons.
It sounds simple enough in theory to rely purely on a separate test place to handle every debugging and test, but in practice, there’s far more variables at play that there’s no reason not to be extra careful.
I’m not sure what they had planned for DataStores, but at the very least, the game and all its settings, LinkedSources, gamepasses, etc would be the same.
Sounds like your use case could also be solved if you could release your update to a subset of players on specific servers like a percentage rollout. From there you would be able to join those servers directly.