I’m pushing my team to do as much offline work as possible, which means checks that programmers would normally be put anywhere in an Actor’s initialisation path up to and including BeginPlay are being moved out to a fairly natural home - asset validators. Pretty useful for this purpose, but there are two questions in particular that I have about them.
1. Asset validators don’t appear to run on assets that are modified in memory in the editor. This is a gap that can cause a newly launched PIE session to kill the entire editor. I’m also imagining that on the fly/live editing can expose this same hole - which, to be fair, is a hole that exists with the Actor init path as described above too. Is there a way to enable validating edited assets without saving them before PIE at a minimum? If not, can we get a way to do this?
2. Checking if a validator can run on an asset basically involves brute force testing every validator on the asset. This can get out of hand as the complexity of a project increases, such as a nightmare scenario where hundreds of validators are checked each time the user presses save causing a delay of seconds or more. Is there a plan for a more efficient path in the future? Even a basic association with between asset UClass and a validator would be able to cut that down to a hash map lookup for any usable validators, with the validation function doing additional logic (we validate components added in blueprint classes for example). Whether or not there is a plan for more work on this from Epic’s side, either way will change how we approach architecting asset validators for a AAA scale project.