New Worldbuilding Update (Q3 2024) Info Revealed at Unite

Worldbuilding Status Update (Q3 2024)

Today we finally revealed or confirmed a few details of the new Worldbuilding System that we’ve been working on, during the Unite Keynote and Roadmap sessions (links to the YouTube videos).


(There is no way for me to do justice to the beautiful videos in the YouTube links above with 20Mb GIFs so please check those out!)

This is currently not available in Unity 6 but is slated to be part of the next generational release of Unity. Initially we are looking to address the needs of technical environment artists working at studios that are already using Unity to create large, complex worlds. We understand that this is a very narrow range of our users. We are simply starting here and will work towards expanding the range out to many more users but it will take quite some time. We will also be working very closely with our key asset store developers as they tend to be able to work much faster than we can to address the needs of many more users.

I wanted to take some time to break my silence and to clarify and summarize some of the key concepts in more detail than we had time for during the live presentations. Also to give you all a chance to ask further questions and provide feedback on what you’ve seen and heard. So here we go.

A new worldbuilding system:
Yes, this is a new worldbuilding system to replace Terrain in the next generation of Unity. We’ve spoken with a lot of the studios building larger, more ambitious worlds in Unity and did take a long hard look at what we could and couldn’t do to improve Terrain and did choose to move forward on a new system. Terrain has been around since the start of Unity and there were many technical choices in the system that we couldn’t upgrade or modernize. We want to provide something that will work for the needs of today and much further into the future and because of this, we knew we needed a full overhaul.

Creation Tools:
The initial releases will focus on the import pipeline or being able to get your content into Unity from industry standard tools like Quadspinner’s Gaea or Houdini or any similar tool. We have no intention of competing with these types of tools and running complex erosion simulations directly in Unity anytime soon. We want to provide more ability to import not only height maps but also masks, and pre-scattered assets.

Once your content is in Unity, you’ll be able to use our non-destructive layer stack to order your materials, paint or generate masks, and set up rules for these layers based on altitude, slope, and curvature.
LayerStack
Once these layers and rules are set up, as you move stamps around, everything will just adapt based on these rules. This offers much more flexibility later into production.
World-Islands-ezgif.com-video-to-gif-converter

We’ve also integrated Shader Graph into the system, one of the longest requested features on our public roadmap. Shader graph will be integrated into the terrain surface with our new system. It will also help enable more seamless blending of meshes with the terrain surface.
AssetBlending

Runtime Performance:
Some key modern features that will help enable runtime performance are Virtual Texturing and our new Tessellation system. The layer stack is all baked down into tiles that can optimize performance at runtime instead of blending and drawing many textures and materials. This is coupled with a powerful tessellation system to render more detail and geometry where you need it most, near the camera. Further away, it’s vastly simplified and helps you optimize performance for your target platform or platforms.

Powered by ECS:
Yes, this new system is built to take advantage of the entities component system (ECS). We’ve hinted at this in the past as we knew there was no way we could build a new worldbuilding system that could scale to the needs of tomorrow without this at the core of the system. If you want to scatter millions of SpeedTree assets or boulders, storing them as entities helps process and render them with optimal performance.
SpeedTree Scatter V3

Platform Reach:
This isn’t going to work perfectly on all platforms from day one but we want to provide a system that is both powerful and flexible. If you are targeting high end PCs and consoles, we want to give you something that can let you stay ambitious and add detail while providing a framework that can be adapted to your needs. If you want to target mobile, Switch, or Quest, it needs to be able to be pared down or modified to adhere to more stringent optimization processes. Our intent is to give you a system that can be adapted with global settings to quickly customize your scene to build for each platform.
mobileTest3

Questions:
How do you feel about these details for the creation tools? Initially this may seem like a much different system than Terrain and may not have all of the features you expect.
How do you feel about the underlying technology? Do you anticipate still needing more?
What are we not talking about here that concerns you most?

