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).