Hi, I am getting into creating open worlds however, I am not sure how the size of each tile affects the performance of the targeted platforms. I have seen the usage of 505x505 tiles as well as 1009x1009 . I am making a world about the size of 4040 in length and width. I am not sure which tile sizes to go for. Does this impact major performance overall? (I want the game to also play on low powered platforms).
I have the same question! Please, can somebody answer it?
AAA studios go for very small tiles such that all levels streamed at once resemble circle around the player. They probably stream 40-100 tiles at once and each tile is just 50-200 meters or so.
There was a stream from unreal engine YouTube page somewhere with developers explaining why they went for such a small tiles.
I don’t know for sure but it seems like AC: origins/odyssey and Witcher 3 do this in a similar way.
But if you think about it - it makes sense. As long as you go for tiled worlds at the very minimum you will be sometimes streaming 4 tiles at once even if you use very small streaming distance like <0.5 of tile side.
This small streaming distance will result in that sometimes you’ll stream 4 tiles, sometimes only one tile. If your tiles are big this will cause hitches, if your tiles are small you’ll have very visually jarring experience where portions of the map pop in and out.
With streaming distance around 0.6 of tile side you’re constantly streaming minimum 4 tiles, maximum 6. That’s probably the smallest streaming distance that might make sense for some exotic techniques like RVT where ue4 is limited to maximum 7 of Runtime Virtual Textures at once assuming you use single RTV for each tile.
But I experimented with this and it results in very noticeable “popping” of large portions of the terrain even if you hide it replacing landscapes with impostor static meshes. Maybe someone else can do it properly but I couldn’t.
Each component and each section is a draw call cost. And each tile likely cost even more than just the component(?) So it might make sense to use at least 4 components for each tile to have optimal balance between number of components per tile/number of tiles.
I think you’d want to have a balance between streaming hitches and number of components.
So for example something like streaming distance of 2.4 will have you stream minimum 25 tiles, maximum 31 tiles (if I’m not mistaken, i didn’t do math on this one). In worst case scenario 4 tiles have to be streamed at once.
31 tiles 4 components each is just 124 components total at any given time, - so you’ll be fine in terms of draw calls, but how big will those hitches be when player streaming in 4 tiles in a single frame? These tiles have to be as small as possible to minimize performance impact of streaming, especially for VR.
I wouldn’t go for anything bigger than 512x512 for a single tile (or 511x511 because ue4) 256 is probably better for this.
It would be super cool if one of smart developers can chip in in here.