Release timeframe:
While we have been developing this system for quite some time, we weren’t able to include all of this in Unity 6. However, we are hopeful that we will be ready for the generation after that, and look forward to making this broadly available. We will keep you posted when we have a more concrete release schedule.

Ongoing:
We’re extremely happy to finally reveal more information about what we’ve had in progress but we’re still just scratching the surface of what we assume is needed to address everyone’s needs. We will do your best to take and log feature requests and keep our roadmap updated. I’ll be updating the current roadmap to reflect all of these changes listed and adding new items for consideration and as ‘in progress’ as we move forward from here.

Thank you!
For keeping an eye on these posts and for all of your feedback and help over the past couple of years. Special shoutouts to: @jalbastefan828, @PaulMDev, @AdrielCodeops, @mgear, @MechaWolf99, @useraccount1, @Jack_Martison, @jwinn, @sarbiewski, @jbooth1, @MrPapayaMan, @LumaPxxx, @JaredMerritt, @Rowlan, @asiertroiti, @ZhavShaw, @Redrag0n, and @SapphireGames2025. All of your comments, feature requests, and feedback have been extremely helpful! I will continue to log your feedback and feature requests as part of our product backlog. If you’d like to do so more directly yourself, please do that via our product roadmap.

This system has been a very long time coming and has a long way to go to being something every Unity user can take full advantage of. We sincerely appreciate all of your patience, support, and passion for using the Unity game engine.

Eric
Product Manager, Worldbuilding

31 Likes

Thanks for update. Will we be able to place grass and vegetation on any 3d model or only on terrain? Is new tesselation system based on concurrent binary trees?

2 Likes

Hi @Onigiri! In this new system grass and vegetation will only be for the terrain, not any mesh at least initially. And yes, the tessellation is using the concurrent binary tree method presented at SIGGRAPH in 2021.

1 Like

What about World Creator? World Creator is awesome.

Thank you very much for the tag, much appreciated :slight_smile: I take it you also looked at MicroVerse.

My most important request apart from the technical things is this:

Do you have an interface for publishers with which they can plug their content like this?

I mean, I enjoy creating those, but I rather have others do that and buy it and focus on content creation :slight_smile:

I guess you know the bar, but here it is: 60 seconds :smiley:

This makes the hard requirement for publishers to create a demo scene rather redundant. It should be a requirement to have a pluggable asset to a common system.

It would be nice to get more details about how users and publishers can interface to that new system.

1 Like

How will splines find usage?

1 Like

Will we have support for large world coordinates like in other engines?

@rowlan, all good points and feedback. Yes this system should work with any tools like World Creator that can generate a heightmap or export scattered objects as a point cloud but we haven’t tested all of them yet. We’ve looked at Microverse and Procedural Worlds’ Gaia a lot and we want to empower creators like them and yourself to build on top of the new system and not be limited by the constraints of the existing Terrain system.

Splines integration is important and we still need to do more work on that so we can’t commit to it being part of the initial release but we do understand how important it will be for everyone. It is certainly in our backlog and I will likely add it to the public roadmap so folks like yourself and others can give us direct feedback on what they want most from splines.

@bb8_1 , we also understand that large world coordinates are critical but they also may not be part of the initial release. It is also in the backlog and we may need to add it to the public roadmap as well in the near future.

We appreciate your feedback, interest, and patience! In general we want to make sure the foundational tech is in place, configurable for some of the most common use cases, and that the runtime builds are performant on key target platforms first and foremost or the best tools and workflows won’t matter. We also know that our system has to work with other core systems like lighting and physics, and other Unity tools like SpeedTree. The tooling and workflows are also important as well but they can’t super cede core tech and cross-Unity integrations.

7 Likes

This is a great step in the right direction, and I’m glad to see you and the team are still just as invested in bringing us modern terrain solutions. Unfortunately we’re not using Unity for our title anymore due to the timelines for our business, but this is moving in the right direction to start matching other engine’s capability.

