Increase Range Limit of Lights

decided to mess around with cheat engine to see how far i could push the light range and uhh…

there are 5 lights active, all moving around. each has shadows enabled, randomly changing colors, and their brightness set to 5.

(the goals of these images are to show the performance, the visuals arent all that interesting tbh)

60 studs:

120 studs:

300 studs:

600 studs:

3,000 studs:

1,000,000 studs:

obviously you aren’t actually getting anything past about 600 studs, but clearly the engine can handle the value being set to anything, so the current limit is entirely artificial!

6 Likes

Are you accounting for how Roblox is amortising the cost of lighting recalculations across frames?

1 Like

assuming that you’re concerned about the frequency that lights are updated, it seems to be fine*.

(the lights in both tests have a range of 330 studs)

here is with future selected:

*but as for voxel…

i believe the way the engine chooses to update light voxels isn’t very optimal and prioritizes the area around the player way too much, which results in the cutoff between close and far away voxels extremely noticeable.

here’s a particularly noticeable example with me walking up and down a hill:

i still believe the range value should be uncapped (or at least made a much larger value) asap, but these issues should also be resolved at some point.

7 Likes

It’s more Roblox wanting to reinvent the wheel than an inability to improve/revamp the current lighting system. This has been their problem for a very long time, especially in the last few years. It’s apparent by what they are prioritizing (and saying). Metaverse hype, brand events, dynamic heads, new player models, immersive ads, AI integrations, etc. They are focusing on what might happen 10 years from now rather than would should be happening currently:

Now I’m not saying there is anything inherently wrong with the recent updates/changes, but a lot of these can be done by developers themselves and definitely are not worth focusing on over other constantly requested updates to the engine. We only just recently received the ability to use Sprite Sheets (Flipbooks) despite it being one of the oldest computer graphic tools (started being used in the 1970s). Same with Inverse Kinematics or Voice Chat support. There’s a whole laundry list of requests developers have been pleading to Roblox for that any other engine you can go to added 10+ years ago:

  • Removal of the 60 FPS Cap
  • Light Range Increase
  • Sound Engine (adaptive music)
  • More Client-Sided Graphics Settings (which would help with a light range increase)
  • More Texture Support (Emissives for example)
  • Changing Color3 of Mesh Parts with a Texture
  • Offline Support for Roblox Studio

Roblox’s limits is creating limits on Developer creativity and what experiences on the platform could look like (figuratively and literally). In fact, Roblox being eons behind just makes certain aspects of development more complicated. I remember a project I worked on a few years ago where the team had to re-do an entire scene because the lights they expected to give atmosphere weren’t even visible when playing due to the scale. Or, when you are wanting a glowing item in your game and have to split up your mesh to make certain parts neon given there’s no emissive texture support. If Roblox would realize this, the platform could improve substantially.

19 Likes

One of the massively important things you neglect to mention here is that Roblox has to maintain complete backwards compatibility in order for this entire model of game distribution to work. Game engines like Unity, Unreal and Godot, and more broadly other 3D software from 3DS Max to Blender all have the luxury of heing versioned standalone binaries, each versioned binary then being associated by game developers and content creators with files and releases designed for that specific version. Within this model, it is far easier to make throwaway API design choices, including API choices that can better exploit hardware in the short term with hyperspecialised techniques, at the expense of inevitable long term incompatibility. Look at the laundry list of features that get deprecated over time for these platforms and what you soon realise is that the entire rest of the game industry is predicated on continual and constant abandonment and adaptation on a level that Roblox is simply not capable of.

Where you should be looking in your analysis is not to these disposable platforms, but towards evergreen platforms such as web browsers. Without backwards compatibility, the entire model of distributing a single engine binary doesn’t work, and as a consequence, you seriously lose out on a whole host of benefits, especially where this intersects app stores on heavily regulated platforms… like, I don’t know, the largest mobile platform in the United States, perhaps? Similar lines of logic similarly explain the absence of other features like user shaders (which I have good authority was partially shot down due to platform concerns about running untrusted machine code OTA on console GPUs).

Take a look at how the W3C have to painfully and thorougly work through every single scenario that their APIs are used for. Missteps are not simply disposable - they have to be supported into perpetuity, across hardware that does not just scale upwards but also downwards, that may look completely different in the future (Meta Quest running into performance issues, anyone?), with the very rare exceptions proving the rule. Sound familiar? This is exactly how Roblox works too.

You complain about how far behind Roblox is to these disposable platforms, and you know what? I’m right there with you. Take a look at any of my projects and you see that I’m constantly running up against these limits. But I do not blame that on any kind of incompetence, ignorance of feedback or some C-suite so far up their own selves that they can’t see what actually needs to happen. I wouldn’t entirely rule any of those things out, but as someone who has watched exactly how this platform has developed over the past 15 years plus, it is clear and painfully obvious that what Roblox is trying to build is, much like the web, a semantic language within which levels are defined. I don’t think that’s nonsense and I don’t think it’s unreasonable. It’s simply forward-thinking insurance. And you know what? Roblox has the single best track record for backwards compatibility of any of these platforms full stop. I can boot up games made almost two decades ago and they have evolved right alongside the platform in ways that you could only ever dream of elsewhere. Roblox have not failed in their goal, and if anything, they have historically threaded this particular needle very well, even at the cost of fast movement.

