I am working on a game that requires a 16 km landscape. My goal is to optimize it as much as possible with my current constraints. The landscape cannot be sliced into smaller sections due to the nature of the simulation game. I am using about 8 textures total on the terrain.
heey, got a couple of questions. So what are your constraints? Why can’t you slice it? Did you try world composition? What is the performance issue why you want to optimize it?
If you can’t slice it, the only way to have a fast landscape is to reduce resolution and textures. But I think you should look at world composition. You can always underlay a low res landscape which is big enough to cover horizon and use WC to have some more detail when you are close.
Thanks for the reply Millionviews! There are programming constraints. It’s an animal simulation game. The group I am working with wants to keep the world from being sliced because many of their animals will fall through the world and they don’t want that to happen. I told them if I can’t get it optimized without slicing that they will most likely need to load sections of the game with animals spawning with the terrain via code.
The game runs very slowly, close to 5fps when the terrain, tree’s, and textures are applied. The tree’s use really good LOD so they don’t put too much strain on the game. I have been looking into the world composition for the past 30 minutes or so. I am still trying to understand what it does. It looks like it allows you to place maps next to each other or under each other. Is there any else specifically in WC I should be looking at?
Why not just have multiple groups of animals, one assigned to each landscape slice, that don’t cross over into other slices? If they’re all in their own sub-map and use world composition, it should work, even if there isn’t -any- reason why the animals should fall through the terrain when crossing over a barrier. AI and players cross landscape barriers all the time, that doesn’t sound normal. Worst case, of course you can just throw down some static meshes to cover up the transitions between different landscapes and have them walk over that for those areas.
5fps? What are your hardware specs? WC is great, it allows you to import a tiled landscape to cover a very large area. E.g. 16km is large. Software such as World Machine can export to tiles. You just have to enable world composition in UE. It loads pieces of the landscape based upon where you are. That animals falling through…yes, if you spawn animals on an area where currently no slice has been loaded, they indeed would fall through. I would add however an invisible large landscape with a much lower resolution. However, if the resolution is too low and the resolution of the slices are too dense, in other words, if the two resolutions are way too off…: Animals would walk on air or go through a detailed landscape. On the other hand…that other solution provided here sounds good also. I doubt if you can see animals that far away where currently no slice has been loaded.
Check out these documentation for more details:
Loading a complete world in one take is an incredible difficult task, I am not sure if you ever can load 1000 walking animals in one shot. So you have to find some way to load detail stuff in close front and do some fake stuff at far distances.
If only they would release the info on how they did it for Kite Demo … @anonymous_user_6a8a2bf6
16km single player game should be ok, unless, you are trying to load in all 8k textures. Finding the part that REALLY giving the GPU a hard time would be ideal before making any jumps to lower quality. Is it the grass? the meshes? if its not LOD on the trees, we can ignore that one. What exactly is causing issues? 5FPS is 100% unplayable to anyone. Did you set all the culling dist to like 1,000,000 ?
I have a hard time seeing that it would be just the materials, unless, you were using 8 8k materials to do all your landscape, then, allowing 100% detail to be seen from max distance. I would think you would have to set the landscape (and materials, and foliage, water and sky) to “max detail no matter what” to get 5fps. Thats pretty low.
Yeah probably. I don’t think it’s obvious tho. There was a ton done in straight cpp. I tried to adopt the deer and the AI for the deer as well, that proved to be something a lot harder, and deeper, then just “migrate this”. I gave up on that kite demo a year ago lol
Wow! Sorry for not being very responsive! I got really busy! @Daniel.Wenograd - The programmer I was working with did not want to do that at first, but after poking around and talking to him more he’s going to change a few things on the code side. I will also be using WC now that I watched a few tutorials and the programmer is on board with loading the animals in chunks. @Millionviews - I have 8 gbs of ram, gtx960 graphics card, and an I5. Other than the massive 16km square terrain bogging everything down the lighting is an issue. It’s 100% dynamic lighting. Once the terrain is optimized I’m going to look at how to optimize the lighting. But, we were doing a 1 load instance which is why everything was super slow. @Angrytoilet - I am pretty sure I have identified it more as a lighting problem. The game features dynamic day night cycles. So when all of the trees, grass, rocks, etc are place it creates big problems because it’s calculating the shadows in real time. The other big problem was that we were loading the 16km squared landscape all in at once. Now we are going to chop it up using WC, which will greatly help.
I really do appreciate all of your help I’ve gotta tinker around with it for a few days to see what I can do. Thank you!