There are bunch of AAA games which has shipped with Recast & Detour.
For tactical movement, I recommend checking out Alex's stuff
AIGameDev.com. Navmeshes are good for navigation, but for tactical
stuff, I'd build a rough waypoint/coverpoint/tacticalpoint system on
top of it. The compact heighfield is awesome for automatically
building such waypoint graphs. Also Alex has some nice examples how to
use such graph to create influence maps, etc.
Btw, I wrote a good chunk of Crysis 1 AI, so I have to defend that a
bit ;). Writing AI for a story based game is a different thing than
writing AI bot which plays against the player, the rules are just so
different, and it is very hard to make the AI to learn new things
because the environment when you encounter the AI is constantly
changing (different levels). it is quite easy to make a randomly
behaving hard AI, but it is super hard to create believably looking
human AI that is also challenging. Also the games these days want to
make the player to have awesome abilities, which makes creating a good
and balanced AI even harder.
I'm glad that you are trying to solve that, a small contained
situation definitely makes the AI shine more. I think the most fun
levels we had during Crysis1 dev was the "gameplay sandboxes" that the
designers made to test some features, i.e. group AI. Small levels,
action packed, you could replay them the whole day and not get bored.
Maybe someone should make a ground hog day shooter? ;)
--mikko
If you have different sized agents, you should create a navmesh for
each of the agent size. The restriction is there to make the navmesh
generation easier. There are actually quite a few parameters which
affect the shape navmesh: agent radios, agent height, agent climb and
max slope.
There are no examples how to generate tactical waypoints. I recommend
first placing them by hand so that you get good idea how they should
be placed and then automate it. once you get there, I can help you
out. The idea is to use the waypoints for spatial reasoning, to answer
questions like "where is the nearest hide location" or "how to flank
the enemy from right", but not for navigation, you use navmesh to
actually find the path. You can use the navmesh to find the nearest
waypoint too, so you don't get the usual problems that plain waypoints
have.
--mikko