More game developer insight / My rant on AI

Add comments

Updated Mar 27, 2010

http://kotaku.com/5492078/civilization-creator-explains-why-everything-game-devs-know-is-wrong

I feel that he’s got a lot of things right, but a few things wrong. Yes, games do need a system of rewards/punishment/accomplishment. That’s the part I agree with. However, as a programmer, I do know that I have played games where “the computer cheats” or as he says that the player feels like as if the game “peeks behind the curtain”. This is simply where the enemy knows too much about the player, and it’s just not feeling like the computer is peeking, but a high probability that it IS peeking.

I played Crysis, and I freaking loved playing at a measly 16-20 FPS on my old single-core Athlon at 1024×768, medium settings. In general, the AI was good. However, as soon as the enemy got into the chopper, he absolutely knew where you were. You could cloak, take cover, or just about anything else. The chopper would relentlessly circle around you and fire both bullets and rockets. It never let up.

What adds to the mess is that a chopper in Crysis is hard to take down unless you have the right weapon, which happens to be the missile launcher. If you didn’t, you can take down a chopper with a machine gun by shooting it like crazy. If you ever figured it out, you can take it down faster by hitting the tail rotor and the two missile pods. This is hard in this game, especially for a first-time player.

I played a few driving games. Some of them are awful in terms of AI. In one of them, if you hit an enemy car just once, your car would literally explode. What’s even worse was that there’s signs that the “enemy cars”, which weren’t really your enemy, would tend to drive into your path! If you drive on an Interstate, they wouldn’t do that! I guess the worst was like the Mavis Beacon typing race game.

Some racing games have the code where the enemy AI will always be a screen or two behind you, but no further than x seconds away. So, you’ll get ahead and say “Whew! I have a little room for error!” and as soon as you mess up slightly, the enemy would overtake you. It’s frustrating! The AI is basically a machine. However, it’s a machine that has a tractor beam on your tail bumper!

In Mavis Beacon, you have a target Words per Minute count(WPM). You have to maintain above that average WPM in order to win the race, or so you think. So, let’s say you are typing 10-20 WPM faster than the target time, and then all of the sudden, you see the AI come at your from behind. Because of this, you’ll try typing faster to keep your lead but you’ll make mistakes, your hands get fatigued, or that 10-20 WPM streak you got happened to be just a sudden burst of typing speed (like a bunch of words you type often).

You should be able to be beat by the enemy, but you should also have the ability to completely dominate as well. However, even if you beat that target WPM count, the AI player can still beat you! I can understand maybe 2-5 WPM above the target time, but there were times where it went up to 7-12 WPM.

Designing game AI is easy to do but hard to make realistic. Yes, I just said that AI is easy to implement.

Two dots

How do you get from Point C to Point P?

As the caption states, “How do you get from Point C to Point P?” You just moving the dot from Point C to Point P using addition and subtraction. However, good AI is tricky. The Pac-man maze would add another layer of complexity and the dots would have to figure out how to navigate it. If you don’t do so in the Pac-man situation, you’ll get the case where the enemy run straight into the wall and keep walking in that direction. As many of you have seen, this is hard to eliminate because some of the highest-budget games out there have done this.

Let's add a simple maze

Adding obstacles like this adds more complexity.

Games now are more realistic. Some games literally have forests where the enemy has to run through trees and hills with varying degrees of terrain that affects how you could move around. They have to run in and out of buildings. It gets complicated.

Part of realistic AI is making the AI dumb. In Crysis, a lot of enemies had that level of dumbness where you could get away with fooling the enemy with something like cloaking. When the enemy got into a chopper, that dumb factor vanishes and goes from amazing to just a very cheap feel. If the game explained that they could track the nanosuits using something like infrared, it would have helped make the player understand, even though a hill would still block an IR camera.

Dumb AI makes Outrun more fun than driving games where the AI is smart. Believe it or not, the dumb AI is actually more realistic. If you drive down a road, you can easily predict how most traffic flows. If you are driving your car like you would a racing game, the others are only going to be able to predict so much about your pattern. In fact, in real life, people will either keep their pace or even move out of your way! And yes, while you do expect the occasional car to get in front of you, unless it’s the police, it’s not going to happen every minute.

I especially love what he says about the unholy alliance between game developer and player. The player isn’t the enemy. Yes, you can beat up the player, but you have to make sure that the player would be rewarded for beating your challenge.

I remember one dude commenting that he felt kinda betrayed if a player doesn’t play the game as the designer intended. My brother made a good point. It’s a game, and part of a game is pushing the rules to the limits. Also, it’s very hard to cover every-single possibility. Some say it’s communication, but I say it’s making a piece of software with over 10,000 lines of code. You have to expect the player to beat your system, and say “Wow. I never thought of that!”

In MMORPGs, you’ll notice patterns. For example, leveling takes a FREAKING LONG TIME. So, players want to find the good leveling spots. Guess what happens? The players talk to each other and then fight certain enemies to build their character. Sometimes it’s a map, sometimes it’s a specific enemy. Did y0u intend those enemies/maps to be good leveling material? To an MMORPG player, it’s nothing special. It’s simply part of how the game is played. Why do you think some people pay money for a good WoW account?

And that’s all I have for now. I’ll edit this post if I can think of more.

Posted on March 12th 2010 in Uncategorized

One Response to “More game developer insight / My rant on AI”

  1. Josephine Says:

    As I mentioned to you earlier via Meebo, you do bring up some very good points here.

Leave a Reply