v1.2 released
Latest plugin and sample project are available both in the OP and in this link:
There’s a ton of tweaks and bugfixes in this (git commit). Changes include, but are not limited to:
-
Major bugfix: Hash comparison in dynamic task scheduler is fixed to account for unrelated meshes using a common cache key. Unrelated tasks were previously getting mixed up because of this bug!
With this fix, the moving glass panels example in the sample project should now be “near perfect”. The rocket dodging example is still rough around the edges (so there’s still further scope for improving dynamic collision handling) -
Major usability feature: Automatically teleport pawn to a nearby “good” location for cases where the pawn is starting pathfinding from a spot where initial collisions are indeterminate. Goal vector will also be automatically tweaked if it happens to be in a “bad spot”. This should help new users in getting their initial testing going with fewer hitches. You can disable this behavior under query params by setting “FlexibleOriginGoal” to false. Some of the older rules still apply - if your pathfinding goal or origin is very near the floor then your queries will either fail or time-out.
-
4.11 should be working fine now (I haven’t tested this myself, so please let me know if it still doesn’t work for you!)
-
Improved logging: Prevent log spam by memorizing known “bad queries”, other general improvements to logging
-
API signature change to “ScheduleDynamicCollisionUpdate” to allow users to disable caching altogether. This change is not backward compatible I’m afraid. C++ users should update existing calls to this function accordingly.
-
Stability v/s Performance compromise in favor of stability: several VolumeAtUnsafe lookups have been replaced with VolumeAtSafe. Plugin users now need to worry less about triggering certain edge conditions which may lead to crashes, at the cost of a small amount of performance.
-
Animation states for your pawn can be easily updated now using new callbacks: Locomotion Start/End/Next/Abort. Implement these as part of the IDonNavigator interface.
-
Navigator interface now exported properly as part of DONAINAVIGATION_API
-
You can now disable cache usage completely for dynamic collisions by passing DisableCacheUsage as true to the scheduler. This is important for some situations where you cannot reliably use the mesh component (or a cache identifier) as a unique key for your mesh and you’d rather not bother with caching at all.
==
Just so you know, I’m not actively working on new features for the plugin. However whenever I find things that my own game needs in the plugin then I try to improve or fix what I can at that time.
Let me know if any links aren’t working! All this bumping of versions, uploading stuff and testing links is more finicky than I could have ever imagined before