A utility for fully recalculating terrain geometry is needed.

New Valheim update

Terraforming is just a huge performance hit currently, and clearly this stems from the fact that the base terrain is optimized upon world generation by storing the terrain in large chunks, rather than as individual voxels. When players break up those chunks to modify the terrain, the result is an exponentially larger number of terrain objects for the engine to track and render; often modifying the terrain is a bigger net increase in the number of instances rendered than the structures and objects placed upon it.

It seems like this could be corrected by an offline utility to rebuild the terrain geometry of the world file to reflect the players' modifications. This would be especially helpful for large builds where the players are done modifying the terrain; what is being represented topographically by literally thousands of objects right now could be re-optimized back to the hundreds that represented the same terrain on world creation.

Granted, players will still keep building bigger with the extra instances freed up, but right now even pretty modest projects can greatly affect game performance. Just flattening an area to farm it typically increases the instance count by more than the associated farmhouse and fences. That example in particular (e.g. a 10 x 20 flat box) has to be relatively easy to re-code as an aggregate.

I know they did a bunch of optimizations to the terrain code back in April (and I assume that using "optterrain" doesn't do anything anymore), but it clearly doesn't optimize terrain back to anywhere near its initial state, and it seems to be real time, which can't possibly be as thorough as an offline utility.

It would be a lot more enjoyable not to have to weight the impact of terrain modifications so heavily when building.

Source: https://www.reddit.com/r/valheim/comments/p716i6/a_utility_for_fully_recalculating_terrain/

leave a comment

Your email address will not be published. Required fields are marked *