Artificial Intelligence Research

advertisement
Artificial Intelligence Research
Design
I have researched several AI implementation techniques, some of which have been very
sophisticated, but have decided on using the most conventional implementation methods
for the game’s AI. There are two reasons behind my decision:
1. Reliability. Using what is well tried and proven.
2. Easier implementation. The AI doesn't need to be groundbreaking, just functional
and most importantly FUN!
Features
Based on the work we have done so far on the design document I have compiled the
following ground rules for the AI framework:
The AI







must be able to…
Navigate the level.
Control animation. A robot needs to animate properly while walking.
Detect the player within its field of vision.
Search for the player if sight is lost.
Shoot at the player.
Switch between different behavioral states.
Share information between agents. (low priority)
The AI



does not need to…
Plan ahead of its actions.
Act like a living being.
Learn and adapt.
The AI



absolutely shouldn't…
Know where the player is without having seen him.
Attack relentlessly.
Have perfect aim.
Cognition
There are three different cognitive models we can use for describing the world in a way
that the AI can perceive: Tiles, Waypoints and Navigation meshes.
Tiles are very easy to comprehend and implement but building a detailed 3D
environment on a tile grid is not possible.
Waypoints are very often used in games because they are simple and their functionality
is very scalable. The main flaw is that the level designers have to manually place the
waypoints in each level. Since in our project we are only going to build one level, using
waypoints is definitely a good option.
Navigation meshes are very hard to implement but if done right they are very
functional. They work very much like waypoints except they are automatically
generated by the engine after the terrain has been analyzed and walkable surfaces have
been found. The disadvantage is that generating them takes a very long time and this
has to be done every time the level has been changed. They would be especially difficult
to implement since we are not going to be using a level editor. I don't find it realistically
possible to use navigation meshes in this project.
Bottom line: we’ll use waypoints.
Load balancing
Something that we’ve learned from previous projects is that AI eats a lot of CPU. This
time we’re going to have to take measures to avoid flooding the CPU by doing all AI
operations each frame.
I have decided to go with the approached suggested in AI Game Programming Wisdom
(chapter 6.3).
Download