I just checked several of my games Server Frame Rate on the Roblox Creator Hub, and all of them had Server Frame Rate drop around 10pm UTC February 21st, 2024 with no game update.
Avatar Outfit Creator:
Blob Eating Simulator:
I just checked several of my games Server Frame Rate on the Roblox Creator Hub, and all of them had Server Frame Rate drop around 10pm UTC February 21st, 2024 with no game update.
Avatar Outfit Creator:
Blob Eating Simulator:
Hi @Evanbear1, thanks for flagging this. At Roblox, we work hard to provide our developers with the most opportunities we can offer. Currently, we are investigating options to better utilize our hosting capabilities. One of the avenues is to reduce RCC frame rate. Right now, we are conducting an experiment to collect the data to support or disprove our hypotheses here.
Our ideas are built upon the fact that many industry-leading online games are running their dedicated server at frequencies of 10 to 30. That makes us curious if we’re wasting resources running at 60. As always, before shipping anything to our devs, we first collect detailed observations and make a thorough analysis.
The experiment covers 15% of the RCCs. It is scheduled to run until Feb 27th. We will be grateful if you share any observed phenomena you notice related to the experiment. If we find out that the experiment causes significant harm to the current audience, we’ll shut it down early.
Thanks for letting us know what was going wrong. Noticed Drive World’s server FPS significantly drop, was concerned something in our live servers had exploded. Spent a good amount of time today attempting to get to the bottom of what’s going on, only to find nothing.
If more tests are going to be done regarding this, it is important to notify developers ahead of time that it will affect their experiences.
Which other games are running at a frequency of 10? If you’re writing a server for a hyper-specific experience then of course it can be optimized for your specific use case. Much easier to prevent exploits too.
But roblox is a game engine designed for a broad array of use cases, so this is comparing apples to oranges.
We’re already seeing issues in our game because too many mobs spawning at once will throttle the physics on the server. We can’t trust the client because they will exploit the physics.
Servers don’t scale with playercount, so this is incentivizing us to use smaller servers due to the reduced compute power.
Example of an enemy struggling to move:
Would this change impact a server’s ability to handle physics for better/worse?
I’ve noticed that on my server, somehow task.wait was affected by this change, wasn’t it supposed to be more reliable? does the server FPS actually affect task.wait or am i doing something wrong? in a loop i use both task.wait with a number, and without a number, does the one that has no number gets affected by this change or does all task.wait uses get affected? like they are no longer able to wait for less than 0.1 seconds if the server is being ran at 10 FPS?
We need a way to opt out. I have experiences that rely heavily on high frequency of replication for physics and player-to-player interactions.
@Usering
I agree that sharing this kind of plan with the developers should be in our routine. We’ll do better next time.
@AbstractAlex
The CPU time quota for an RCC instance is scaled with the player numbers, so it should be okay to make bigger servers. Still, your calculations may choke on a single thread depending on the code architecture.
I could take a look at what happens on your experience servers if you give me a place id.
@i8cheese
task.wait without args does not provide guarantees of time spent except it will take no more time than task.wait with any argument value specified. task.wait with an argument will wait that time reliably within server time discretion. So, yes, at 10 FPS (which we are not considering) it would not be possible to wait less than 0.1s.
Having tests done by Roblox be opt-in, with a sub-category in announcements for that here on the forum, would be great. That said, the forum is limited in numbers. With an opt-in system, no matter where the people are found, the amount participating in those tests would be far less than current.
Respectfully, can we trust Roblox to communicate about tests in subjects like in the OP, discovery, etc.? How might Roblox “do better next time”?
I want the betterment of Roblox overall in the long-term but I wonder if that is negatively impacting people in the short-term. I could be impacted and just not know as an average developer. Maybe I’m making this more of a concern than it needs to be.
Our issues stem purely from “StepContacts”, because we run enemies on the server. We only have a capsule collider for them and have turned off “CanTouch” for every part in the entire game because we don’t use touched events.
Whether we have 2 players, or 30, servers still seem to begin throttling after ~50 mobs.
(Checked using workspace:GetPhysicsThrottling
)
The specific placeid is: 14819490378
(Note: this is a subplace of a universe, the start place is the main menu)
If I wanted to test how things would behave on the different frequencies, would a server script that hangs the server until certain frames (like a frame limiter) provide the same results? or does it behaves different?
I appreciate the effort put in to better the platform. I don’t currently have a way to measure the impact this has on my game. A method to opt-in or otherwise reliably test large changes such as this would be very useful. Similarly, once the impact is determined, an option to opt-out might be necessary as some have requested already.
That’s a great idea, thank you for proposing it. We don’t have a public setting for that yet. If we decide to go in that direction, we’ll provide the developers with the relevant tooling.
task.wait() depends on the FPS
So after pages of people asking for improved servers, with some even willing to pay for better servers, Roblox decides to make servers worse without even informing anyone until someone submits a bug report. What a joke, an insult even
In my communities specifically this change is not a welcome one. I’ve been getting bug reports constantly about slow connection speed and slow server handled items like killstreaks and vehicles for the last few hours.
Many things like handling remote events and moving objects server-side rely on the best speed possible, and in a competitive game like ours 30 FPS isn’t near quick enough.
Hello. I am in complete disbelief. By reducing the server framerate to 30 or 10, this completely defeats any genre of games that need quick server reaction time, fast refresh rates and games that are based on accurate calculations. All FPS and military genre games, for example, need to have their server refresh rate at 60 fps exactly to run properly and avoid double bullets, or for accurate hit detection sanity check in due time.
Battlefield 4, for example, had the ability to have server running at up to 120hz. Having server run at 30 or even 10 is completely unacceptable for any games whatsoever apart from maybe RP games. How exactly are we meant to make Roblox the next hit platform with professional games when new limitations are thrown at us ?
Please, do not go through with this.
if something like this is considered, I would believe that by default you could have the decreased frequencies but that an option should be available for developers to manually increase it.
This would make games that require fast server validation awful to play.
Fighting games, FPS games, RPG games, and many other types of games need the server fast in order to properly update for players. Imagine a bullet hitting someone in a FPS game and having an extended delay between it hitting them on your client, and the server actually doing something and making them take damage. It would feel awful.
Further more for timed inputs or other fast paced games, some code might break entirely that relies on the servers refresh rate to update in time.
If you’re looking for a way to improve the servers, deliberately limiting them is not a good option.
Maybe have a built in system to detect when a server isn’t using all of its resources, and throttle it back down to 30 with an option to disable server throttling in workspace.
(key point, an option to disable, having the server constantly throttle back and fourth on a game that needs it sounds like hell)
Either or, this change only really has a negative impact on developers, and would make some genres of game start to become harder/impossible to create.
(Also please maybe make an announcement first? It’s a little disheartening knowing game breaking changes can just appear out of the blue sometimes)