Reflection Probes for Roblox

Problem

As a roblox developer, it is currently impossible to reflect anything in the scene other than the skybox. This is an extreme limitation to builders and environment artists because they can not make different areas of their scenes have different vibes without intense scripting and overthinking. Users who insist on creating more realistic reflections have to instead rely on using lua-based surfacegui hacks that run incredibly slow and less effectively compared to the engine’s C++ code.

Solution

Reflection Probes! For those of you who are unfamiliar, you can think of Reflection Probes as little skybox generators. They’ve got all kinds of settings to help them perform better or look better but ultimately they create a separate skybox from the scene’s skybox to be used as a reflection skybox (to supplement the scene skybox). I was pretty surprised when I didn’t find any old threads about these things because reflections have been sought after for quite some time now and it seems like the new lighting system practically begs developers to ask for soemthing like this, haha.

Anyways, here is a video explanation on how Render Probes work in Unity. I think the same implementation could probably be done in roblox pretty easily, but the one thing I can’t quite figure out is that since Unity uses an ETS (Entity Component System) and Roblox uses an Object Property system, it may contribute to clutter the properties section of baseparts if all of them have a reflection probe field. Anyways, take a look at this and see what you think:

Conclusion

Reflection Probes are a performant solution to something that has been needed for quite some time. I know roblox will likely simplify them if they are put in the engine but something I’d really like to explicitly ask to be retained is a toggle for the continuous rendering of the reflection probe. This dynamic feature may be somewhat resource-intensive because the reflection probe in continuously re baking itself, and it could be tough for implementation on mobile, but I think that in limited use it would be a great feature that would really open up a lot of doors to new ideas and help give us devs opportunities to express our ideas!

Another potential idea is for reflection probes to reflect predefined skyboxes. Think of it like this: one skybox for the scene, another for reflection. This would allow devs to create their custom reflection skyboxes instead of just having to pull a position from the scene. This would be an option inside the reflection probe settings.

Thank you for your time!

66 Likes

I’m with you on this.

Though kids may not always be fond of hyper-realistic environments, it is worth noting the economical benefits of expanding to other age groups. Roblox can’t always capitalize on their basic graphic system, especially in today’s competitive gaming market. If Roblox wants to be something other than those rise-and-fall games that fizzle out as fast as it grew popular, then they really need to expand their engine compete with other platforms like Steam.

I’d be great to play Roblox as a kid and then still be able to play it later on, instead of growing out of it. Honestly, I’m in that phase right now. I find myself playing more realistic games such as Asphalt 9 Legends even though it’s far less of a choice on gameplay. After playing that and then returning to Roblox again, it just looks super bland and it just doesn’t feel like something to come back to.

Anyways, I just wanted to reflect upon the bigger image. :wink:

14 Likes

It’s really just a matter of roblox taking that step to allow their engine to expand to those boundaries. Most people are willing to play a good roblox game even if they think they’ve outgrown roblox, that I’ve learned through interaction with Unity discords and my community. A very good amount of people (roughly 5-10% I’d say) created an account on roblox just to play my game (realistic vibe) midnight racing. That’s because it just doesn’t resemble anything on the platform and, really, it doesn’t resemble anything off the platform. It’s a unique experience and Reflection probes are a good way to expand the tools we developers have to use and make better games for better experiences and more diverse audiences.

6 Likes

I know it’s been like 4 years, but we still need better reflections in roblox. The indoor reflections was a step in the right direction, but it needs much improvement and an outdoor alternative instead of just skybox ‘reflection’

4 Likes

This feature goes against the ROBLOX design philosophy. Things in ROBLOX are supposed to just work, without the developer having to set anything up. The skill ceiling in ROBLOX development mostly comes from fancy little tricks that can be done using its otherwise simple, intuitive features.

Reflection probes, on the other hand, require the developer to manually set up cubemapped reflections. This can be quite difficult and confusing, especially for inexperienced developers. Precomputation is also a big no-no in the ROBLOX game engine, because parts in the Workspace are dynamic and physically simulated at all times (realtime reflection probes would hurt performance too severely to be practical, as ROBLOX must run on anything from a PC with a 10-year-old graphics card to the latest flagship mobile devices).

Although I get why you want this feature in ROBLOX, it just isn’t practical.

1 Like

why are skyboxes a thing then? limitation isn’t innovation. those “fancy little tricks” are just people finding ways to do things roblox forbids them to do because of how bad the engine really is and how much they limit everything, why should people have to find hacky workarounds like bypassing a limit in the colour settings to mimic emission textures, or placing 5 lights instead of 1 long range light to light up a large room? its just an excuse to do the least amount of work possible and focus all their effort on their brand. also what do you mean difficult for inexperienced devs, literally every dev has to learn or start somewhere and studio isn’t something a toddler could pick up in like a week, im sure anyone who makes proper games in studio wouldn’t mind getting a feature that is long overdue and simple like custom cubemaps.

4 Likes

i’ve always wanted to have real time reflections and i think this is it :smile:

Roblox’s Philosophy is “Powering Imagination.” If Roblox was just supposed to work, we’d have a lot of very generic games and Roblox would have died 20 years ago.

Also, not sure where you’re getting your information from but Reflection probes would not be difficult or confusing. I imagine it can be achieved by an instance similar to attachments, with the same texture properties as a skybox. And on top of that, a property added to Baseparts so we can decide which reflection they should use.

And I’m not sure why you think they’re performance intensive. Reflection probes would sit in place and never change unless altered by a script - and each part would handle reflections like they normally would and but using different textures.

Also we already have baked textures in the existing reflection probe system that update every 10 seconds or so.