Ask Unreal Anything: World Building | August 23, 2022 at 12PM EDT

QUESTION: Are there new training videos being planned for the new open world tools - specially pertaining to achieving a good performance for current gen consoles?
(specially interested in workflows that take landscape brushes/water plugin and world partition in consideration)

2 Likes

+1 on this. I am using a combination of ZoneGraph and Recast Navmesh (https://twitter.com/royaldivisiong1), but to be honest I know I’m not doing it the most efficient way.

1 Like

Question: With reference to future World Building Tutorial Videos(or any UE5 tutorial videos) - Will these videos be a properly structured instruction series of videos starting from a complete beginners point of view right through to the most advanced usage techniques of World Partition rather than a group of guys/girls talking about the subject in general & then answering a few questions? I believe structured videos actual teach, the other simply provides a general overview of a features capabilities only useful to those already relatively proficient with such features, in my opinion. :slightly_smiling_face:

4 Likes

Question: After converting our level to world partition we noticed a large increase of waiting-time when entering play mode.

Prior to world-partitioning it took us 3 seconds to enter play mode but it now takes almost 14 seconds. Our world is not crazy large but we’ve heard from other developers having to wait more than a minute before entering play mode.

Interestingly there doesn’t seem to be any improvement whether we unload all the cells prior to hitting play or not.

So our question is: How can we improve this latency delay (which is starting to become a workflow hindrance)?

Dedicated forum thread here

1 Like

Such an interesting topic with so many challenges, not quite sure where to start.

The worldbuilding team seems to pack a couple decades worth of experience doing large open world games notably on Ubisoft’s games, which is probably one of the studios with the most expertise in the genre, looking forward to those answers.

Topics that come to mind are authoring/populating/efficient storing: what should we store, generate? Point Clouds everywhere?

1. Is heighfield based landscape rendering still relevant for high-end platforms in 2022?

Beyond the inherent challenges of streaming and rendering at scale, we have seen new behaviours emerging with UE5 notably within the demos put together by Epic, in which open worlds end up being made of tiles of bashed together photogrammetry’ meshes.

Even organic terrain rendering which should be the predilection application for traditionnal heighfield based landscape rendering, ends up overshadowed by the amount of details generated by such an approach, which could fairly well be expanded to any scale.

Any plans to create tools to help create such a new terrain format, creating tiles of meshes and computing their agglomerated collision(marching cube?) within a certain area?

2. Will Unreal Engine have the tools to populate at scale?

The Matrix demo was fantastic and really highlighted how important third party tools like Houdini are to generate that much content at scale, from the city structures, roads, to populating parked cars etc… I there any plans to create some tools to help authoring and populate at scale without relying on third party tools?

3. Anything to look forward to that you can share with us for the future of Unreal 5 ?

Thanks!

Bonus Question: Why does most open-world game nowadays still feel incredibly static: why can’t we break buildings everywhere, dig holes in terrain when our cars explode or our grenades explodes (i am thinking Ubisoft games open-worlds here). Is it purely a design decision?

4 Likes

Hello, thank you for this opportunity, this AMA is very timely and much anticipated!

Q1. Would love to hear a solid best practice, current tech answer for the road shading on very large terrains, is it megamesh like you did with Matrix highways or mesh projected RVTs or something else ? Open world, lots of different road type with current ue5 systems.

Question: Is the Water Plugin currently in development? Will it be finished/made production ready - meaning, can we expect it to be taken forward and be compatible with the other open world tools in unreal 5?

2 Likes

Question: How can DataLayers and WorldPartition help if you want to build a procedurally generated terrain?

Seeya soon… but how do I join?

3 Likes

Q2. Would like to ask for a best practice as far as resolution goes for a single terrain tile, because we are using a Houdini based pipeline, and I can chop the initial terrain into any number of streaming proxies and push resolution as much as we need, but I would like to understand what are the limitations or best practices/adequate numbers ?

Q3. Do you have plans of releasing Rule processor as a integral part of UE? For a Houdini pipeline mirroring your Matrix masterpiece it is pivital.

Ok, I have a proper question this time about virtual heightfields.

As far as I can tell they can only be displaced on one axis (via world height) which is fine if you’re doing a planar environment. But let’s say you were “hypothetically” wanting to do something more spherical in nature that was totally not connected to a specific project…

is there any way to displace them on more than one axis without screwing up the LODing?

1 Like

Afternoon! Appreciate you taking time to do this. I’ll keep it quick.

What is something you’re excited to see more of in upcoming updates in regards to creating large procedurally generated environments?

With how advanced programs are getting and the implementation of other programs with UE, Project Titan for instance. It’s very exciting to imagine what the future holds for world building. Appreciate all your hard work. Cheers!

The same problem exist with standard level streaming, e.g. when unloading a sublevel you’d lose all changes to actors in that sublevel when reloading it. Right now, nothing exists to automatically support such persistence, but a solution would be to be able to tag specific properties, and serialize them on sublevel unloads. Then, when a sublevel loads, we’d lookup into a map to see if the currently loading sublevel has serialized persistence data. This is similar to what a save game system would do.

1 Like

With World Partition and OFPA, having people conflicting with each other while working is more a fear that a real life issue. The way projects and people organize themselves, you don’t steps on each other toes. When that happens, you will have a conflict at the submit point. For a project, the source control we use internally is Perforce. If this question is more about Multi-Users (feature from Virtual Production, we have not started to look into this one yet regarding his interaction with World Partition).

2 Likes

Same here. How do we join the session? There’s no link to be found…

Navmesh support for partitioned worlds is in active development as we speak and the plan is to stream navmeshes on the grid. Static navmesh streaming is experimental in 5.0 and we plan to add dynamic navmesh (also experimental) in the next release.

1 Like

You’re here! This is a text-based AUA - the team will be answering all of your questions specifically here in this forum thread. :slight_smile:

1 Like

We could provide an event, but for spatial queries, we would need to specify whether the query is for a static location or a dynamic location (i.e. if it’s linked to a moving streaming source or a moving player that are providing the query position).

1 Like

There’s not short-term plan to support that. The main reason is that the actors streamed-in by world partition are part of streaming levels. Moving the actor into a different level at runtime would require to persist that information, also loading the actor at a new location would require to partially load levels, which is not supported. Also remember that unloaded streaming cells have an HLOD representation, which will include the actor that you want to dynamically move elsewhere.

This could probably be achieved with your own system spawning the “dynamic” actors based on the player position.

1 Like