Future Is Bright: Phase 1 - Studio beta

TL;DR: Phase 1 of Future Is Bright project is now live in Studio! We’re still tuning a few bits & pieces - note that this update is not yet available when you play the game outside of Studio. Make sure to submit feedback if any.

As many of you know, we’ve been working on Future Is Bright project for a while. We’re starting to ship the first phase of the project to production which is extremely exciting. A large team worked on this - thanks to @NeoBuilder101, @Qiblox, @ConvexRumbler, @Homeomorph and one other engineer who isn’t on devforum for all the hard work! I’m just the messenger here :slight_smile:

The way this is going to happen is that we’re shipping the project in three phases:

  1. New voxel engine - we’ve done a series of significant updates to both the voxel lighting engine and the lighting-related parts of the rendering pipeline. We can now represent lighting values above 1, enabling HDR rendering, handle parts that are thinner than 1 voxel much better and have done a lot of internal work to prepare our rendering pipeline for the future. This includes a reworked post-effect chain including Neon.

  2. Sun shadows - high resolution detailed shadows from the sun that unify voxel shadows and custom humanoid shadows in a single efficient and high fidelity system, with developer control over shadow softness

  3. Local lights & shadows - high resolution detailed shadows from other light sources and significantly higher quality lights that aren’t confined to coarse voxel grid and support specular response from local light sources on materials. This update will also include an option to use automatic exposure.

The prototype builds that some of you have been playing with represent all 3 phases combined, but we’re shipping these in smaller pieces to reduce the risk and gather feedback as we go. Today we’ve enabled Studio-only preview of phase 1.

The idea behind these phases is that on lowest graphics quality we can’t use most of the technology from phases 2 & 3, so we needed a new voxel engine as our new lowest common denominator. When all 3 phases ship, we will still use the voxel engine on low quality, and use the other engine on high quality, with some blend in the middle - on some quality levels we might use voxel engine for more distant parts of the scene.

Since we’re redoing large parts of the rendering pipeline, existing content won’t look exactly the same as it used to. This is due to some changes in lighting equations we use internally, the fact that the new pipeline is using HDR and a tone-mapper which alters the contrast of the scene, and mostly unclamped lighting values in internal computations which leads to overly-bright light sources behaving differently from dim light sources (unlike before where the difference between Brightness 10 and Brightness 2 was insignificant).


Because of this, we give developers control over the lighting engine they use. This is controlled by Lighting.Technology property, with two enum values available now:

  • Lighting.Legacy - this is the old lighting engine, or a close approximation thereof. We’re trying to maintain the behavior of the old engine largely using the new pipeline, so there might be slight differences in some cases.
  • Lighting.Voxel - this is the new voxel lighting engine, that will be supported on every single platform on every single device on every single quality level.

With the introduction of phases 2 and 3, we’ll add more values to this enum - for example, if you want your game to look the same everywhere and want to highly tune your content for the specific look that voxel engine gives you, you can use Voxel technology; if you want the game to look better on high end desktop/mobile hardware, you’d be able to choose a different enum value associated with Phase 2 or 3.

We’re still doing some polish on the rendering behavior for Voxel mode - both Neon and the color balance with default settings will change before the final release - and some optimization for mobile hardware, but we want to give everyone a chance to look at the new mode as early as possible so we’ve enabled support for Voxel technology in Studio as of today. We’re hoping to get the final or close-to-final look for phase 1 in Studio next week, so that you’ll be able to start tweaking your content and expect it to look the same in the global release.

Here’s a couple of screenshots, shamelessly stolen from @Maximum_ADHD:

And a couple more that I made on Village template with slightly tweaked settings and the new tonemapper that should ship next week:

Remember that if you publish your game right now, the changes won’t be visible for your players since the change is Studio-only for now. The full release is around a month away (mobile…); be sure to let us know if you notice anything amiss so that we can fix it before final release.

Some games will require tuning after switching the mode from Legacy to Voxel - the engine is different, and, while we’re correcting a lot of ingrained errors in how light simulation worked before, and believe that the result is superior, some levels are tuned to the specific behavior of the old engine and won’t look very good.

We encourage switching to Voxel mode after it ships and tuning the content to look great - while we intend to maintain the Legacy mode for a while, supporting it is proving to be somewhat complicated and it has a small performance cost on Voxel mode as well, so at some point we might have to make some changes that will change the way Legacy games look in subtle ways.