Looking forward to seeing what you and the team build, and I hope management are heavily invested in the much needed renovation here. Fingers crossed we’ll be back one day for our internal titles!

3 Likes

One more regarding interface: What Unity lacks is a global means to determine time, season, weather, wetness, etc.

Just a common interface to which other publishers can attach to. However that all is rendered is the publisher’s thing. But some global datastructure from which one can derive such data would be nice. Of course per volume (eg for caves vs outside world)

2 Likes

Great update, and glad to see the environment system moving forward. Couple of things.

  1. It wasn’t explicitly clear to me, is this a new terrain system ‘replacing’ the current Terrain component and TerraData asset? Is it a ‘backend’ change only? Or…?
    1.1. Is this terrain making use of the octree terrain renderng tech that was shown of at siggraph a number of years ago?
  2. This might be cleared up in the roadmap talk. But I see there is scattering now (yay!), how detailed will the masking be, like can we have moss meshes only around rocks that are in rivers for example.
  3. Are things like biomes/ecotops going to be supported in some way in the future?
  4. Wasn’t super clear just from this, is the new system more stamp based then?
  5. I think it is kind of off topic for what you are shoing. But I would second what Rowlan was saying, that having some sort of centeral interface for ‘global’ managers would be super nice. Both for use per-project, and for asset publishers to have a centeralized location for these things. Could be good for putting some Unity things there too, like the directional light(s) and global volume. But again, feels low priority compared to all this terrain stuffs.
  6. Something someone else mention some what. Being able to scatter on top of meshes is really important. It is super common to have meshs for cliffs, and being able to seamlessly scatter grass on them is super important for making them seamleslly blend in. Otherwise you have to go and manually place or paint on the grass and other vegetation.

Hey
First, Im happy to finally see a production usable terrain solution in Unity
Im a technical artist and did a lot of research on terrain over the years.

Some random thoughts from me:

  1. RVT / Deferred virtual terrain rendering seems to be the future all companies aspire to go towards. (Call of Duty, U5, World of Tanks etc etc)

  2. Shader graph usage and texture blending is key

  3. On the presentation I saw a noise scattering function. That seemed way too simplistic and not thought through. Vegetation is not binary and noises need falloff, scaling down at the edges to scale down the vegetation at borders, different ones at different ranges etc.

  4. I think the much smarter approach is start with a basic graph based scattering system which allows simple scattering based on conditions: terrain w terrain layers, splines, meshes with certain layers or distance fields and which can be expanded later. Many games need procedural generation based on certain rules but it dosnt have to be as expansive at first. Just start with some generic scattering UI based on a solid masking system. The scattering is almost always the same just the masking changes. Thats what I would do, and this has a lot of usage outside of terrain. Scatter dust on a cinematic jacket. Scatter flowers on a brick wall. Scatter rocks around a path. Scatter trees on a terrain layer, masked by a distance field.

  5. I think most games could benefit a lot from a arbitrary values mask similar to a RVT which can be used to drive damage, or contact effects or craters or whatever.

  6. Shader graph will finally need to get named reroute to keep order in the layers

  7. Make sure you have branching of terrain layers in shaders in the example so people dont render a billion samples all the time like in the classic terrain shader

  8. One major limitation on Unreal terrain stamps is that they only stamp height. If a terrain heightmap stamp could include extra channels for AO, curvature, splat map, that could massively increase stamped terrain quality.

  9. Frostbyte uses terrain decals which add height into the heightmap. This is extremely powerful so you can add a tire track decal, or even explosion decal, and it will stamp into the terrain, while the decal contains high res normals and custom shaders. If a terrain stamp could include extra data, this would not be that much needed anymore however. However the decal buffer allowing to write into shader graph like its possible in unreal could be extremely powerful.

  10. Terrain layers were clunky in the old system and very convoluted. I massively prefer to just have a terrain shader with slots and that is, but I can understand how this can get too long. Im not sure what the best solution is for many terrain layers. Best practice for us is to split the terrain into chunks and use X layers at max and have 1 layer be the baseline blending layer, instead of trying to have a enormous 12-16 layer shader which has terrible performance and is super clunky. So Im not sure which road you want to go with layers.

  11. Think about better way to pack textures. 3 textures for a layer are unneccessary. Texture A = Diffuse + Gloss, Texture B = Normal R, Normal G, B = AO, Alpha = Height. Reducing samples from 3 to 2 will reduce a lot of complexity and performance overhead, but is not really that common practice and triplanar node dosnt support it by default. It definitely give it a thought tho.

