An update on Future Is Bright

We’ve been pretty silent on this for a while, and I want to make sure everybody is in the loop on what our plans are.

Future Is Bright is essentially an official project now; we’re figuring out how to ship this exactly but the goal is to get everything from the original prototype to production, except that the mode that we’re going for is ShadowMaps.

An obvious question I hear a lot is “why can’t you just ship what you have”. There are several challenges that we’re working through, with a large part of the rendering team focusing on this:

  1. Performance. Performance is a very essential feature - we want to make sure that the tech we’re building can run well on a wide range of hardware with a wide range of content. We’ve been working on a lot of optimizations and this work will continue and will take time.

  2. Content compatibility for old content. New system is substantially different from the old system - we like the new system, it produces results that are more physically accurate - but on some existing content these results are effectively game breaking. We’re figuring out the exact amount of options we’ll need to add to support legacy content with the new technology.

  3. Content compatibility for new content. While we will try to push the performance on the new tech as far as we can, it’s a given that it will not work on all hardware anytime in the next few years. Roblox is just not a platform where the min spec is comparable to current generation consoles, so we can’t deliver the same quality everywhere. After doing a lot of analysis on this we determined that the current voxel system is realistically the best performing option on low end - so it will stay with us for the foreseeable future. However, we’re making several substantial upgrades to the old voxel system to make sure the content is more compatible between new & old systems - for example, we want you to be able to build a house with walls <4 studs thick on a new system, and have the inside of the house be dark on low-end devices as well to maintain content portability across devices.

The way new system would work is we’d run both systems at the same time, and switch to the old system past a certain distance (controlled by the quality level most likely). We’ll also integrate parts of the voxel data into the new system (specifically skylight) that we don’t have a good alternative way for solving.

So - the good news is we’re working on this, the bad news is it will take time. We don’t have an ETA for when everything will ship but you should expect us to start shipping something to production in the coming months. We want to try to split this into multiple smaller releases and ship one feature at a time to minimize risk and get better feedback as we go.

In the meantime, Future Is Bright repository will continue to get new builds. There was a large gap in builds - we were cleaning up the prototype code (removing the GPU voxels and fixing some compatibility hurdles) and working on optimizations and some voxel improvements. I’m hoping to get the new build later this week so that those of you who use it for building can continue doing so without issues; going forward we’ll try to make semi frequent new builds.


Starting to get really exciting! Would it be safe to assume this would be shipped completely by the end of this year? Glad you guys are taking the extra step to ensure this runs flawlessly on release.


Definitely aiming to ship everything this year.


Currently colors in shadowmap appear more saturated than they really are, will that issue be addressed?


We were focusing mostly on other tech up till now, the color balance changes come from the HDR/tonemap solution that we are planning to take a very close look at next; if you have examples of content where the change is particularly problematic that’d be appreciated.


Will developers be able to control if this new lighting system can or can’t be turned on for their games for those developers who have old style games that would like to keep the old lighting system, or would the old lighting system be completely replaced? Also the ability to turn on or off specific things that the new lighting system brings or will that be handled by the quality level setting?


You’d be able to disable most parts of the new lighting system, probably not all of them in all cases - for example, if you are using GlobalShadows, you’d probably get the voxel shadowing improvements regardless of whether you want them but will probably be able to opt out of shadowmaps (although it might be the case that doing that would disable player shadows - we’ll see). We don’t have super definite plans around that - we’re expecting to finalize them as we roll out individual components.


I’m ultimately excited to hear more updates on this!! :smiley:

Keep up the great work @zeuxcg!! The demo’s were stunning already. Expecting the real stuff to be better! :heart_eyes:


Quick question about Future Is Bright: my game is entirely underground, and if I enable GlobalShadows the entire world obviously gets really dark. If I slide the Ambient closer to white, the level gets brighter, but it’s really washed out and monotone because there’s no directional light. This also prevents me from having dark shadows in my game since the ambient is bright. I can’t use PointLights because they have too short of a radius and can’t light large areas. Because of this, I have to forgo shadows and disable the GlobalShadows property. Will Future Is Bright have a more elegant solution to this?


GlobalShadows is really SunShadows, so you probably won’t be able to use it. We know light range is an issue; I am hoping we will be able to increase it to some extent, although not indefinitely.


I actually would rather wait, I saw on the test releases that future is bright requires metal, is that also going to be needed when the public release it out, or will you make it compatible with older macs.


Just glad the project is still going. Thank you! :grin:


While our plans for HW support haven’t been finalized, we will likely not support pre-Metal Macs. You’d still get voxel improvements of course, but we’re starting to treat OpenGL as a second class citizen. Besides, odds are that on old Macs the hardware wouldn’t be fast enough anyway.


This is great!

Since Roblox is going with the shadowmap-solution instead of the voxel-solution does this mean that the technology for particle shadows is shelved for the foreseeable future?


Yes, this is correct. There are several ways to implement particle shadows with shadowmaps but we will not be focusing on that this year.


Kinda a bummer that there won’t be any particle shadows yet, but still majorly hyped for this. :slight_smile:


He’s not wrong


With a game that mixes indoor and outdoor scenes, I’m actually pretty worried about the new ShadowMap lighting system. I have 4 stud thick roofs with 4 stud thick ceilings underneath just to get the voxels to work, and most of my lights are embedded inside of the ceiling so that the lighting actually fills up most of the room.

If there are two lighting systems on different platforms, it will absolutely ruin all of this. Because the lights are embedded in the ceiling, they’re going to cause a lot of problems with the ShadowMap system, and moving them out of the ceiling might cause problems with the voxel system.

The difference between both systems is so jarring that I don’t think it’s a good idea to keep both active at the same time.

If you do use both systems, please make it so that developers can detect the quality level that a use is on, so that the lighting can be dynamically changed for that system.


We can not do this - this is not how the hybrid will work. Please link to your level so that we can take a closer look; we plan to do several things:

  • Voxel system will improve - e.g. you won’t have to use 4-stud thick ceilings/walls in many cases
  • You will be able to disable new lighting system for your place if your place wasn’t designed for it (the specific mechanism TBD)

Oh and also ShadowMap builds right now are missing some key components; we’ll be releasing a new build next week that will give you a better understanding of how the hybrid would work, and we plan to iterate on it a lot before actually shipping - so feedback like this is valuable and we’ll definitely look at your level as part of this work.


It’s this game:

So long as we don’t have to deal with 4-stud-thick voxels, though, it might be fine.