I’m going to do an AI cover generation system for the AIJam this week and I wanted to ask you peeps about the UI for it.
Basically the cover system isn’t the issue here (its pretty simple to do that thanks to Mikko Mononen’s excellent presentations about how to do it from the Paris AIGameDev conference back in 2011). My question is concerning the UI to provide for devs to use.
The idea is pretty simple, it generates a number of cover regions (essentially rectangles that sit on the navmesh) that provide cover. The cover is annotated (which direction etc).
But as with most things AI, I always feel uneasy doing a system that is entirely procedurally generated. Because there’s always some edge case that doesn’t generate in quite the right way. Plus designers usually want some way of simply disallowing specific generation artefacts or regions.
So my thoughts are:
- Add an “AI Tools” button to the main tool bar in the editor. Have one of the drop-downs of that be to regenerate cover, which is only available if a navmesh volume is selected. This would be the automated pass.
- Clicking the button would repeat whatever was the last selected action, so if you just generated cover, it would do that.
- There would be an “options” dialogue you could popup that would allow you to set some filter parameters. So stuff like how often it sampled the cover, what height “high” and “low” cover would be etc.
- Allow the designer to simply delete cover generated (so each cover region would generate an actor that could then simply be deleted)
- Add a new volume type “cover generation” that would have properties for the options presented in 3) above. It would generate cover within the volume (assuming it would only sample the area that overlapped the navmeshbounds)
- Designer would have to click a “generate” button on the volume for it to actually generate cover. Cover items generated would be (optionally) added as children of the volume.
- Have a “cover generation” mode in the modes tab (basically similar to the landscape mode)
- Designer would “paint” the regions they wanted cover to be created for. With cover being generated as they painted and then filtered out over time (so you’d see a bunch of circles created and then removed as they are checked for validity)
One thing to note, is that designers will be able to manually place cover regions by hand. Not sure how yet but possibly by dragging out a volume or polygon as you would in a 3D app.
Just wondered how other people saw these toolsets being used. Or if anyone had any experience/preferences. Honestly the code is going to work fairly similarly, its more a matter of how the designer might use it.
Oh, the other thing is, does this need to be runtime regenerated? I mean the navmesh itself is runtime rebuildable, so it makes sense that cover might be. But then it suggests that procedural cover placement is more important than the designer versions.