Some devs also just dont utilize decades old tech to make their game more optimized, for example, some devs opt in to throw in a lot of triangles to make it detailed, but you dont need that much tris, you can use simply use normal maps and bump maps for the highly detailed models, sure its more difficult to do but the performance gain is worth it
Exhibit A:
A is the normal map
B is the highly detailed model, in which has 78642 Tris
C is a lower detailed model, with only 768 tris
D is the lower detailed model with the normal map applied to it
From this example we have saved 77874 Tris from having to be rendered, now of course this may not apply to roblox characters but it definitely would apply to some of the incredibly highly detailed models out there, like guns, props, etc.
We really need said graphics option besides one simple slider, because sometimes one aspect of a game like light quality is impacting game performance HEAVILY, and so a graphics option for that can help with performance, for example, instead of using a shadowmap or voxel or future (or whatever), instead switch it to vertex lighting
My game has a very simple map; it puts mountains far into the distance that aren’t very complex.
Virtually anybody could render that far away - But roblox always puts mobile phones on low auto settings and reduces the render distance.
Not only do users get little say in their graphics quality beyond a 1-10 slider, in which settings that might not be the bottlekneck get reduced, but developers have very little say in what gets turned off, even if they’re important to the game.
Err referring to this, HBAO is actually optimized on shadowmap and future (they have the same pass and take a solid 0.4ms off the render time if i’m correct).
Bump. I was using a FastFlag to give me maximum render distance on graphics level 1, and I can finally play games that require higher view distance (FPS, Racing, anything else requiring me to see more than 20 studs ahead). It is absolutely game changing.
What used to just be two options:
Having graphics level 2 and not being able to see anything
Running at 10 FPS but being able to see (unplayable in most games)
Is now the best of both options for my low-mid range laptop. Just the one flag that allows me to increase render distance without also increasing quality.
Why is this not supported in the Roblox client already? I shouldn’t have to use 3rd party software to achieve this.
What is/where is the engineers’ response to this proposal?
It clearly has the necessary support. It would be nice to get an explanation to why it has not been added over so many years.
I don’t understand why this is not a feature yet. It doesn’t even need to be advanced, I and many others would be happy if the sliders were seperated into “Graphics”, “Render Distance”, and “Textures”.
God, this would be lovely. I have been building in discrete graphic controls in one of my long-term projects because of the lack of these being a built-in feature. Why am I, the developer, making this for my game when this should be a universal tool? My content is not for low-end devices, yet I still have to go in and optimize and provide tools for them because I am ultimately the one who is going to be at fault for someone’s iPhone 7 freezing over my game when their device is their problem.
I wouldn’t say that honestly, Roblox is far from being amazingly optimized but at the same time it’s not one of the worst optimized games or engines out there. There are some stuff that take more resources than they should, some that take a lot compared to what they offer or the quality of what they offer, there are also some things that perform horribly in Roblox compared to in other engines.
Let me elaborate further, first we got Corescripts, especially ExperienceChatMain and the React scheduler taking a lot of resources and causing lag spikes and huge FPS drops in experiences at times. They’re definitely far from optimized and are probably one of the the most unoptimized part of Roblox. Then we also got the Lighting system, which honestly is resource intensive for the amount of quality it is, that is among other things like terrain which has the same logic applied to it. Then we also got many performance issues especially with UpdateInvalidatedFastClusters spikes mostly related to layered clothing , UpdateInstancedClusters spiking when too many small parts are moving at the same time, also issues with the lighting cache, etc. These are all examples on what I mentioned in the above points.
If we move on to the Universal app, then the entire app is full of spaghetti and unoptimized code. Every small interaction has some delay or lag, scrolling and navigation isn’t smooth, the avatar editor is extremely laggy and choppy at everything.
Now all of this simply means Roblox is NOT amazingly optimized, it never was. It doesn’t run the best or smoothly on low-end devices nor does it run amazingly in high-end ones. It doesn’t take advantage of the high-end hardware and it doesn’t make use of resources well at the same time. There are many stuff that Roblox could optimize on their part in the engine to make it way more optimized and performant and also many modern APIs and technologies that they could implement to make it faster and more efficient. If this was the case, I definitely would call Roblox amazingly optimized, but for now it isn’t.
I am also benefiting a lot from that FFlag, without it I wouldn’t be able to play games that require high render distance at acceptable frame rates. Most of the games that exist on Roblox nowadays require high render distance. I would’ve probably been able to squeeze even more performance or let’s say be able to balance stuff much better if advanced graphics quality options were available. Besides that, we shouldn’t be forced to use unofficial methods to get something that is close enough to that, also other platforms don’t have any way that we could adjust FFlags on.
I really hope for Roblox to consider adding this, and reconsider their opinion that they know better and that they can automate the engine adjusting itself to each device’s capabilities. It can never be perfect, a one size fit all option can never work well here, and also the engine doesn’t even currently adapt itself to each device capabilities or performance condition as contrary to what Roblox is saying.
On the topic of lighting I wouldn’t go to call it unoptimied in itself. It’s just simple direct lighting (which we did real time around 40 years ago). The way people use it however is not. Also, one of the reasons game devs nowaday don’t suffer from these problems (while ROBLOX Devs do) is because most game engines allow you to bake lighting, and gamedevs are properly informed on how to optimize their use. ROBLOX Devs are not.
I believe that it’s not optimized enough and there is still a lot of room to optimize it, also as I’ve said before, it’s very resource intensive for the amount of quality it is. To prove my claim, Roblox is planning to release a new Lighting technology called “New Voxel Lighting Grid” with the goal of achieving a lighting quality closer to that of Future Lighting while having identical performance to the current Shadow Map Lighting. Also as you’ve mentioned lights don’t get culled, which if they do would improve performance by a lot.
Roblox could save a lot of performance if they add backed lighting support, while still retaining real time lighting for its use cases. Most modern games and modern game engines support this hybrid lighting mode.
Some limitations with the lighting in Roblox like the 60 studs cap limit is forcing developers to add more lights to compensate which could affect performance too. I know that some Roblox devs aren’t aware much of how to optimize their games but you could optimize too much until it becomes a Roblox problem. There are probably some stuff devs could do on their own to optimize lighting further but it would’ve been better if Roblox did that instead.
What is there to optimize? It is literally direct lighting, it can run on garbage hardware. Also, that is Unified lighting which will likely remove ShadowMap, Future alltogether and allow you to specifically select shadow quality light quality etc. it brings light reflections improved grid and shadows, which, if anything, will lower the performance on older devices (again, this is no impossible task… GPUs from 2005 can run realtime direct lighting).
This is true, and I believe adding light baking would be a good idea in theory. However you need to understand ROBLOX is online, and high resolution textures would be really costly (such as lightmaps. roblox onyl supports 1k). Many modern engines support this because games are relased with these massive download files - ROBLOX doesn’t do that. Lower end devices + bandwidth limits = disastrous loading times and huge memory consumption.
Also, please do not compare ROBLOX to other engines. ROBLOX firstly is not just a game engine, it’s a complete platform and for what it offers, it does it perfectly. Hands on, type roblox.com or open the app, click play - you’re in. ROBLOX will run on pretty much garbage, and it has very bleak hardware requirements. I am all for advanced features not only to lighting but to the engine, and I do believe ROBLOX should give more control to devs, but it’s important not to forget why ROBLOX is even so popular. It’s a simple, online first, no download platform and the engine (studio) is an easy to learn approachable engine that gives developers the basic tools they need. If you want a better engine - go to one - do not expect ROBLOX to instantly compete with UE5 or UN.
I am just stating what Roblox announced themselves, nothing more or less. Yes all GPUs can run real-time lighting but it’s not a matter of if they can run it or not, but if they can run it smoothly or not. If it’s as simple as that, then why would you need a somewhat high end or at least modern mid-range device to run Future Lighting smoothly? Even for Shadowmap, my Samsung Galaxy M12 low-end phone can’t even handle it, I am lucky it can run voxel lighting. There’s still room for optimization, there’s always room for optimization, you already mentioned that Roblox doesn’t cull lights, that’s one thing.
Roblox is a platform with a game engine, it does what it is meant to do greatly (I wouldn’t say perfectly) but it could always be better and there’s no reason not to strive for improvements. There’s a common misconception that Roblox can run on pretty much anything, well it probably does, but the real question is can you actually play a game after you were able to boot Roblox on your device? Can you play games smoothly or at least in a playable performance and frame rates with that device? I think it’s pretty known to everyone that the hardware and software requirements for Roblox are too low and doesn’t reflect it well.
I am not expecting Roblox to be on the same level as Unreal Engine or Unity but expect them to improve on stuff where they actually can and should and add features that they can and should. It’s not that difficult or much of a problem for them to add backed lighting support. I am not asking for them to add Ray Tracing or Global illumination. After all they added much more advanced stuff anyways. If they can add Occlusion Culling then they perhaps can add backed lighting support too.
In conclusion, Lighting as far as I can see is one of the most resource intensive parts of the engine, it always shows up on the Microprofiler, usually taking the most resources when it comes to the rendering and graphics side, and improving its performance and performance to quality ratio is definitely needed.
Id disagree with baked lighting being bad, they’d rather improve performance by a margin while still making the game look good, its because its, as I said with Normal maps and Bump maps, decades old graphics technique that makes things look good without demolishing the performance of the game.
The reason why Occlusion Culling may be looked down upon in Roblox is because they didnt implement it properly, some things clearly ‘pop’ in and out, although, its also around a decade old technique, I would say there should be an option to disable Occlusion Culling and go back to Frustum Culling if the Occlusion Culling is messing up the performance, or let the devs also get that option so things render properly! Because Roblox is very restricting on the developer compared to other engines, you cant even make your own shaders without abusing bugs or doing some other highly sophisticated stuff!
Did you not read what I wrote? baked lighting (if you don’t want it to look horrid) needs high res textures. ROBLOX has a like hard cap on bandwidth. Try upload a 2k normal map - octet stream error.
And also, we all know only meshes can use surfaceappearance, so basic parts would need some hacky workaround to be able to bake lighting, as well as an ability to display that bake on themselves while standing up to the performance benefits
Yes it is (though it’s not available on Android yet), and honestly I haven’t noticed any issues with it on my Windows device. Though, I am pretty sure Roblox was testing it on Android and it was causing some issues with performance causing lag spikes and frame drops. Basically causing the opposite of what it is trying to achieve. When I checked the microprofiler on my phone, I saw the Occlusion Culling markers there, now they don’t show and the spikes are gone with it too. This might be the reason it’s not yet available on Android, perhaps Roblox is working on fixing these issues.
You really do not need 4K textures nor 2K normal maps, thats going overboard and you arent really getting anything good out of it, thats modern AAA game thinking there
The normal mapping example I showed several posts before is probably 1K tops, likely 512x512 or even 256x256
and besides Baking lighting is also configurable on just about every engine or software that supports it; so you really do NOT need 4K textures on the baked lighting, in fact, I have an old software that utilises baked lighting and it doesnt even look half bad for its time, especially considering that a map demo uses 256x256 baked lighting texture
and considering the map demo is a castle the baked lighting isnt even that bad, especially considering the engine being used here in which its Graphics API is DirectX7, and so imagine a 1K lightmap texture on a map in Roblox (which uses Dx11), it wouldnt even look that bad; besides as it is a ‘texture’ it can also apply to several different maps or parts of a larger map without having to sacrifice much performance, that is, if you want static lighting.
And about basic parts requiring a hacky workaround to get baked lighting is another example of Roblox being restrictive on the developer, the fact that we cant even bake lighting is just atrocious, its 2025 Roblox, and we cant even utilise a tech that is over 2 decades old that can be easily used and implemented by other game engines…