black and shiny
As someone who's been working with id Tech 4 for over 5 years, I can say that this type of situation is more a fault of the level design than the AI code. The AI doesn't work on the basis of AAS links, (what you're describing is more along the lines of the node-based system the CryEngine uses) it works by analyzing and calculating map geometry and clip brushes and subsequently finding paths and 'reachables', both during map compilation and in real-time.
Yeah. The AAS stuff doesn't always degrade gracefully in the presence of completely unanticipated architectural features. If you get into an area with no AAS links at all (not just ones the monster doesn't think it can fit into) the monster will go completely dormant, which if you ask me isn't very realistic either. As soon as you re-enter an area with an AAS link to the one the monster is in, it suddenly starts running back to find you.
If you think of a blind man feeling his way along all the brush geometry (not models or patches, the AAS ignores those), and then recording everything he touches, that's similar to what the AAS does when you BSP a map. The more polygons and vertices there are, the more the AAS has to calculate. This is where the job of the level designer comes in. He should be familiar with the capabilities of each monster, where they can fit in and what the overhead height limits are for each one. The level designer performs collision mapping, which optimizes the AAS by making sure, for instance, that it doesn't make calculations for the space under a table when the monster can't even go down there.
So in short, level designers have to keep in mind the limitations of each monster, and also all the possible ways a combat scenario could play out. That's part of their job. In the instance of a crate the player can jump onto where a zombie can't, the level designer could either create a small series of monster clip brush steps that the zombie could use to step up, or just make sure the crate isn't wide enough to where the zombie can't reach him from the ground.
So yeah, when you see something like what FireFish described, that's more than likely faulty level design, not faulty programming.
Last edited by Caffeine Freak on Jul 28 2014 at 04:31