I have no idea why the idea of Roblox as some thick vision-obsessed corporation is so alluring here. It’s not entirely untrue - that’s just Silicon Valley for you - but you guys are giving them far too little credit for what amount to very real and serious problems.

12 Likes

Parts using SurfaceLights can resize larger than 60 studs with Shadows enabled, but the resolution basically halves as you hit multiples of 60. Great way to make light beams!! Lights larger than 60 studs-topic and video share

I see what you’re saying but worrying about being backwards compatible is pretty moot. Sure, changing the lighting would definitely make games look different if it was forced and a completely new system. However isn’t that the point of Opt-Ins? When they introduced Future is Bright, it was a setting developers can enable if they choose to utilize it. If we were talking about a syntax change or other foundational change then yes of course, that would come more into play. Even if it wasn’t able to be disabled, the pros of having the barebone features of mainstream engines drastically outweigh the cons of temporarily hurting backwards compatibility.

Roblox is very much a Live-Ops type of platform. A lot of games created in Unreal or Unity are focused on a final product. Yet they still are able to deprecate 15 features today and introduce 20 new ones tomorrow and developers can still migrate their 10 year old game to the newest engine version for a remaster if they feel like it. They can do that because they have a way to do it efficiently (if they even need to). Very few experiences on Roblox are not Live-Ops. Any experience with a steady player base is going to be receiving constant updates, constant changes, etc. The experiences on the platform are ever-evolving, so should the engine. Developers being required to keep their experience updated isn’t the inconvenience Roblox thinks it is. It’s literally just the way things go in this industry. It’s required if you want a long term quality experience. The mentality of handholding developers is truly restricting what could be possible. It would make sense if Roblox’s vision remained what it was in 2006 (simple sandbox games created for kids by kids), but it’s not. Roblox wants to age up the platform and bring in more outside developers but that’s not going to happen due to limitations like this. Why would developers come to Roblox to develop an actual game (not a cash grab or shovelware) when technical aspects of the engine can’t even surpass Half-Life 2. We aren’t asking for an entire engine change, just for the bare minimum lol.

9 Likes

It’s hard because historically Roblox has received contradictory signals from the community about this. When it came time to release new materials, or even for the transition between Legacy and Compatibility lighting to go along with the theme of lighting changes, creators made it clear that they want Roblox to uphold artist intent and minimise breaking changes at all costs. Meanwhile when it comes to posts like this developers demand that Roblox cause breaking changes with the justification that they don’t actually mind updating their games. You can understand why Roblox errs on the side of not breaking anything here, because it’s a losing battle either way in terms of developer sentiment.

5 Likes

how is increasing the range of lights a breaking change? other than scripts that wrongly try setting the range to infinity, i’m unsure of anything else this could break.

7 Likes

I was specifically replying to points Joey said within the context of their post.

6 Likes

Some hacky solutions I found is sort of adding invisible nodes of light, the main problems with it is that you’d ideally want to unload these manually and want to use raycasting to avoid having these nodes clipping through walls altogether. Otherwise they do the job pretty nice.

In this example it is a part with a light, welded to a handle, pretty unideal if you have multiple players wandering around with them, as the points of light would just clip and shine through the walls. So again, ideally, raycasting.

Some others examples I heard is shrinking your map, as roblox does allow things to get pretty small but I’d be warry of hit detection at smaller scales.

At the end of the day, I don’t see how using niche, rather performance-demanding tricks, is better then just increasing the range. Or maybe sometime in the future just reworking the lighting engine again, since apparently increasing the range is that scary, then maybe the engine itself is the issue.

7 Likes

What if SurfaceLights supported more shapes? Projections are always lighter with one shape!

6 Likes

Pretty sure I’ve seen this used in Blackhawk Rescue Mission 5, made me “wow” when I first saw it.

3 Likes

Can’t wait to hear more from you

2 Likes

So if Roblox is mainly for Mobile users, why should that stop games designed for high performance PCs? Roblox already disabled Future lighting for Mobile when it came out and was stuck to shadow map, just make it so Mobile is still limited to 60 if it cannot run it. But yet again even my phone from 2016 can run Roblox perfectly fine at max graphics.

7 Likes

I think it’s because it’s not that simple. You can’t just go enabling features for PC and disabling some for Mobile. Also, I would guess that part of the reason is beecause Roblox is doing just fine; they have a massive playerbase, so why waste resources on a feature like this? Why go through the trouble?

2 Likes

You can, either what’s the point of a multiplatform engine.

4 Likes

If they decided to implement a feature that can’t work on mobile, then they run the risk of developers using that feature for gameplay when it does not work for 50% of Roblox’s playerbase. At that point, people who were arguing that Roblox cares too much about mobile will just turn into people arguing that Roblox released a half-baked feature when they start getting complaints and get frustrated.

2 Likes

I think the Best thing to do is write a petition to Roblox and wait until this update comes.

3 Likes

Support, I think we should have “Infinite Ranged Lights” instead of removing the limit (because they can just say “it affects performance” otherwise).

4 Likes