Monday, April 13, 2009

Observations for each of the 5 guidelines

1. "make the AI visible to the player"




In BioShock, the AI has a hard time seeing the player and appears to have to "think" about whether it should attack or not. This is how it appears, the real reason is the line of sight issue. This is a problem with the overall tuning of the visual cue system that was implemented by the designers. It would take into consideration the light, path of sight, sound, and some other neat features to determine where the player is. This is the reason that it "appeared" to see you, but did not act on it. It had to determine if the factors were great enough to approach.

More information can be found here:
http://aigamedev.com/discussion/notice-intelligence-bioshock


2. "only implement AI that the player can detect"


I have two points to this statement that I feel are critical.

Programming- is a big part of AI optimization and Lua seems to be the language of choice. Lua is an extremely well versed program and if understood and used correctly, AI optimization is a fairly simple task.

Design- is the other part of successful AI integration and optimization. When designing for AI Cooperative Integration, be careful to fully understand the benefits and disadvantages that come along with it. Fallout 3 did an okay job at bringing the CO-OP AI into the story, except for the fact that they get stuck in strange places and are extremely finicky when it comes to Karma and deciding to join or abandon you. (I think the threshold should have been set higher.)


3. "avoid behaviors that appear mechanical"

The simple answer is do not make your AI act or look like a robot. Make it look, feel, and act like a human that you can easily interact and communicate with.

More information can be found on Facial Expression Recognition here:
http://en.wikipedia.org/wiki/Uncanny_valley

An interesting theory that I would like to pursue is a modified version of the Uncanny Valley theory. This would be beneficial in the design and development of AI. To avoid the appearance of mechanical structuring, one could use the simple concept of facial expression recognition. If the AI or player appears "mad," then increase attack rate. If player appears "happy," increase sneak or call in some other action related to attack - while also taking into account other body movements, actions, etc.

Example
: If I am being attacked by the AI and start kicking its ass, then they are going to need help. The face of my character should reflect an intense, focused look, not the look like I'm skipping down a tree covered path. This face would be appropriate for when I find cover or am camping.

More information can be found on Facial Expression Recognition here:
4. "show the player AI that makes choices"





Killzone 2 does a good job at this. If any type of explosion is thrown at you and you are not on the ball, your AI counterparts will try to assist you in getting the explosive back at the enemies or at least out of the area. This is also true for the opposing AI. They do the same thing when an explosive is thrown at them. This is a fairly easy concept and fairly old one at this point. The first time I noticed this was COD:3. This is also easy to implement with code and correct path placement. Something I think that we will see more of in the future is a direct CO-OP AI becoming more useful. This is seen in Resident Evil 5 regarding how you get help going up ladders and over the walls. Army of Two tried, but did not really succeed. Still they gave it a great go. There are always other ways around in real life, as it should be in the video game world. But the most direct way is almost always going to be to get help from a friend. The AI has to be in the correct place and make the correct choice.

5. "give the player reason to see more than is really there"





The trouble with Fallout 3 combat is that it changes from turned base to free fire (perfect intensions) but the communication about combat with the AI did not. This really hurt the game, I think the intentions and the overall AI were great but the execution in regards to the AI was just lacking that "something special." The reason I wanted to play this was for the AI and the "puzzles" that you had to overcome . I wanted to see if there really was more. There is part of the game that if you try to shoot at or kill one of the guards, the game would not allow this. It would knock him out, but you could never actually kill him. The only way to escape the situation was to flee. This is an overall flaw in the game design. If you are going to make a truly sandbox style of game, which Fallout 3 is, and do not want to limit the player in anyway (the ultimate goal of a video game, right?), then this should be your rule of thumb. "If your player can die, by good or bad hands, then your entire world and everything in it should also be able to die, good or bad."