Professional Games AI
Just wondering how do professional game programmers do AI for their games like path finding behaviors etc.. I was recently impressed by the AI of Brothers In Arms and wonder how they achived their path finding and duck and cover AI etc.. Do they still use A* for pathfinding or is their more /professional/ AI algorithms out there. Just wondering what you all know about this.
Now I'm not a professional games developer, but I have read a few books on the topic.
A* is probably the de-facto standard in path-finding - although there are lots of adaptations that can be made to it; for example:
heuristics based on things other than just pure distance (ie travel time (roads easier than marshes), proximity of enemies to path nodes, location of choke points, all sorts of stuff)
smoother (typically spline-based) paths - traversal between nodes can sometimes be very mechanical in nature
optimised for performance (ie use of binary heaps)
Paths may also be generated over several frames, using 'best-guess' approximations to provide some initial movement. Of course, you've also got to integrate local avoidance algorithms (think of tank-bunching in RTS's).
AI is (I think it's safe to say) still predominantly state-based, to a greater or lesser degree. Some specific examples are more complex (think Black & White, which used adaptive bayesian nets, or Colin McCrae Rally which uses a neural network for it's driving).
You might also find this interesing : an article I was introduced to earlier today on the Halo 2 AI, which covers a whole lot of topics.
As I say, this is what I'm reading at the moment, so hopefully most of it's factually correct!
Jim.
A* is probably the de-facto standard in path-finding - although there are lots of adaptations that can be made to it; for example:
heuristics based on things other than just pure distance (ie travel time (roads easier than marshes), proximity of enemies to path nodes, location of choke points, all sorts of stuff)
smoother (typically spline-based) paths - traversal between nodes can sometimes be very mechanical in nature
optimised for performance (ie use of binary heaps)
Paths may also be generated over several frames, using 'best-guess' approximations to provide some initial movement. Of course, you've also got to integrate local avoidance algorithms (think of tank-bunching in RTS's).
AI is (I think it's safe to say) still predominantly state-based, to a greater or lesser degree. Some specific examples are more complex (think Black & White, which used adaptive bayesian nets, or Colin McCrae Rally which uses a neural network for it's driving).
You might also find this interesing : an article I was introduced to earlier today on the Halo 2 AI, which covers a whole lot of topics.
As I say, this is what I'm reading at the moment, so hopefully most of it's factually correct!
Jim.
Chances are very high A* was involved in their pathing on either a nav mesh or linked waypoints (designer built or automatically generated).
As far as the cover stuff goes. Usually a finite set of points are placed on the map (designer specified or automatically generated - might even be shared with the existing waypoint system for navigation) and each point will specify some precomputed information relating to the static world. For example, a point might say it provides cover from enemies over 10 feet away to the north when crouching. An agent can then decide to go to this node if it looks useful for the current situation.
Dynamic cover (such as a big crate that can be moved around) is ussually done in a similar fasion except the cover information is stored in the object and the agents will need a way to query any dynamic objects nearby.
As far as the cover stuff goes. Usually a finite set of points are placed on the map (designer specified or automatically generated - might even be shared with the existing waypoint system for navigation) and each point will specify some precomputed information relating to the static world. For example, a point might say it provides cover from enemies over 10 feet away to the north when crouching. An agent can then decide to go to this node if it looks useful for the current situation.
Dynamic cover (such as a big crate that can be moved around) is ussually done in a similar fasion except the cover information is stored in the object and the agents will need a way to query any dynamic objects nearby.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement