Future Lighting needs to expose more "internal" hardcoded properties for light instances

Games that rely on lights, such as pilgrammed, which has catacombs that you need a lantern to navigate, immediately have terrible systems. The problem is, moving lights in Roblox lag behind, this, combined with the low lighting, makes it impossible to navigate well and you’ll most likely get instakilled by the jailer due to being in the dark.

3 Likes

I think the worry is that players and developers will think that a feature is “unfinished” and “buggy” when the games they play or work on suddenly have broken mechanics on mobile, but works fine on their PC. Though some engineers have said that there are plans to phase out GLES2 support some time in the future (my guess would be around the same time Future lighting is released for Android). Like, imagine if Decals didn’t work on mobile? A core part of games just unavailable for a large portion of the playerbase.

4 Likes

That is the developers concern. If there is a buggy feature developers can make workarounds. We aren’t babies. We are developers and should have the freedom to make our own solutions.

2 Likes

I don’t think we should be encouraging them to release broken features and force us to use workarounds? The idea is that sure, features are less customizable, but the artistic intent is preserved across updates instead of engines like Unity and Unreal being able to remove stuff that they decided were a bad idea and marked “Deprecated” after a few versions, and if developers on those engines don’t like that then they can remake the feature themselves because of deeper engine-level access or stick to an older version.

I’m not saying that Roblox should babysit developers and become Scratch 2.0, but they’ll have far less freedom to overhaul parts of the engine (like adding raytracing) by giving us access deep into it’s internals, because then they’d risk breaking games that rely on complicated, idiosyncratic techniques to look nice, like manipulating the shadow biases.

I am also not saying that Roblox has been perfect in this regard (one particular gripe are the environment maps that appear to not have any significant work done on them since they were introduced), but I can only imagine how difficult it must be to not accidentally break a “feature-bug” that people exploit like glass with transparent parts or GUIs, because I think that does make it much harder to introduce improvements to the engine as a whole when each update must consider the impact on even the smallest parts of the community, else risks significant backlash for breaking artistic intent.

3 Likes

I’m not saying it wouldn’t be really cool to see raytracing in Roblox, but frankly I’ll take some of the more basic stuff that provides much more flexibility working with lighting over a raytracing toggle that cuts off my game to most of its audience because they can’t run it. Standard features in other engines should be a priority over more advanced stuff like RTX support since the former shouldn’t have anywhere near as much of a problem being used by most of the players on the platform.

As harsh as it is, a bug is a bug and relying on it and expecting it to remain in the engine forever is… not a good move. If concerned about things like this the engine would never make any progress which in the case of lighting is exactly what this post is addressing, because the lighting engine has entirely stagnated and has gone without significant improvement for a long time.

6 Likes

Roblox has to run Luau code between each frame. Take a look at your CPU’s single-threaded performance. -_-

2 Likes

My code is optimized and isn’t the problem. Lua is also not single threaded, at least when you use it right. We are using parallel Lua to run all Lua code in separate threads on intensive scripts.

2 Likes

Luau is single-threaded. Parallel Luau simply runs multiple instances of Luau, each on their own thread. Parallel Luau does not eliminate the existence of serial Luau nor does it allow Luau code to run at the same time as frame generation. Both the serial & parallel execution phases have to run to completion between each frame.

“My code is optimized and isn’t the problem” is not helpful and I don’t believe you. Check if lowering the graphics quality or screen resolution increases your FPS - then I’ll believe that it’s Future that is the problem.

1 Like

Micro profiler clearly states that shadows are the biggest issue here, turning down graphics or changing the lighting mode to voxel gives me over 400fps

6 Likes

This is something I was hoping for when this kind of lightning was being developed. And now that we actually have it, I believe that they didn’t give us enough control over the new lightning system.

5 Likes

I strongly agree with this. Games with Future lighting tend to lag very badly on my mid-end hardware and there are times where I want more control over how the lighting engine works in my game, especially with shadows, render distance, and ways to toggle aspects of the engine with serious performance problems on certain platforms/hardware.

5 Likes

its either ramped up brightness scale with insane contrast that strains your eyes, or boring realistic lighting. they need to work on giving us more so our games can actually feel unique with the lighting system, same for foliage and what not, just feels like roblox devs in that department aren’t prioritizing these things

