Great improvement to user experience, a few questions…
How long do prewarmed servers exist before shutting down in the case that no players join?
Do prewarmed servers run server sided game code immediately on start-up? If this is the case, should we be careful for loading game sequences that might require or yield for a player to exist in the game? I don’t see there being many scenarios where this is the case, but better to be safe than sorry.
Currently, up to 5 min (disclaimer: subject to change without notice)
No, we don’t run any of the experience’s code until the first user is about to join to guarantee backwards compatibility. cc @InCrIpTiOnYT who asked a similar question
This is an awesome change, especially for experiences with 1 player servers! Great to see.
One question; does this mean we can no longer trust that joining a ‘new’ server (being the first player in it) will ensure you’re on the latest version of the game (assuming you joined within 5 minutes of a new update being published)? Also, I’m assuming the “Shut Down All Servers” button we use in the case of an update would also shut down these prewarmed servers?
Joining a “new” server is always guaranteed to be the latest published version. If we detect a prewarmed server running an old version we’ll shut it down instead of using it.
“Shut Down All Servers” ignores prewarmed servers. It’s not necessary to shut them down due to the condition above. (Side note - “Shut Down All Servers” is being consolidated with “Migrate to Latest Update.” More info here - Improvements to Updating Experiences)
Hi
Does this change anything for server startup speed when using ‘shutdown all’?
Especially when using a method like this: SoftShutdown2 — Shutdown all servers with peace of mind!
That teleports users to a new server on shutdown.
And please decrease the limit in the future. I imagine only about the top 200 or so experiences have a new server start each minute. (Or experiences with low playercounts!)
Great feature. Now, all we need is a way for players to join newly published servers instead of old servers when we publish! (and optionally press a button to execute this)
This release doesn’t change anything in regards to “Shutdown All”
As for the threshold - we have to be careful not to start too many prewarmed servers since they use our datacenter resources. We’re monitoring the impact and will tune it as needed
However, I do wonder how this will behave with servers that end up bricking one way or another. Does this mean players will be stuck leaving and rejoining the prewarmed server, even if new players join the game? Usually, the trick to shut down a “broken” server is to have everyone leave, will prewarming affect this in any way? (That is, assuming the server stays ‘open’ in the background).
I do have to make a comment about the example video, it shows you joining a server that already had players in it, so pre-warming would not apply or were you showing a example of a bunch of players all trying to join the same server at the same time?
@Sayersooth No plans for that. We don’t let any scripts run until the first player is about to join, so there’s no “prewarming complete” event to hook into. From a scripts perspective it should just look like a normal server start
@BrannanZ At a high level - prewarming works by looking at the rate of game starts across all experiences and all data center regions and maintaining a pool of prewarmed servers based on that data. We’re constantly guessing what are the next servers that users are going to try to start! Maybe we’ll make a blog post on it someday
@knightmb1 In both cases I used some admin settings to force a new server, once with prewarming and once without. Blox Fruits is just a popular game so other people joined before my player list even started rendering!