Bisect Actors - Level Debugging Tool
Bisect Actors allows you to find a single actor that is causing you headache.
It uses binary search which is a useful algorithm often employed for debugging. It consists of splitting a list of potentially problematic steps in halves in order to narrow down in which half the problem exists. When repeated, it leads us straight to a single step that was causing our issue. This approach in git version control is called git bisect, and searches commits.
How to set up
Make sure "Bisect Actors" plugin is enabled
Search for the "Bisect Actors Session" in the Place Actors tab and add it to the level
In the Details panel, optionally add excluded actors to ignore
types
actors
It might be helpful to add some lights and meshes there, as you need to see something to evaluate your problem, especially if you are sure that they don’t cause problems on their own.
Some actors like world settings, level blueprint, camera root, tracked camera, and bisect session itself are ignored by default.
How to run
Click the "Evaluate And Progress Bisect" button to start the session
Answer the prompted questions until only one PotentiallyProblematicActor remains
Implementation
This implementation is not as strict as regular bisect, but rather randomly chooses actors to remove as the actors list is more dynamic itself. However this means you can remove actors yourself (on top of automatically removed ones) and the question answers will still be valid
For now the algorithm is:
If it “is good” mark all existing as good, and return to a state with all non-good present
If it “is bad” and bMarkRemovedActorsAsGoodWhenSceneIsBad is true, mark all non-existing as good
Remove half randomly
Repeat