If you’ve ever wanted to say, lower the maximum distance that things will render at, you’re forced to also take a hit to the quality of other graphics:
Ambient Occlusion will only ever show up at level 10
The entire world is forced to render at level 10
Neon becomes a weird glitchy effect at level 5
Shadows get completely nuked below level 5
Water becomes opaque soup below level 8
Glass quality gets decimated below level 8
(etc etc…)
I’ve been getting in a fight with one of the programmers I work with because we can’t seem to agree on using Optimistic streaming over LowMemory streaming. The former causes a lot of lag on the server, while the latter causes a lot of lag on the client from having to load so much of the world in. This can be moderated by lowering the graphics quality on the client, but at the cost of making certain graphics look like garbage just to get the render distance controlled.
I’m really tired of Roblox dragging their heels on addressing this. It doesn’t matter if there are younger kids playing Roblox, because other big games that are played by kids, like Minecraft and Fortnite, offer standard advanced graphics controls:
It doesn’t have to be anything too fancy, but anything is better than a single graphics quality gauge. It’s frankly embarrassing Roblox hasn’t offered more discrete options for their graphics at this point.
Please for the love of god, respect the community and give users the control over this they deserve.
More discrete options, as well apis for developers to adjust the game, depending on the individual setting of these options. It would allow players to get, and developers to give so much more out of a game to make sure the player gets the most optimal experience.
Some games include specific graphic features as mechanics for the overal function of the game. Which may require the player to have high settings to be playing at all.
If it was more split, players could keep the neccessary graphic settings high and put others low, to both play the game as designed and have playable performance. This again also gives the developer more options to adjust the game to satisfy the player’s settings as well the playability of the game.
The fact that Automatic rendering is allowing the game to run at a reduced framerate… and devs are reducing streaming quality to forcibly impose a MaxRenderDistance… is just so wrong.
StreamingEnabled is never going to be used properly this way.
I completely support and agree with this idea. Would be better to have more customization and preference options in graphics. Would also be amazing if, in case Roblox decides to do something like this, they also remove the FPS cap. We shouldn’t need a 3rd party community tool to uncap the frame rate. There’s a lot of potential on a future graphics and display update for the client, allowing us what to disable or set particles to a minimal option, increasing the shadow quality, render distance, max FPS, enabling/disabling blur, a “safe-zone size” for UI shown on your screen, and many more. Looking forward to this feature, hopefully any of the Roblox engineers will see it and take in consideration some more features to add to the graphics and display options.
To clarify, Automatic rendering isn’t an issue, it works fine. The problem in our circumstance is that my coworker thinks we should use LowMemory mode and force the entire world to stream in because he feels like the server’s responsiveness is more important than the client’s performance. I disagree… vehemently, and we’re currently disputing the costs and tradeoffs of our approaches. I think users would be more tolerant of network lag and gun feedback issues when the server is under load, if it means they can play the game at a playable framerate.
ULTIMATELY, the focus of the topic post is that users are forced to lose graphics quality on elements that may not pertain to what they’re trying to visually optimize. Some people trying to balance their specs may prefer a high render distance with lower graphical fidelity, while others may prefer a low render distance with high graphical fidelity. It’s all currently merged together into one gauge, and that sucks.
Massive ++ to this. GPUs vary in capabilities by a wild margin. Someone’s machine may be able to handle a higher polycount but not lots of fancy postprocessing for example. It makes no sense to trap them with a claustrophobic render distance just to get a decent framerate.
100% Agree, Personally i think roblox should just give us full control over the client rendering properties along with letting us set up our own custom properties. It is probably a bit of a stretch but to be honest i think it would be an amazing thing to implement on roblox. I know there might be the spooky “but what if the developer sets a player’s game quality settings to like ultra while said player has a crappy system?” I mean, nothing significant is gonna happen from that, other than said developer losing a player for no reason. I don’t think limiting the engine just because of “x and y” could theoretically happen is a great idea.
Major support. Another thing is that devs should have some control too. Big example is future lighting. A lot of horror games would look amazing with it, but can’t, as lower graphics switch to shadowmap, which is much brighter and often ruins atmosphere.
Example is ZacAttack’s Vampire hunters 3. The main reasons it can’t use fib v3 include: The auto reflection maps, lower graphics switching to shadowmap which makes the maps brighter, and more. This is an unacceptable limitation.
Along with this, allowing developers to get the exact value of each graphical option rather then the haphazard solution we have now where you can only view the graphical setting if its not Automatic.
This would allow developers to enable/disable their own built in scripts/visuals ontop of the ones Roblox is enabling/disabling.
I agree, and I also wish there was a way to configure and save graphics settings per-game. Some games may use simple boxes while others may use complex meshes with surfaceappearance textures. I find a lot of users will (justifiably) complain about ‘lag’ but very rarely do they opt to turn down their graphics settings, probably because they’d have to turn them back up again when visiting another game and it becomes annoying having to switch back-and-forth. Having a wider variety of graphics settings and per-game settings is important, especially as Roblox continues to push for higher fidelity graphics where games on the platform all have different platform targets.
But why is the client’s performance degraded on LowMemory? It feels like this shouldn’t be the case, and then you could have the best of both worlds.
Switching to “Opportunistic” for us will make less of the world stream in, which imposes a pseudo-max-render-distance, which is what improves client performance. But this is basically a hack, and especially bad in a driving game where players can move between regions quickly.
The problem is we see constant degraded performance for minutes after they’ve downloaded the full map, which implies it’s the render setting that are causing clients to lag when they have more of the map downloaded - rather than the act of downloading the map (shouldn’t this take a few seconds on most connections / maps?)
Curious what your take on this is ^ because we’re currently fighting these problems as well
To address the comments about streaming distance (and not more customizable detail settings), I figured most that are using the streaming settings have already setup a system where each player can choose how much distance is streaming already? It’s not built into the game engine directly, but it doesn’t take very long to create your own “per player” streaming distance settings that are controlled by the server and the player just chooses the distance they want to see. Is this another “community resource” I need to publish?
But “loading in parts” and “rendering parts” should be two separate pipelines that don’t affect eachother.
The GPU does not need to render all of the downloaded parts that are in RAM. Automatic rendering should reduce your quality until your framerate is stable, but unfortunately it seems like users need to manually set it to 2-7 to get stable frames.
I still want them to give us advanced graphics options, but expecting every user to go tweak these per-game isn’t going to solve this issue of Automatic trying to render too many parts and tanking frames.
I’d love to see something like this implemented to help support lower-end devices and even give people some personalization as I do not see why I need to have my render distance at 100,000 just for some ambient occlusion.
I would also love to see developers being able to force certain graphics for their games. Games such as Thieves In The House cannot have ambient occlusion and must rely on a message telling users to lower their graphics.