I’m releasing a kind of open-world expansion for my game. Previously, I had used landscapes that were mostly 255x255 or maybe smaller, and I would have LOTS of small levels that I would stream in and out as the game progressed. But for the open world, I’m starting with a 2017x2017 landscape, and I’ll probably have several of those, and I’m sure that if I build lighting on it, the package will swell to several gigabytes. I could probably break the landscape into smaller streaming levels, but then would I also need to move all of the foliage and manually placed actors into each individual streaming level?
I like the way UE3 levels look after building lighting, but with all the added complications of building a huge world, maybe it’s better if I just skip the lighting build (which I think is how most of you deal with it). But then when I play the game without building lighting, then I don’t see any shadows on anything. Is there a way to get dynamic shadows from all the static stuff on my map? How did you do it in your games?
(Once again, this has nothing to do with UE 4-26, but I can’t post my question without it.)
I stopped using static lighting when I started the game and the map was 2.5 x 2.5 km and the light build times were exaggerated.
Now the map is 10 x 10 km and everything uses dynamic lighting. Static meshes cast shadows, you just have to set in their properties to work with dynamic lighting. And disable the Lightmass in the world properties.
You probably will need to use cascade shadows in the dominant light, and find good values for that, with a max distance. So your distant objects will appears without shadows.
Problems… the result is not so pretty, the shadows are flat. FPS dropped by half.
But you can get good results by playing with the posprocess and lights, with the upper and lower light of the Skylight. And the FPS can be enough for the game to run fast,
If you split the landscape into streams, you will have to use a foliage tool for each stream.
The actors can be easily moved by selecting them and from the list of streams, moving it to the desired stream.
I use a one-piece landscape, because I wanted to have views of the entire map from high places, and UDK handles the landscape mesh really well.
The streams levels are loaded on top of the landscape, cities, towns, places, etc.
For foliage I use foliage tool for trees, but with a script that hides the far clusters, because it seems that UDK hides them with MaxDrawDistance, but these way shadows are still projected and slow down the game a lot, even if the cluster is far and hidden, out of the light shadows range. I published the method here time ago.
For grass I use a script that spawn the grass around the player. But I need to improve it a bit.