DSN Release Notes
DSN Plugin v1.3.5 [Patch-2024.09.02]
Fixed
Memory leak related to tracking paths
Crash that could occur in packaged builds when cleaning up nav data
Rare crash during component updates
Bug which could cause various AI re-pathing issues
DSN Plugin v1.3.4 [Patch-2024.08.06]
Added
CanReachTarget function to test if a target can be pathed to
Can be expensive as it will perform a pathing operation
GetPathToTarget function which returns raw path data to a target without moving
Can be expensive as it will perform a pathing operation
EnhancedNavModBrushTest property added to SurfaceNavProxy
Improves handling some types of nav modifier volume brushes
Changed
Slightly decreased memory usage by splitting the nav point object type into 2 different object types
Minor improvement to pathing algorithm when dealing with nav modifiers
Fixed
Bug related to AI not using valid nav links
Bug related to finding the closest start/end points during path finding
Bug related to pawn’s offset location being calculated incorrectly when pawn is scaled
Crash that resulted on client when joining a server or when server shut down
DSN Plugin v1.3.3 [Patch-2024.07.13]
Added
Support for origin shifting
Property in SurfaceNavProxy to show debug stats
Changed
Moved resource heavy logic to background threads
This means you have more of the main game thread available for other work
Improved navigation generation performance when moving a nav mesh volume such as to track onto a player
Decreased r/w lock instances by moving nav point lock to the owning nav block
Too many locks caused problems with some platforms
Fixed
Rare crash when attempting to find closest planet for navigation
Crash that could occur when deleting a SurfaceNavPawn from the scene
Bug related to invoker component disappearing from actors when opening the project
DSN Plugin v1.3.2 [Patch-2024.04.19]
Added
Option to Show Where Navigation Ends
This will help identify problem areas that may need adjustments
Added blueprint node to get a random reachable point nearby
Added blueprint nodes to move to a random point nearby
Added behavior tree node for moving to a random point nearby
Changed
Minor adjustments to some blueprint function categories
Fixed
Fixed uncommon issue where nav point normals could be flipped on very small geometry
Added defaults for some structs to get rid of uninitialized property log output
Bug where navigation wasn’t generating on certain types of collision that it should detect
DSN Plugin v1.3.1 [Patch-2024.03.28]
FIXED
Bug which caused an ensure test to fail when iterating over a nav link array.
This bug would force a breakpoint when debugging, but would not crash.
Compile error when building against UE5.4 Preview.
DSN Plugin v1.3
Added
Linux support!
Ability to control trace profile (or channel) used for generating navigation.
Functions to allow dynamically disabling/enabling of DSN plugin's navigation generation.
Ability to control min/max navigation data to process per tick.
Ability to offset the generated navigation to better control the alignment in your level.
This will especially benefit blocky/voxel worlds.
Ability to apply pathing expense multipliers per pawn based on surface angles.
e.g. It could be more expensive for your pawn to go climb a wall vs walking around it on the ground.
Visual indicator for a pawn's navigation offset location will now show as a small blue wire sphere.
This is shown in the level editor when you select the pawn or in BP editor viewport for the pawn when selecting the movement component.
Control how far the AI can be from navigation and still successfully path.
Pathing attempts will fail if pawn is beyond this distance from any DSN navigation.
Inside corner assist which will help decrease pawns floating over inside corners
Ability to configure your pawn to dynamically decelerate when approaching an inside/outside corner or turn.
Custom Surface Nav Pawn which is pre-configured with correct movement component.
Functions for getting raw DSN pathing data from within the pawn's controller.
Events in SurfaceNavPathFollowingComponent to get notified when certain pathing data changes.
Function to get the approximate length of the path between 2 locations
Changed
Using bit fields in some heavily used objects to slightly decrease memory usage.
Parameters used for pawn movement offset which will give more granular control.
Be sure to update the new parameters in your pawn so the offset is as expected.
Navigation generation no longer relies on block size and, instead, uses grid point distance and a grid point count to determine the size of the block.
In prior versions, the final calculated grid point distance could be different than what was provided to force it into the block size.
Increase max value of CleanBlockInterval from 10 to 30 which helps to prevent blocks from getting cleaned up prematurely in cases where navigation generation could be lowed such as drawing a lot of debug data.
Changed the name of an async blueprint pathing node from "Move To Location or Actor" to "Surface Nav Move To Location or Actor" to remove confusion as the name conflicted with a native UE pathing function.
Improved the dynamic braking algorithm instead of needing to use fixed braking distance.
Improved how AI pathing debug data is displayed.
Now only shows the active path and will highlight current target point as yellow.
Fixed
Bug where a pawn could use the wrong nav point acceptance radius for a nav link in a shipping build
Pathing bug that could cause the pawn to choose a less efficient path in some circumstances
Bug related to nav links which could cause a crash in certain scenarios
Known Bugs
While in editor mode, navigation is not updated while moving/scaling/rotating nav modifier volumes.
Workaround: Within SurfaceNavProxy, use the "Surface Nav Rebuild All" button.
Ensure condition failure in Array.h related to nav link logic which can lead to forced breakpoint when debugging.
You can continue through this breakpoint and keep running
Much stress testing has been done with no actual crash
A patch is in the works for this issue
DSN Plugin v1.2.5 [Patch-2024.01.12]
FIXED
Bug when AI would re-path and wouldn't always use the correct starting point for the path under certain conditions.
Bug which could affect AI movement over basic nav links.
DSN Plugin v1.2.4 [Patch-2023.11.15]
FIXED
Crash when using this plugin's EQS cone generator with certain parameter values
Rare crash due to race condition when unloading a world or streamed level
Issue where navigation would not build on BSP brushes
Limitation: Changes to brushes do not trigger automatic navigation rebuilds so you must use the Surface Nav Rebuild All button on the proxy after moving your brushes/resizing
Errors when building/packaging for Linux
I have not done testing of the plugin in Linux, this is just early work getting it to build for when I'm able to test on Linux
ADDED
Advanced parameters added to SurfaceNavProxy to control the shapes the plugin uses for testing overlaps
It came to my attention that certain versions of UE have inconsistent results with sphere overlaps on landscapes so I added this option in case it's needed.
DSN Plugin v1.2.3 [Patch-2023.10.22]
FIXED
Bug where the Surface Nav AI MoveTo function would repeatedly trigger the on failed pin
Packaging errors
DSN Plugin v1.2.2 [Patch-2023.10.09]
FIXED
Crash related to nav links being moved around or removed from the level
Crash when running game as standalone
Occasional crash when a level is unloaded
DSN Plugin v1.2.1 [Patch-2023.09.19]
FIXED
Bug where navigation would not generate correctly for large coordinates within a large level.
DSN Plugin v1.2
Added
EQS Support
Requires use of DSN generators
Some built-in EQS tests will work, but there is a DSN specific test for pathfinding
Support for visualizing navigation data in-editor, without running game
Properties to control display of navigation data
Properties for better control of various timer intervals
Properties in Surface Nav Movement Component to give better control of how to get over corners
Changed
Slight performance improvement to navigation generation
Slight performance improvement to pathfinding
Slightly decreased memory usage
Removed block pooling as block processing is faster now so no longer needs to be pooled
Removed properties which are no longer used
Available input parameters changed for the Draw Debug Nav Data function
Migrated navigation generation logic from SurfaceNavBuilder to the SurfaceNavigationSystem
Replaced Surface Nav Grid Builder with Surface Nav Proxy to better match the role it plays now
Surface Nav Grid Builder still exists in this version as to not break existing levels
Changed the way nav point normals are determined which will help with min/max angle limits
Fixed
Multiple bugs related to rare crashes
Bug related to incorrect navigation generation under certain conditions
Bug related to navigation and pathing when using angle limits on rough terrain
Bug related to crash that could occur while physics simulations are happening during navigation generation
Bug where UE native navigation progress could stall and never finish
Known Bugs
While in editor mode, navigation is not updated while moving/scaling/rotating nav modifier volumes.
Workaround: Within SurfaceNavProxy, use the "Surface Nav Rebuild All" button.
In UE5.3 the visualization of the nav data is not fully drawn on screen.
Moving around will show different parts of the navigation, but is not fully displayed.
This only affects navigation visualization, navigation is still correctly generated and working.
In UE5.3 the visualization shows navigation on the other side of walls and other meshes instead of just the side the camera is currently on.
DSN Plugin v1.1.9 [Patch-2023.07.22]
FIXED
Bug when attempting to path find to a point under the navigable surface which would cause the pathing request would fail.
Bug when attempting to add invisible collision (ie: Collision Box) that should be navigable, but no navigation would be generated on the collision.
DSN Plugin v1.1.8 [Patch-2023.04.08]
FIXED
Issue where the AI can approach a destination actor using the wrong offset location which can lead to undesired results.
DSN Plugin v1.1.7 [Patch-2023.04.04]
FIXED
Issue where AI would try to choose navigation point on opposite side of narrow platform/wall
Multiple path following bugs related to the AI pawn and target rotations
This should improve final positioning when reaching a target, but may require adjusting existing acceptance radius settings within the SurfaceNavMovement component and/or on movement tasks (such as the SurfaceNav Move To behavior tree node)
CHANGED
Adjustments to demo projects to better work with path following fixes above
DSN Plugin v1.1.6 [Patch-2023.03.22]
FIXED
Corrected code that was not properly filtering out components related to Voxel Plugin 2.0 support
Issues with navigation generating on WorldScape collision (requires WorldScape patch to fully work)
Compile errors for UE5.2 Preview1
CHANGED
Version number of plugin shown in UE will now include patch number
DSN Plugin v1.1.5 [Patch-2023.03.02]
FIXED
Rare crash when quitting or changing levels
Navigation would not generate when playing standalone mode within editor
Multiple memory leaks
DSN Plugin v1.1.4 [Patch-2023.02.22]
FIXED
Multiple crashes when performing server travel due to race conditions
DSN Plugin v1.1.3 [Patch-2023.02.19]
FIXED
Issue where environment changes could lead to falsely marking parts of the navigation as invalid
Issue where environment changes caused some valid navigation to be left detached and unusable
Issue with bad navigation generation on UE landscapes
Crash due to race condition that was being masked by one, or more, of the above issues
DSN Plugin v1.1.2 [Patch-2023.02.09]
FIXED
Issue where surfaces at very specific locations may not properly generate navigation
This fix may also make the property "Magic Line Trace Offset" unnecessary.
Experimental corner adjustment feature not working correctly in 4.27.
CHANGED
Changed default value for "Magic Line Trace Offset" to zero since it may no longer be needed with the above fix.
If there's no community feedback about this, then I'll deprecate this property and eventually remove it.
DSN Plugin v1.1.1 [Patch-2023.02.03]
FIXED
Issue with behavior tree task "SurfaceNav Move To" when project setting "Enable BTAITasks" was not enabled
The above setting is disabled by default in UE4.27
Undesired behavior with path following when nearing goal actor that suddenly moved away.
DSN Plugin v1.1
FIXED
DrawDebugNavData function - Nav point neighbor direction lines weren't respecting duration time and would persist
Issue with navigation not generating on Voxel Plugin v2
Occasional crash when quitting game in PIE
Confirmation is difficult as it was very rare
Occasional crash when quitting a world made with Voxel Plugin 1.2
Confirmation is difficult as it was very rare
Repathing could cause some pathing parameters to be reset to defaults for repaths
Certain actor shapes/size/properties caused starting point of path to be on underside of a platform
Issue which could cause navigation to not fully generate if a condition was met.
CHANGED
No longer need to manually change the path following component to use the DSN plugin's implementation when using the SurfaceNavAIController
It is now handled automatically when using SurfaceNavAIController
Adjustments made for max pathing iterations
Max was increased from 20000 to 50000
ADDED
Can now set per pawn max iterations via surface nav movement component
Useful in cases where you only want smarter AI to be able to path find longer distances
Support added for UE 4.27
Now supports 4.27 - 5.1
Could not publish for 4.26 due to Epic requirements for max 3 latest versions for code plugins
Navigation can now generate without player in level when relevant setting is enabled in grid builder
May be needed in cases where dev would like to run simulation without a player
Added a Surface Nav AI MoveTo function
Async pathfinding BP node
Note: Using the Surface Nav Move To tasks within Behavior Trees still appears to be more performant
Experimental Features
Added properties to SurfaceNavMovementComponent which allows selecting more advanced rotation modes instead of just using the nav point's normal to determine rotation
Added properties to SurfaceNavMovementComponent to improve corner traversal