I’m trying to understand Roblox’s server allocation logic and I have a few questions:
Roblox will allocate a new server to run the same game when the first server reaches its limits, right? Which are these limits? The number of players (is there a fixed number)? CPU consumption? Anything else?
If I need to shut down the server for a major update on my game and the game is running on 10 servers simultaneously, will Roblox shut down all the 10 servers automatically?
If in my game, player “A” is on server 1 and player “B” is on server 2, will they be able to interact with each other, as if they are both on the same server? For example, I player “A” (server 1) wants to visit the house of player “B” (server 1)
Where can I learn about this server automated distribution by Roblox?
The game won’t automatically update for people, if you have a system in place using scripts or something like that (idk if that’s possible or how to go about that) then it could shut down on an update automatically. If not, the way most developers go about it is just leaving the servers be, when a new server is created it’ll start up with that update. If your game doesn’t have anything that needs saving, you can just shut down all servers and then all the servers being recreated from users joining back will have the update.
If player A wants to interact with player B on different servers, they can do so based on the systems in-game work and the way it’s scripted. You could ask how you would go about this in Scripting Support. I have seen games, though, where you can interact with things attached to other users in separate servers from them.
Adding a small answer to number one, it probably (just an assumption) has to do with how the server is running, aka performance. If a lot of packets are being sent it won’t put players in the server. I’m sure someone else could add on to this.
To answer your questions, I didn’t quite understand Q4, my bad.
There isn’t a fixed number, Roblox usually creates new servers if a clients server runs bad on the first server, (if connection isn’t great, Roblox automatically creates a newer server for them to join).
Newer servers launched after the update might not receive it yet. Try shutting down all servers again so it can apply.
This is an assumption based on logical methodology / backing and as such can’t be proven to be fully true - this is mainly off of how a sum of other companies work with distribution:
Roblox servers are likely allocated a specific amount of base processing power, and then for every user on top of that the server will be able to use more. It will be granted more processing power if needed, but only in the limits where it is reasonable to do so (the server isn’t busy).
Yes, when you run a game your server has a JobID to make itself distinct and as such it can terminate the servers it knows exist, Roblox will terminate every server on your behalf.
Technically yes, you can use the messaging service to achieve this but it also has its own limitations attached to it. But it wont be like they are in the same server.
You won’t be able to, Roblox engineers are unlikely to confirm or state information about their services both for security reasons and because you don’t actually need to know. You may find more information in the forums but it wont be public information.
For your own ease:
You might want to stop making the assumption that a server has its own server - this is usually done because we call game servers a “server” when in reality its a ‘sub-server’ (I guess you could call it that) in a server box. What we call a server, is different to how the server box works (which is an actual server). You’ll find hundreds of games running on the same server box (as they have the processing power to do this and its cheaper). They basically have server farms which is where your data is sent about - you’ll connect to the nearest server farm and it will route your connection onward to other servers without you knowing (unless your routing to the server center with the information of your server on).
Summing up from what I understood, in practical terms, as a developer, I do not have to worry if my game is running on 1 or 100 servers at the same time? Does this mean that if there are 1000 players playing my game at the same time (which will certainly be distributed on several simultaneous servers), within my script I don’t have to worry about that? I mean, if these 1000 players decide to visit my home at the same time, it will be possible, even they are allocated inside different servers, is that correct?