This release brings the long-awaited capability to modify the Unreal's landscape at runtime!
Runtime Landscape
Errant Landscape 1.5 comes with a dedicated module for modifying the Unreal's standard landscape at runtime, as part of the gameplay. This feature allows adjusting the landscape's heightmap, weightmaps, and collision and can be used in multiplayer games.
It unlocks many new possibilities for game developers:
- Creating terrains procedurally as the game loads
- Altering terrain through gameplay actions such as digging, raising, and leveling
- Reacting to explosions, magic spells, and destruction
- Adjusting terrain for buildings and roads
- Compressing vast landscapes into small sizes by storing only the list of applied stamps.
Until now, implementing these features required switching to different landscape representations, such as voxels, procedural meshes or virtual heightfields. With Errant Landscape, these workarounds are no longer necessary.
Runtime seats
Adding runtime capability also meant expanding our licensing model. We introduced a concept of Runtime seats that are required when testing the game in the Editor. Importantly, we do not perform any license checks in a packaged game.
All existing users of Errant Landscape were granted 5 Runtime seats for each active Editor seat they own.
Learn more about Runtime Landscape.
World Partition Builder and Commandlets
This release comes with a World Partition Builder that allows performing Errant Landscape updates on build machines, through commandlets. It ensures the landscape is up-to-date with the changes made by multiple people in a large team. It helps resolve issues caused by uncommited landscape files or performing landscape scultping with certain regions unloaded in World Partition.
Improvements
- Landscape brushes can now affect multiple landscapes at the same time.
- Optimized performance of the Stamp Brush's Spline mode by avoiding rebuilding the Spline Meshes when brushes are rendered. Spline Meshes are now rebuilt only after their settings were modified or when the spline shape was changed.
- Foliage and Landscape Grass objects are now updated after Errant Landscape changes, on Errant Landscape editor mode exit.
- Blueprint API allows now any world context object to be passed instead of world. Making it easier to use in some scenarios.
Fixes
- Fixed height/normal artifacts on the borders of Errant Landscape updated regions.
- Fixed landscape changes getting reverted on the first save of a newly opened map.
- Fixed incorrect World Partition bounds calculations in UE 5.4.
- Fixed a crash when switching levels while mask/weightmap preview is active.
- Fixed drag & drop not working correctly in the Priority Tool.
- Fixed issue where Errant Landscape was taking unreasonable amount of GPU memory when exiting the Errant Landscape editor mode. It fixed certain out-of-memory crashes.
- Fixed cases where weightmap reallocation was missing, leading to glitches in landscape rendering.
- Fixed incorrect warnings about missing weightmaps.
- Fixed landscape updates ignoring requests for a synchronous/blocking update, which lead to issues with externals tools built on top of Errant Landscape.
- Fixed error messages shown when using a brush with landscape updates disabled.
- Fixed a crash in UE 5.3 when changing landscape layer in a brush actor in the Blueprint Editor.
- Fixed a crash when opening Errant Landscape editor mode on empty project with no map loaded.
Patches
1.5.1
- Added missing navigation system dirtying calls for runtime.
- Exposed runtime subsystem
QueueRender
to blueprints. - Fixed bug in stamp brush when switching from layered to single-layer texture mode.
- Fixed occasional crash on editor exit.
- Added missing support for multiple landscapes in the scaling tool.
- Unified cpp version used in modules to cpp20