You are viewing a potentially older version of this package. View all versions.
ontrigger-ValheimPerformanceOptimizations-1.0.2 icon

ValheimPerformanceOptimizations

Rendering, logic, and loading time optimizations for both client and server versions of Valheim.

Date uploaded 10 hours ago
Version 1.0.2
Download link ontrigger-ValheimPerformanceOptimizations-1.0.2.zip
Downloads 81
Dependency string ontrigger-ValheimPerformanceOptimizations-1.0.2

README

ValheimPerformanceOptimizations

Rendering, logic, and loading time optimizations for both client and server versions of Valheim.

Unlike other mods of its kind, VPO does not disable, modify, throttle or otherwise change vanilla behavior at all. Please note that I have not tested this mod on servers outside

You can use the mod on either the server or the client, or both, it should work regardless.

Changes in 1.0.2

  • New physics patch that saves ~50kb of allocations per frame

Changes in 1.0.1

  • Fixed certain objects being erroneously marked as transparent, causing them to fall through the floor

Changes in 1.0.0

Major rewrite for current Valheim:

  • Rewritten ZNetScene object streaming - no per-frame overhead when creating/destroying world objects when not needed
  • Burst-accelerated water wave jobs - cheaper wave math for floaters, fish, and surface queries
  • Burst terrain vertex color generation with fewer Color[] allocations
  • Modernized threaded terrain collision baking - less hitching while exploring
  • ZSFX optimizations for audiosources that keep playing while outside audible range
  • Light flicker culling - skip expensive flicker updates for point lights outside the camera
  • WearNTear support caching - slightly lower structural integrity CPU cost in large bases
  • Time-sliced reflection renderer - render cubemap faces over multiple frames
  • Prefab/particle cleanup - fire particles no longer render outside view frustum
  • Faster server-side ZDO ownership release scans
  • VisEquipment ZDO int caching and BinarySearchDictionary allocation fix

Rest of the changes can be found in CHANGELOG.md

Features

  • Rewritten world object streaming for less overhead when moving through the world
  • Burst-accelerated water and terrain generation
  • Threaded terrain collision baking - less hitching when loading new terrain
  • Structural integrity caching - better performance in large bases
  • Audiosource culling for distant looping sounds
  • Culled light flicker updates for off-screen lights
  • Time-sliced reflection probes
  • Particle culling / GPU instancing improvements
  • Faster server ownership handoff scans
  • Optional physics step cap for denser bases

Configuration

The mod config is stored in the dev.ontrigger.vpo.cfg file.

Most optimizations done by the mod do not affect the gameplay in any way, however some of its optimizations might cause compatibility issues with other mods.

  • Threaded terrain collision baking

    Experimental: if enabled, terrain collision is generated in parallel, which reduces lag spikes when moving through the world. If you see terrain disappear, please report it on GitHub; disabling this option will likely fix the issue.

  • Max physics updates per frame

    The engine can run physics many times per frame, which is often the most expensive part of Valheim. Lowering this (default 8, range 5–15) can significantly boost FPS in bases at the cost of less accurate physics.

Contributors

  • ontrigger
  • MSchmoecker

CHANGELOG

Changes in 1.0.2

  • New physics patch that saves ~50kb of allocations per frame

Changes in 1.0.1

  • Fixed certain objects being erroneously marked as transparent, causing them to fall through the floor

Changes in 1.0.0

Major rewrite for current Valheim:

  • Rewritten ZNetScene object streaming - no per-frame overhead when creating/destroying world objects when not needed
  • Burst-accelerated water wave jobs - cheaper wave math for floaters, fish, and surface queries
  • Burst terrain vertex color generation with fewer Color[] allocations
  • Modernized threaded terrain collision baking - less hitching while exploring
  • ZSFX optimizations for audiosources that keep playing while outside audible range
  • Light flicker culling - skip expensive flicker updates for point lights outside the camera
  • WearNTear support caching - slightly lower structural integrity CPU cost in large bases
  • Time-sliced reflection renderer - render cubemap faces over multiple frames
  • Prefab/particle cleanup - fire particles no longer render outside view frustum
  • Faster server-side ZDO ownership release scans
  • VisEquipment ZDO int caching and BinarySearchDictionary allocation fix

Changes in 0.7.6

  • Fixed conflict with SharedMap
  • Fixed pickable objects sometimes not visually appearing as regrown
  • Fixed camps never respawning enemies within them

Changes in 0.7.5

  • Jotunn is no longer required to use the mod
  • Fixed more EffectArea errors

Changes in 0.7.4

  • Fixed crazy spawnrates
  • Fixed being unable to breed animals
  • ValheimRaft compatibility (at the cost of performance)
  • Fix errors after logging out/quitting

Changes in 0.7.3

  • Another attempt at fixing the roof checks

Changes in 0.7.2

  • Fixed the 'Collection was modified' error
  • Potential fix for leaking roofs

Changes in 0.7.1

  • Fixed snow storm particles appearing inside buildings
  • Fixed being unable to sleep
  • Fixed other related AOE effects not working

Changes in 0.7

  • Optimizations for structural integrity
  • New object pooling system for build pieces - less lag when entering bases
  • New smoke rendering solution - less lag rendering smoke puffs
  • Snow storms no longer tank fps
  • Fixed grass not appearing in the main menu
  • Fixed objects spawning at 0 0

Changes in 0.6.1

  • Fixed an incompatibility with BetterWards causing mobs inside the ward radius to flee
  • Fixed the GPU being invoked on the server causing an exception at startup

Changes in 0.6.0

  • Optimized rendering of build pieces with straw materials
  • Rewrote the threaded terrain collision baking to use all cores (enable it in the config)
  • Fixed incompatibility with ValheimRAFT
  • Fixed crash when only terrain collision baking was enabled

Changes in 0.5.2

  • Fixed certain objects respawning upon relog

Changes in 0.5.1

  • Fixed certain objects disappearing

Changes in 0.5.0

  • Object pooling makes loading vegetation in new and old chunks much smoother

Changes in 0.4.2

  • Fixed incompatibility with EpicLoot

Changes in 0.4.1

  • Fixed optimized terrain disappearing upon relogging

Changes in 0.4.0

  • Threaded terrain collision generation
  • Threaded world loading
  • Smoke rendering performance improvements
  • Small memory allocation and performance improvements for chunk generation

Changes in 0.3.1

  • Fixed multiple crashes caused by logging out and back in into any world
  • Tiny performance improvement for comfort level calculation

Changes in 0.3.0

  • First public release