Deprecating Lighting.Legacy, Introducing Lighting.Compatibility

Hello Developers

What are we doing?
Deprecating and later removing Lighting.Legacy, which will be replaced with Lighting.Compatibility.

What is Compatibility
Compatibility mode simulates our Legacy mode within new engine code (Voxel mode and further), with minimal changes in the engine code and 0 changes in shaders. It’s purpose is to approximate legacy, but not simulate it perfectly. Your game may not look perfectly the same in Compatibility, but it should be playable. Basically compatibility should require no work on your side to fix bugs, while there might be slight differences. We tried to to balance our code sanity and your comfort while developing this feature.
Some work may be required though, mostly on post processing side. For example, black neon is gone, if your game relies heavily on it, you might have to do more work.

Why are we doing it?
As we are moving forward with our rendering engine (project known as “Future is Bright”) we want to focus on development of new features and maintaining current engine (Voxel mode and what will come after it).

Having legacy in our code base has couple negative points

  • We have to dedicate our engineering time to maintain the old code. We can use this time better, like working new features for You
  • Having Legacy and Voxel is causing ~5% rendering slowdown across all platforms. Lets get those 5% percent back :wink:

Roll out plan

  1. Enable in Studio Only, gather feedback from developers
    1a) Iterate with developers, if fixable problems are found by them
  2. Allow compatibility on clients, so developers have time to voluntarily adjust their games
  3. Force all Legacy games to Compatibility in studio and client. Remove Legacy option from Studio

What You should do?
If Your games uses voxel mode, sit back and relax. If your game is in Legacy mode, go to studio and try to switch to Compatibility and report if anything breaks. Please don’t report minor differences in colors - that is expected.

"But wait, I’m mad," you say?
Really sorry, that you feel that way. This will allow us work better and faster on the future of Roblox engine and trust us that we tried to make compatibility as good as possible and we will listen to your feedback.

Also to ease your mind. Here is a nice screenshot of new material system that is currently being worked on by three members of graphics team:


I’m happy with this change, but I was wondering if there were any screenshots to compare Legacy with Compatibility to get an idea of what it is going to look like?

On a side note, I’m really excited about that material system.


I’m glad you’re not entirely removing the Legacy functionality, thanks for the hard work!


Contrast screenshots would definitely be appreciated. Even though I use Voxel, I would still like to see the change for myself


Some comparisons of my game (before Voxel was released) for those interested. All of the videos start with Legacy and switch to Compatibility back and forth. In general, it looks like colors get a little bit washed out, and sun rays are significantly brighter. PointLights also seem a little bit sad.


That new material system :drooling_face:

Out of curiosity, do you plan on removing Compatibility in the (far, far) future?


I asked zeuxcg about Lighting.Voxel eventually being removed, and the answer to even that is that it’s possible. That being said, I can imagine compatibility being far more likely to be removed than voxel.

If you’re deciding on which type of lighting is right for your game, I advise against compatibility. All existing games should also be working towards moving onto voxel, at the very least. Compatibility is just a quick fix for games still using legacy.


Definitely this. Compatibility, while better than Legacy, is likely going to hold back lots of potential perf boosts and quality gains, so the less people on it the better!


Since some people don’t know what exactly change this will bring, I decided to show a small example of what compatibility will change from legacy.

Compability mode

Legacy mode

One thing I’ve noticed, is compability does not keep the same feeling of neon that legacy does.


Those screenshots of the new material system make me wonder if we’re going to have real time reflections in the future, or if those are just specular maps.

I am a bit sad that Neon parts will probably never get their own dedicated intensity property, rather than being tied to a bloom object.


Those are just environment maps and reflections of lights, not objects.


Personally I’ve stuck with the Legacy lighting because with Voxel I lose a lot of detail when it is enabled versus Legacy. Compatibility appears to be an awkward middle ground where I still lose some detail (though not as bad as in Voxel), but materials like Glass and Neon behave differently than in Legacy lighting.

Update: I’m getting weird artifacts with compatibility mode as lights go through walls on the other side that is not present in neither Legacy nor Voxel.


That material system is amazing! Can’t wait haha


That new material system looks very good.


I am really aware on the neon part’s behaviour, it looks really different to the legacy. Developers may take a lot of time to change the transparency each part again.


looking at that screenshot of the new material system, I want this update now :weary:

really amazing though!


Will real reflections be implemented in the new lighting technology? (reflecting parts, not the skybox)


Can some tweaks be done to Compatibility to fix some of it’s inaccuracies with Legacy? It looks nearly like the the real thing, but it’s still a long way to go.


looks pretty accurate, but makes one of my games look more blue :smiley:


Honestly i still like Legacy the most, am now converting the game towards Voxel.

Here are the differences between the 3 modes from out of my game map.




Note all other lighting settings are the same on all pictures.

Legacy users like me just have to get used to Compatibility or Voxel.
Legacy gave me more the feeling it had better colors, but i understand it’s getting removed and accept it.