The Holiday season is upon us!


Dev updates & a bit of a recap

As anyone that’s been keeping up with our progress updates lately knows, news hasn’t been great in recent months…and while things still aren’t fantastic, they do finally seem to be on the upswing (fingers crossed)!

For those that haven’t been keeping up, here’s a quick little recap of the last few months: our lead developer, dotModded, started having debilitating seizures that severely impacted his ability to work through our most difficult update yet (Focal for 1.21). After months of tests, many more seizures (and accompanying trips to the hospital), he was diagnosed with epilepsy. Getting the proper medication and treatments for that has been a painfully slow process, with him only just getting a treatment plan setup and put into action about a week ago…a treatment plan that we’re told takes 8 weeks to fully transition too. Hopefully these meds work out, and he can return to some sense of normalcy, if not, it’ll mean another transition period between medications to hopefully find something that works, and we can get back to updating Focal Engine.

Unfortunately, that isn’t the full extent of our struggles as of late, with our second most senior developer and lead shader dev, Jakemichie having to deal with the ongoing effects of a deeply personal loss. Toss in us now heading into the busy holiday season, and well…you don’t exactly have a winning recipe for progress. For that, we are truly sorry. We’re doing our best to deal with the hand life is dealing us right now.

With all that said, we also wanted to recap what the current plan (despite our struggles), actually is:

  1. Finish our update of current Focal Engine to Minecraft 1.21 (with the final sub version yet to be decided, though obviously, the newest is the ideal)
  2. Work through whatever roadblocks we encounter to get that out the door (it may only be releasable for one mod loader, though we’re still exploring our options).
  3. Start work on Focal Engine’s refactor to become a ‘standalone’ shader mod (Quite basically: make Focal no longer require Optifine to be installed)

It should go without saying that this ‘standalone’ Focal Engine release is an exciting prospect for us, for a plethora of reasons. It should improve our update speed, enable better mod support (including the possibility of support for extremely popular mods, like Distant Horizons / Voxy), better establish Focal Engine as it’s own shader mod, potentially open the door for Sodium compatibility, allow for much more flexibility in our mod / shader UI, which will enable both real time settings adjustment, and potentially overlay settings for even better visual feedback for settings changes to the end user, and more!

Obviously, we really want to get started in earnest on this, as this is all stuff we personally want as well, but getting current Focal Engine up to date is still more important in the near term. Not only because this Focal standalone update is likely to take months of dev time to get ready for end users, but because much of the work it will require is going to be required for Focal VK as well, so doing it right the first time is ideal.

Now hopefully things actually start coming together and we can get these things accomplished sooner, rather than later, but we do want to stress that even in the best case scenario, Focal standalone is not going to come to fruition overnight. Keep an eye on Progress Updates and our #Focal Updates channel in the Discord in the coming months for updates on all of this.

And before we go, some assorted screenshots from Jake showcasing some of his progress with Clouds this past month:


Updates on the Shader Front

With the Holidays getting started, and all the aforementioned curveballs life has been throwing us, we didn’t managed to delivery any 2.1 or Legacy updates this month. That said, Jake has still found time to continue working on our updated Volumetric Cloud tech, and he has prepared both a direct update for you all, and some fresh new screenshots, just for this progress update!

I’ll let him take it away now:

Hi all, Jake here, Last month I discussed how I’ve been stuck with horizontal shaping and placement of Continuum’s new volumetric clouds, as I couldn’t find an approach that would work within our constraints. To keep things short, I have made some progress on that front, but I’m still not completely happy. Currently, I’m able to independently scale cloud coverage (how much cloud there is in an area), cloud type (how tall the clouds can be) and cloud base (how far up in the sky the cloud is placed). This allows me to create fields of clouds that can be pretty varied across the sky, but I’m still trying to figure out how the three values should be correlated, if at all. I’ll keep trying to find an approach that I’m happy with, but if I can’t, then I may just settle for this.

Outside of that, I’ve also finally added upscaling for the new clouds. They’ve actually been rendering at native resolution this entire time, which is fine during development, but is obviously problematic for a final release, given how heavy volumetric clouds can be on performance. Currently, the clouds render at half resolution, are then spatially upscaled to native resolution, and are finally temporally accumulated to remove any noise. This has reduced the performance hit of the clouds by over half, bringing them roughly in line with our old clouds. There’s still more work that has to be done on the upscaling, for example the motion vectors used for the accumulation use the cloud’s baseline wind speed whereas it should be a mix of multiple speeds, and I want to add neighbourhood clipping to reduce ghosting as much as possible (though I’m unsure if this will be possible, since I’ve reworked how the new clouds are lit compared to our old clouds), but this brings us closer to being able to release the new clouds, as this was a major blocker.

Another thing that I’ve added to the new clouds is the ability for clouds to sit at different altitudes within the sky. Due to how our old clouds were set up, cloud altitude was fixed for every cloud in the sky, only being exposed as a setting that the user could change. With our new clouds, the only settings that the user can change are the minimum and maximum altitudes, as the actual altitude will be selected by procedural noise. This was a surprisingly easy addition due to how the new clouds are set up, but unfortunately comes at the cost of additional noise. I’m going to tweak the temporal accumulation to try to reduce the additional noise, but for the screenshots below, just keep in mind that the noise comes from this new feature.

To end my monthly update, I’ll briefly talk about planar clouds and the remaining blockers for a release of the new volumetric clouds. Regarding planar clouds, you’ve probably noticed that they’ve been missing, and that’s because I have removed them. Because you can fly above clouds in our shader, planar clouds had to be integrated with volumetric clouds more tightly than normal to correctly sort them, so rewriting volumetric clouds also meant removing planar clouds. While I do want to rewrite planar clouds at some point, I’m not sure if that’ll be before or after I release the new volumetric clouds. Regarding a release of the new volumetric clouds, with performance being addressed, the remaining blockers are now: Focal update for a few new features that I’ve added, an overall cleanup of the volumetric cloud code, finalisation of the shape and placement, and integration with our atmosphere (necessary for high coverage support). I’ll keep you posted on my progress with these, but I can’t give a hard date.

And here’s a host of screenshots of the newest revisions of these cloud tech upgrades:

Support 2.1 and Legacy's continued development with a Continuum Early Access package purchase

Stratum

As many of you may have noticed, Stratum Build 56 did not launch last month. With Thanksgiving upon us last month, and Christmas looming, we decided to hold it back a bit so we could cram every additional texture we possibly could in before we break for the Holidays.

Our next blog, after the Holiday season is over, will go over everything that ends up making it into Build 56, as well as including another update from Mythical. In the meantime though, we can tell you that it will include a few Holiday themed textures, everything we’ve previously showcased, as well as official Minecraft 1.21.10 support! Though for users on 1.21.10 right now, our preliminary testing has not found any issues with Build 55, other than the warning in the resourcepack menu of course.

Before we move on, here’s a few shots of some of the textures we produced for Build 56 in November:


In Closing...

As we alluded to up above, and with the title, this will be the last Progress Update of the year. We’re already looking at a busy Holiday season in regards to the updates we’re preparing (both what we’ve mentioned here…and otherwise 👀), especially with our reduced dev capacity currently, and we don’t want to rush out a new, likely sloppy progress update post in the midst of the Holiday / New Year season.

So with that in mind, we also want to once again thank all of you for supporting us, especially during our recent struggles. It means the world to us.

Happy Holidays, and thank you, from all of us here at Continuum Graphics!