So - go download the Studio update, open your levels, switch Lighting to Voxel to try this out, let us know if you find any bugs, and get excited for when this phase and subsequent phases release to production!

Just for reference, a full list of known bugs - they will be fixed and this list will be updated accordingly:

  • Default tonemap alters the hue/saturation a bit too much. Fixed in 358
  • Neon is very different from what we intend to ship. Fixed in 358
  • GUI objects with AlwaysOnTop=true and LightInfluence!=0 are too dark. Fixed in 358.
  • Surface and spot lights with Range=0 don’t work correctly. Fixed in 359.
  • Surface lights don’t always work properly in Voxel mode. Fixed in 359.
  • Beams aren’t affected by Fog. Fixed in 359.
  • Glass doesn’t look good in some lighting conditions. - not a bug
  • Technology property doesn’t replicate which makes Play Solo revert to Legacy. Fixed in 359.
  • Inserting a Bloom effect into a level with Technology=Voxel changes the visuals because the defaults for the Threshold are wrong. Fixed in 359.
  • Neon desaturates colors unless they are extremely highly saturated in the first place. Fixed in 360. Now you have more colors that don’t desaturate but colors with low saturation will still desaturate into white. You might need to adjust neon colors.
  • Fog behavior changes substantially in Voxel mode. Will be fixed in 361.

I can tell that I’m going to have fun with this update :grin:


The future is upon us


The now is future


The Neon behavior will change in the update next week, we wanted to give this to you guys early anyway. Mind posting a link to the map so that we can check it out on the build that will ship next week?


Interesting. :thinking:


Awesome news! I wasn’t expecting it so soon!




The future is truly looking bright


Sweet, can’t wait to get this out to the players.


I love how lighting can go from visible to extremely dark when needed. This will make caves entrances / etc look a lot nicer.

Unfortunately, this does not work so great at large distances:

Is this something that is on the roadmap for future FiB phases, and if not, something that can be somehow optimized so that out of range chunks just adapt the color of nearby chunks instead of just ignoring lighting (ugly) or computing their own (not great for low-end devices)?


Now this is what I’m talking about. I’ve been extremely hyped for FIB and now I have the opportunity to experiment with it even further. I’ve been extremely interested in enhancing my maps using FIB to deepen the atmospheric feel and enhance the aesthetic. I can say without a doubt that if everything goes without a hitch, that maps are only going to look better from here on.

Glad to see we’re getting useful features that’s enhancing our development experience (and even player experiences). This will be real fun.


Yeah - this is a concern. With phase 2, we should be able to support sun shadows on longer distances on higher quality levels, but for low end this limitation is still a problem. We used to have a mode that tried to intelligently decide what the out-of-range color of voxel chunks should be but it was pretty broken so we removed it. We would need to revisit this, but this will likely only happen after we ship the current work on all 3 phases.


Especially appreciating the legacy option, as so some progress on coded lighting may not be lost as I can switch back and forth to see how it was beforehand.
Awesome update!


Sure thing! I’ll be doing some tweaking to it in the meantime. https://www.roblox.com/games/1328161836/Maid-Cafe-V2


Great news! When is it actually live though?


Did you read the thread before asking?


Personally I feel like the increased bloom on particles, trails, and beams is a bit too much.

Without Voxel Lighting:

With Voxel Lighting:

Voxel lighting ends up ruining a lot of tricks I use with particles to get cool effects on Legacy. I want to take advantage of Voxel lighting but this is kind of a deal breaker for me.


Can you post a model/level that shows this? This may be fixed in our build for next week (as I mentioned, we’ve had to change the way neon - and, by extension, bloom - behaves substantially) but I want to make sure.


Will Lighting.Voxel remain to be an option even after phase 3 is fully rolled out? Or will we one day be forced to use full shadowmap lighting?

I find that shadowmap lighting and voxel lighting both have their places, and on Roblox (right now) I personally prefer the voxel lighting in most cases.

It’s amazing to see phase 1 be such a big step up from the soon-to-be legacy lighting. It feels like it hasn’t even been too long since the first phase of the legacy lighting was released in 2013. With the new lighting slowly coming out, and dynamic skies in the works, I imagine a much different Roblox in the coming years, and it’s really exciting.