Debriefing > Impressions & Feedback

Nodegraph vs Navigation Meshes

(1/4) > >>

coolDisguise:
When I saw major's Facebook update stating he's putting navigation nodes in all the maps, I came to think of an article I read about how the Counterstrike: Source bots use Navigation Meshes (https://developer.valvesoftware.com/wiki/Navigation_Meshes) rather than nodes and that they're precomputed by the engine, so there's not as much work to do as placing nodes all around the map (https://developer.valvesoftware.com/wiki/Nodegraph). They also used meshes for TF2, yet again in Episode One they used the nodes again, only to return to meshes for L4D (https://developer.valvesoftware.com/wiki/AI_Systems_of_L4D).
So what's the 'state of the art' now? What are the real differences between both techniques? As I understand, for both you can place entites manually, but for meshes you mark the areas instead of putting multiple nodes in there. Yet both need to have connections between either nodes or areas and have the possibility for hint-markers so bots can understand jumping-shortcuts as well as using cover. And when I think about jumping-shortcuts, like, for instance, in Control jumping from the top level in the main room instead of taking the stairs, I think it'd be easier to have two areas marked than having nodes all along the railing. Not only because of lazyness, but because the decision which nodes to use has to be made in realtime for all bots - which I think could produce some heavy CPU load if there are too many of them (bots, as well as nodes, of course). Could automatic mesh creation be used for GE: S as well? It seems Valve decides to use nodes when there's some kind of story mode/singleplayer and meshes whenever it's multiplayer, though, of course, the first CS bots (non-Source, not made by Valve) would use nodes as well.

I'm putting the thread here, since I don't know where else, because it's not really as productive as the 'Editing and Modifying' area would suggest, though feel free to move it somewhere else. And thanks to anyone taking the time to answer my curious - and maybe noobish - question(s).

killermonkey:
Can't use mesh... the AI is written to follow nodes.

State of the art is neither nodes nor mesh. Both of these techniques require pre-computation. State of the art would be self-mapping by the AI and decision making based on a set of rules and personality. But we aren't there yet ;-)

coolDisguise:
Personality, eh? Then I'd like to see a bot that goes off looking at the easter eggs while everyone is out to kill him. ^^
By self-mapping you mean creating their own 'map' of the map during runtime, right? Like humans do playing it for the first time, saving their progress in their minds (bots in a file of course) and constantly adding to it. Though precomputation of the map isn't that much of a difference from a human player that has played the map in question a couple of time and has a "full understanding" of his possibilites in terms of "where to go" and "how".
But it'd be actually quite funny seeing bots 'learn' their way around, maybe even learning by seeing human players do some tricky jumps to get up on a ledge or something and eventually performing them themselves once in a while, if they 'feel' like it. But the there'd also be spawncamper and armorcamper bots.  ;-)

major:
What would be great it you could use a heat map to teach a bot. Have players play on a map for couple hours, then take the map of there movement and use that to map bots paths. This way bots would linger in the hot spots and keep away from corners and such.

coolDisguise:
Actually, the bot shouldn't be in the hot spots but rather in spots overseeing the hot spots -> less chance of getting killed, but high chances to spot someone he can kill. That is, of course, unless the bot has perfect aim anyway and can stand in the middle of any room being attacked by any amount of people and still kill them all.

Navigation

[0] Message Index

[#] Next page

Go to full version