4 Likes

If i’m understanding their plans correctly, it sounds like you might be getting into the weeds a bit much here, though plenty of these insights are applicable, for sure.

By integrating Shadergraph and focusing purely on base functionality they are leaving the door open for whatever the future might entail. Maybe there’s a revolutionary external modeling system that they can hook in, or maybe they decide to go this or that direction with their terrain detail methods in terms of sculpting and texturing as well as foliage propagation. This is great, because a lot of terrains end up with built in and lackluster shaders and some dull blending methods between the usual splats.

We could brainstorm some new systems right now that would make prior terrain setups overdesigned and redundant.

(I would LOVE to see some universal painting tool that allowed us to paint the vertex channels of assets in real time, for both the terrain and other assets, we could do so much cool stuff with this, but that could lead to a massive tangent about deformable terrain and meshes and such. Imagine putting a shed on some terrain and painting some dirt with a single brushstroke that covered both assets in the editor)

There are a multitude of ways you can go about generating terrain materials and blending, some are splat map dependent, some are dependent on normal facing to emulate erosion, you get the idea. Unity is an engine that’s used for a multitude of game types and there isn’t really as much of a one use case fits all like in Unreal which is predominantly FPS based.

I’m glad to hear they’ve decided to simply focus on the absolute bare bone features. Get it performant, get it expandable. There is absolutely no way they can go wrong building that solid core from which they can expand on later, and in the meantime, that means we can go nuts creating all sorts of advanced terrain shaders with shadergraph knowing that functionality will carry over in the future.

I find it interesting they’re not including speed tree in this post, but I also find it refreshing that they’re not letting other aspects of their engine interfere with their pipelines, they’re seemingly just building up this asset in a vacuum to be as performant and usable as possible, and that’s awesome to hear.

My dream would be terrain is just super pliable and usable and easily duplicated and rotated and used almost like putty with tons of scalability and chances for cool plugins and mods to make it useful in all sorta of ways. So basically the easier they allow us to stitch terrains together, and weld height maps and all that would be great.

1 Like

With the system being ECS based, does that mean it’s incompatible with GameObject physics?

I’m 90% sure I heard that in the future 7 release even gameobjects will be inherently ECS

Read up on the changes coming to the underlying Transform/GameObject system.

1 Like

Read up on the changes coming to the underlying Transform/GameObject system.

That doesn’t answer the question. PhysX and Unity Physics are two separate physics engines that can’t trace one another’s colliders. Currently, ECS entities cannot have a PhysX collider representation, and we can’t control the Unity Physics engine without almost every bit of code in the project being ECS (which would slow down development tremendously).
I see nothing addressing that.

As it stands, you’re either using PhysX which means entities can’t have colliders, or you’re using Unity Physics, which means the majority of your code will need to be ECS. That’s an awkward situation that needs to be addressed.

What are we not talking about here that concerns you most?

What about world streaming?

Will there finally be new built in vegetation shaders for the SRP’s like the BiRP Nature shaders?

Will there be a way to disable smoothing for terrain and have it in a nice styleized low poly terrain?

Are there plans for voxel terrain?

I saw in the keynote that the terrain adapted automatically based on prefab placement (when the house moved trees and snow disappeared) is this something similar to Unreal’s PCG or something completely different?

1 Like

Do we have something similar to Unreal procedural generation with graph tool system, since we have new graph tool foundation I hope unity worldbuilding would have same system

1 Like