2 Likes

Please lead with that next time instead of giving a baseless “my code is optimized”, remember who you are sharing this forum with. Plenty of people would have said that without actually checking.

Regardless, thanks for the info.

2 Likes

I just used raytracing as an example of a situation they might run into where, because they’ve given us so much control, they can’t update the rendering pipeline because games use it for gameplay or artistic reasons.

For example,

If Roblox let games manually change values in the voxel grid early on because tons of people asked for it, then how would they have introduced Future Is Bright? FiB has a dramatically different lighting model, and at higher quality settings voxels are almost completely overridden by the shadowmaps. And, who’s to say that games are modifying the voxel grid to only improve lighting? What if they do it for gameplay reasons like highlighting a specific part of the map? How would that look with the new rendering features?

Not to mention, Roblox changed the voxel grid with FiB to be structurally different than how it was before, so they would have to introduce a very long beta period where tons of games will still end up breaking because they relied on deep engine access to an inferior lighting engine, but the developers couldn’t update in time because… who knows, they could’ve just forgotten, or scrap/delay the improvements entirely.

I completely support this and I too am frustrated when they try and fix bugs and then get massive backlash for it, like the animation blending change that had to be eased in over a year and where people were still unhappy because they managed to completely avoid every single “Check if your game is affected before the Opt-Out period concludes!”.

Unfortunately something I’ve started to speculate is that, the more people say “Don’t fix this, it’ll break our games!”, the more Roblox hesitates (after all you don’t want to add more fuel to the fire of “Roblox doesn’t care about it’s developers”), and the more games start using the bug, for example, Phantom Forces:

And when popular games start using bugs, that’s even worse for fixing bugs because tons of players will now say how Roblox broke their favorite game in a random update.


I wonder what would happen if you forced dynamic shadows on everything that previously used baked lighting on the game you played with raytracing.

EDIT: Uhhhh I thought I deleted this??? I tried to delete this 'cause I felt I wasn’t in the right state of mind (i.e., late in the night and tired) and was coming off the wrong way, but it’s kind of part of the discussion now, sooooo I guess it’s staying.


Extra responses to not fill up this thread.

Phantom Forces isn’t revolved around bugs (as far as I know), the developers just saw an opportunity at improving their game graphically and took it. I can’t explain why they decided to abuse an intentional limitation (because it’s not technically a bug), just that they did and now Roblox has even less of a reason to change the behavior of Glass to improve graphics.

Or you’re just being hyperbolic and sarcastic…

3 Likes

Yeah apologies for that, I wanna add one more thing to the reason why I believe lag is also extremly bad with lighting, being probably the lack of occlusion culling in roblox

3 Likes

The real question is why would you make a game revolved around bugs?

2 Likes

I think this is really needed, especially with how terrible the specular of SurfaceLights have been for the last 3 years. For some reason, the specular of a SurfaceLight is shaped like a point light’s specular and follows the camera around. I don’t think it’s something they can’t fix, since other engines do rectangular speculars normally.
If they can’t fix SurfaceLights, then they should at least give us the option to disable specular.

6 Likes

Roblox Creator Roadmap if you look at the roadmap under “studio will addreas long standing bugs” you will find that roblox is planning to add occlusion culling

1 Like

I am rather irritated that roblox has seemingly gone silent with FiB. Is this actually our stopping point? the FiB beta showcased intensive results that seemingly were implied that they were going to be added and then out of nowhere radio silence and no updates to “Future” lighting, an extremely scaled back version of what we saw.

If we’re not going to be given access to what was showcased, then roblox NEEDS to give us more settings over lighting. I hate using hacky tricks with impact my performance more because I can’t adjust the full lighting profile of the game. Not having HDRI’s are absolutely causing roblox to be the notch under Unity and UE4/5/CORE.

What’s really screwing on top of this is NO VOLUMETRIC LIGHTING SUPPORT. So many of us showcase developers involved in RAR, EBR, ETC. are playing with hacks to get this as a “setting”. We NEED this to be added.

This is a no brainer. Roblox also needs to use more than 1 core and GPU rendering because we are severely undercut by roblox at this point.

7 Likes

Yes! This! Sometimes surface lights also bleed trough surfaces when placed above them, which is really weird behavior.

2 Likes