Hello all
One thing that I never see talked about is the AI in games, most of the time they kill my gaming experience / immersion because let's face it enemy's are pretty thick and predictable. I think my favourite AI where the Replica Assassins in F.E.A.R because they where unpredictable and a bastard to kill
Games are getting visually better so is it not time to upgrade the AI system to complement the visuals ?
Replies
I also can't help but give a link to this video showing off how random the AI in Gears of War 2 can be as it had some of the funniest AI moments I can remember in a game.
[ame="http://www.youtube.com/watch?v=yhz-k82ncFc"]INSANE BOT WITH SNIPER - GEARS OF WAR 2 - YouTube[/ame]
You hit the nail on the head frell and I know it is one of the reasons many people dislike single player games but I think with all the computer AI power regarding chess it should be better, the cpu has beat master chess players.
I finished the blacklist a few weeks ago and while the game looked good and was over all very playable the AI was the same as it ever was and it kind of defeats the purpose of having a game that looks, sounds and plays great while the AI are just based on simple patterns, that's not immersion it's simple repetition.
imo it is a neglected part of game industry.
imagine an AI that can out smart you no matter what moves you make ?
Doesn't sound very fun to me.
That said Id love to see more "squad" based ai where enemys actually seem to keep eachother informed of whats happening and watch eachothers backs or set up diversions etc instead of just running into the fray clueless.
An AI in one game might be a worse AI then another, but is scripted in a much more fun way, such was the case of FEAR.
So we can be bored out of our minds by the most neural network inspired game AI and entertained by the most scripted enemy.
For me I'm always amazed by the recent inclusion of AI bots in the MOBA's, it's a very complicated team game with a ton of different skills and scenarios to apply them to, another is the fact that for starcraft 2 they could finally let the AI play according to game rules and not cheat the player at higher difficulties as it did in starcraft 1.
It's to solve the issue where AI choices are very predictable, you can essentially calculate the AI's behavior in most games and at that point you'll always outsmart it.
At that point people stop trying and go towards real players instead, smarter AI that can predict you predicting them would create for far more fun experiences, and even have the more kind AI play more interestingly with new players, and predict when if they're not having fun.
At least it would be challenging. And I could learn something new everytime I play.
Now, I just close my eyes, put hamster on keyboard, and finish game. Where is fun in that ?
https://twitter.com/ID_AA_Carmack/status/352192259418103809
[ame="http://www.youtube.com/watch?v=WXd6CQRTNek"]Artificial Intelligence: Skyrim - The Elder Scrolls V, Video 01 - YouTube[/ame]
Let me put it another way then.
Hypothetically speaking:
You have 4 rooms with 4 exits and 4 entry's
You are being hunted down by one AI
The AI can hear your movements and you can hear his or her movements
You can anticipate the AI's actions audibly ( condemned criminal origins did this very well btw ) but the AI did not have the intelligence to counter or anticipate your audible actions / movements, thus you get in-game repetition.
What happens when the AI reacts on your movement based on the sounds you make and the movements you make within the confinements of the 4 rooms ?
The AI has 8 options based on the physical surroundings and so do you. He / she can also hear and see your actions on top of these 8 options.
The AI anticipates your movement using his or her audible / visual calculations.
That is one bloody hard component that means you have to work hard to outsmart them.
How is that not fun ?
The same principle apples to chess, the AI is constantly anticipating the human moves to increase the gain of it's own moves so it can create checkmate or death when it comes to an FPS game for instance.
I believe this is because Polycount is primarily an art focused forum.
Here is an interesting article on Gamasutra.
When maybe an enemy Squad from 4 people fight with you and all enemys are covered and shooting.
You: kill Enemy 1
Enemy AI: Lost 1 (maybe luck, roll for grenade usage 50%, roll result fail)
You: kill Enemy 2
Enemy AI: Lost 2 (hell he is better dont attempt to shoot him, roll grenade usage 100%, roll result true)
You: Wait for Head Nr. 3
Enemy AI: Use grenades one your last Position
You: Explode
You lost because you attempt to use a rigid pattern. The AI punished you for the attempt to exploit.
This is where your argument falls down somewhat. It is not easy to come up with a simple model to predict ("anticipate") what a player is going to do and how to appropriately react, let alone across a variety of different environmental and non-environmental conditions. Players are by their nature very unpredictable, which is why AI opponents can only very rarely perform adequately enough to appear human. Trying to build a model that will predict what any person is about to do based upon a very small amount of mathematical data is incredibly difficult when they have a large array of options open to them (just think about trying to solve that problem logically - a person was seen moving from location A to location B (duration C), then after duration D a noise was made with volume X and location Y. Is that really enough information to make relevant assumptions with?
Consider drawing a flow chart of conditions, stimuli and behaviours to coordinate the actions of an NPC yourself to see what I mean. Take a standard example of a patrolling NPC who will pursue and attack the player on detection.
To start you off, there are three layers that I'd build - firstly you need a high level state machine. This is the part most people think of, but don't really bother to understand the underlying systems. This is the part that says the NPC can be 'Patrolling', 'Alert', 'Pursuing', 'Attacking' etc.
Each of the states in this high level state machine will have it's own low level state machine that determines what the NPC actually does in this state. For example, whilst in high level state 'Patrolling', the simplest NPC will look for a navigation marker, walk to that marker, then determine the next appropriate marker, and repeat until the NPC is requires to transition. More complex NPCs will have more than a simple loop - for example Noone Lives Forever 2's NPCs might stop and have conversations with passing NPCs, pause to smoke a cigarette, or break their patrol sequence use the bathroom.
Each of these states in both high and low level machines will have one or more criteria / conditions that allows it to transition to another state, which in turn could be controlled by an additional state machine or at least a feedback loop. These machines will be strongly mathematically defined, and this is the finer part of the NPC; it has a number of input stimuli (field of view and trace checking for visual determination, radial check event inputs for audio determination and more). Is it enough to say 'NPC can hear player X'? Probably not, you probably want to apply some context sensitive filtering as an example; what the noise is, the distance between the NPC and the player, whether the NPC is focused elsewhere and if they're actually alert, if it's part of a sequence of unusual noises, or even if the environment itself is naturally noisy. Similar criteria can be imposed for visual determination; lighting conditions, partial occlusion etc.
The more you try to break this down into an entirely functional model, I think the more you'll understand just what you're asking people to actually achieve.
Include the fact that AI can often already be the most expensive part of the game play code in terms of processing time, and you're asking even more
The npcs have no "common sense" what kills the Immersion.
Forgetfulness is maybe the most common failure because its resets the player failures and let him exploit the same pattern over and over.