Artificial Intelligence for Computer Games
Craig Maloney writes "Artificial Intelligence (AI) is a very hot topic today in computer circles because of the interest in modeling behaviors on machines that we find in nature. Many books have been dedicated to studying and expanding the field of AI, but generally fall into two categories: those that concentrate on AI as a research topic, and those that concentrate on AI in the field of game development. Artificial Intelligence for Computer Games (AI for Computer Games) is unique in how it takes classical AI and merges that knowledge into AI for game development. It's an approach that will be fascinating to those currently studying AI, but the approach limits the usefulness of this book to a select audience of AI researchers interested in game development." Read on for the rest of Maloney's review.
Artificial Intelligence for Computer Games
author
John David Funge
pages
127
publisher
A K Peters, td.
rating
6
reviewer
Craig Maloney
ISBN
1568812086
summary
An introduction to Gaming Artifical Intelligence
AI for Computer Games begins with a brief introduction to the historic roles that AI has played in games such as Pac Man and Mario, and how these Non-Playable Characters (NPCs) achieved fame through their roles as NPCs. The NPCs play important roles in games, and their behavior can ultimately determine if the game is entertaining or frustrating. The author then describes the differences between the field of Artificial Intelligence as compared with Gaming Artificial Intelligence. Later he shows how these two fields can intertwine with each other, and how Gaming Artificial Intelligence can be useful to AI researchers via game-playing robots and other similar experiments. The author also introduces the architecture of the components of a game. They are:
Next, AI for Computer Games discusses NPC perception. Players in a gaming environment are hindered by what the renderer will display to them, so likewise, the NPCs should not have omniscience in the game. The author recommends a strategy for handling this for NPCs: use the render engine for determining the perception of the NPCs as well. This allows the players and NPCs to work from the same rules. The author also describes how NPCs can handle partial observability, as well as prediction.
The rest of the book deals with the NPCs' abilities to react, remember, search, and learn to the game environment. This is the heart of the book, and provides a good analysis of the various methods available to the developer to model complex behaviors. The section on learning is especially interesting, as the idea of rewarding the algorithm when it performs correctly seems both strange and obvious at the same time (although the author points out that sometimes the algorithm can do undesirable things in order to obtain that reward). There are many ideas in these sections for perfecting the AI of the game, and the author expertly describes each one and where each would best be used.
AI for Computer Games was both enlightening and frustrating at the same time. The author obviously possesses a lot of knowledge in the AI field; the frustration is in his telling of that knowledge. The book reads much like an academic paper on AI applications in games, and could put off many potential readers with its rather dense descriptions of complicated material. The book also suffers from being rather short. The book is 127 pages in total length with code snippets, diagrams, and other page artwork. The brevity makes the book easy to pick up and read for a bit, but the density ensures you'll be re-reading several chapters in order to catch what the author is trying to convey. The code snippets also suffer from brevity. The code snippets are in C++, but are primarily constructors, with precious few methods defined. The author has excellent ideas; using an environment where the player and the NPCs are equals removes much of the complexity for the example AI to handle. Unfortunately the execution in this book leaves me wanting more.
You can purchase Artificial Intelligence for Computer Games from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
AI for Computer Games begins with a brief introduction to the historic roles that AI has played in games such as Pac Man and Mario, and how these Non-Playable Characters (NPCs) achieved fame through their roles as NPCs. The NPCs play important roles in games, and their behavior can ultimately determine if the game is entertaining or frustrating. The author then describes the differences between the field of Artificial Intelligence as compared with Gaming Artificial Intelligence. Later he shows how these two fields can intertwine with each other, and how Gaming Artificial Intelligence can be useful to AI researchers via game-playing robots and other similar experiments. The author also introduces the architecture of the components of a game. They are:
- Game State: The current state of the world
- Simulator: Encodes the rules for how the game state changes, and the rules for the game (physics, etc.)
- Renderer: The display of the game
- Controllers: The player and NPC methods for interacting with the game.
Next, AI for Computer Games discusses NPC perception. Players in a gaming environment are hindered by what the renderer will display to them, so likewise, the NPCs should not have omniscience in the game. The author recommends a strategy for handling this for NPCs: use the render engine for determining the perception of the NPCs as well. This allows the players and NPCs to work from the same rules. The author also describes how NPCs can handle partial observability, as well as prediction.
The rest of the book deals with the NPCs' abilities to react, remember, search, and learn to the game environment. This is the heart of the book, and provides a good analysis of the various methods available to the developer to model complex behaviors. The section on learning is especially interesting, as the idea of rewarding the algorithm when it performs correctly seems both strange and obvious at the same time (although the author points out that sometimes the algorithm can do undesirable things in order to obtain that reward). There are many ideas in these sections for perfecting the AI of the game, and the author expertly describes each one and where each would best be used.
AI for Computer Games was both enlightening and frustrating at the same time. The author obviously possesses a lot of knowledge in the AI field; the frustration is in his telling of that knowledge. The book reads much like an academic paper on AI applications in games, and could put off many potential readers with its rather dense descriptions of complicated material. The book also suffers from being rather short. The book is 127 pages in total length with code snippets, diagrams, and other page artwork. The brevity makes the book easy to pick up and read for a bit, but the density ensures you'll be re-reading several chapters in order to catch what the author is trying to convey. The code snippets also suffer from brevity. The code snippets are in C++, but are primarily constructors, with precious few methods defined. The author has excellent ideas; using an environment where the player and the NPCs are equals removes much of the complexity for the example AI to handle. Unfortunately the execution in this book leaves me wanting more.
You can purchase Artificial Intelligence for Computer Games from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Why do we always link to just one store? Why not link to a series of various places selling the book for those who are interested?
Yeah, it's an obligatory complaint. Mod me down for it.
Haec merda tauri est. Ceterum censeo Carthaginem esse delendam.
I just finished reading a preview of Spore, a new game from the creator of the sims, and it seems like AI in games is about to take another leap :)
Natural stupidity beats artificial intelligence every time
You cannot make something idiot-proof because idiots are too ingenious (variable). Unfortunately, I see much of AI as trying to impose order on chaos which cannot be done with deterministic methods. AI _can_ help with data reduction, but not understanding.
AI has been a hot topic for, what, the past 40 years?
So how many of the people out there who are designing game AI have a typical CS background and how many have been specifically trained in AI principles through their education? Along the same track, is someone interested in studying AI more likely to be employed by a game publisher when they graduate or by an actual organization doing AI work for some other application?
Much like how AI is, atleast in it's current state.
Enlightening because even the most basic attempts at simulating intelligence in machines makes us realize how vastly superior Nature's machines are. And frustrating because of how difficult it is proving for us to reach an adequately satisfactory understanding of "real" intelligence/consciousness inspite of all the research/effort we've been putting in.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
I just finished reading a preview of Spore, a new game from the creator of the sims, and it seems like AI in games is about to take another leap :)
(messed up my previous post a bit)
I love those strategy games where you have to gather your resources, move your armies into position, and watch the slaughter. But I wish the games has decent AI more than anything else. It doesn't take much to lose the war if you have one twit who decides to take a walk around the world and bring the enemies to your backyard when your forces are half-way to storming the enemy gates. There's nothing like leaving your arse exposed during war time.
Computer game: "You have been playing this game for over 24 hours. You need rest."
Person: "Shut up, I'm almost to the high score!"
Computer game: "I cannot allow you to "pull a Korean". "I am shutting you off."
Comment removed based on user account deletion
http://www.uncoverip.com/
"because of the interest in modeling behaviors on machines that we find in nature"
Does that mean you are going to run it on an abandoned 486 you found in the woods?
Unknown host pong.
I'm not sure if you should be exalted or paddled for that one.
I've never really liked calling a Game's 'AI' Artificial Intelligence for one reason - they don't learn. It's always seemed more of what I'd call Simulated Intelligence. There's always a stopping point, even if they train the computer to play themselves. A point where it's not learning anymore and the computer only seems to be acting intelligent.
:p
From the review, it seems this books touches on this a bit. Hopefully more game developers will start putting additional effort into making dynamic, learning Artificial Intelligence components to their games.
Of course, part of the problem is also building the AI to act Human. Humans make mistakes, and so should the computer. In warfare, there's always been that element of random chance where you can capitalize on an enemy's mistakes. Take in factos like morale, confidence, etc. It's no fun to play against a perfect oponent all the time
I think the first game company to get this careful balance right is going to be laughing all the way to the bank.
Government's view of the economy: If it moves, tax it. If it keeps moving,regulate it. If it stops moving, subsidize it.
The section on learning is especially interesting, as the idea of rewarding the algorithm when it performs correctly seems both strange and obvious at the same time (although the author points out that sometimes the algorithm can do undesirable things in order to obtain that reward).
Genetic Algorithms will most definitely be involved in the way the gaming experience progresses.
To expand on the idea of rewarding, those genomes that are rewarded the most are then permitted to "mate" with other strong genomes, which will take into account inheritance, mutation, natural selection, and recombination (or crossover) resulting in the "smartest" population.
The fitness test could also be controlled by the player, keeping the game even more interesting, for a much longer period of time.
ZEN is a prime number in base-36
*blinks*
...yeah...
(slowly backs away)
I'm still waiting for FPS bots that use Maze Theory instead of "waypoints" for navigation. If only I could code worth a damn...
Model 551, Chambered in 6mm
Bad, BAD Zoot!
A recent take on this is the Settlers of Catan. Interesting AI work in negotiations. Never saw the end results though (thesis), anybody?
http://www.infolab.northwestern.edu/infolab/
Thankfully all over the web now due to:
http://sourceforge.net/projects/jsettlers
Man! I never find any machines in Nature, except the occasional stripped car with the windshield shot out. Where is this guy finding his machines? It must be a great place to go hiking.
See what I've been reading.
What I'd like is an AI component for Windows smart enough to identify problems in the OS and fix them before they byte me.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
..your point?
- It's not the Macs I hate. It's Digg users. -
that's not AI... that's cheating... the ball should just follow the game physics... you can only move the paddles...
The 1st "AI Game Programming Wisdom" was actually pretty good. You could tell it was good by how quickly LaMothe's label put together a cheap imitation, "AI Techniques for Game Programming".
(I never read the 2nd "AI Game Programming Wisdom"... laziness on my part.)
[o]_O
Or forget about all that artificial intelligence, and instead of spending precious programmer time and money on it, let your players pay you for the privilege of taking on other (paying!) customers online!
SCO employee? Check out the bounty
In case you are boycotting B&N, you can buy the book here: Artificial Intelligence for Computer Games
As I was saying about AI...oh, my Barbie XXX has just come in to bring me a drink, of course my Barbie has limited AI but is saturated with artificial sex hormones to pander to my every whim... but not now Barbie, daddy's busy...
Now about the promise fulfilled by AI proponents... oh damn look at the time...If I'm going to make the lightspeed shuttle to Mars I pretty much have to teleport out now, we're going white water rafting in the Valles Marineris.
Anyway good job on the AI.
"Academicians are more likely to share each other's toothbrush than each other's nomenclature."
Cohen
I can beat that, here is some artificial intelligent for Xenogears (may also apply to Metal Gear Solid).
True artificial intelligence is only ten years away - and has been for the past three decades. AI has been a huge disappointment. Most 'AI' problems that have been solved have been solved via brute force combined with the advance of Moore's law. From what I've seen of game 'AI' - it's more a mimicing of intelligence and not very impressive mimicing at that (not much more so than the 'Eliza' class programs of the 70's).
That's my 2 cents - flame away.
[Insert pithy quote here]
It is still AI though. A Neural Network stops learning at some point, but it's still AI right? It's just a difference between per learning and lazy learning.
Maybe we need some modifiers for games, Active or Static AI.
"Not knowing when the dawn will come, I open every door." - Emily Dickinson
> AI for Computer Games begins with a brief introduction to the historic roles that AI has played in games such as Pac Man and Mario
I actually got a copy of the original SMB source code. Hopefully Nintendo won't mind me revealing the algorithm for the koopa trooper's AI:
1. walk until wall is encountered
2. reverse direction
3. goto step 1
...is M. Tim Jones' AI Application Programming. It's got all sorts of predator/prey and pathfinding stuff in there.
The code examples are in C, although I ported some of them from the 1st edition of the book to Ruby.
The Army reading list
If you look on amazon, you see two books by John David Funge:
AI for Computer Games and Animation: A Cognitive Modeling Approach (Hardcover) - August 1999, 220 pages
Artificial Intelligence For Computer Games: An Introduction (Hardcover) - July 2004, 160 pages
So is the same book twice (slightly shortened), or what?
Education is the silver bullet.
Until we get to the point where we have a standardized 3d world toolset from which we build games from, AI will always be second thought.
Normally AI involves a lot of cheating, like the Street Fighter 2 always block to the Warcraft3, everything costs 1 gold for the computer.
We've only just moved into the 3d era of video games recently, and we're not close to standardizing the 3d game development process, so we're even further away from writing effective AI. Sure you can write entirely complex AI that involves flocking and friendship, but if your game isn't designed to make use of it, people probably wouldn't even notice.
God spoke to me.
I just ran into this a couple hours ago today. Haven't tried it at all yet. NERO is an artificial intelligence game in which you train your armys AI to react to certain situations. Then you pit your trained army up against other peoples armies and let the AI battle it out. Looked very interesting.
*DrugCheese rants*
It's a post to the wrong article! But even then I had to read it twice to make sure it didm't fit in. Oops sorry! Pardon the pun!
It's not AI. The coolest part of the game sounds like the adaptive technology for animation, which is really an amazing, but logical, result of the requirement for faster development and more and richer content. The rest of the game is, the designer admits, based on pre-existing favorites such as Pac Man, Populous, and Civilization.
On a side note, this reminds me of a programming language I use to use back in the day which had true = -1 and false = 0. The reason for this was that the last bit in a signed int was used to determine the if the number was +/-. And a boolean was an signed int of length 1. So it was -1/0 for true/false. Anyone know how common this is elsewhere?
Fantasy remains a human right; we make in our measure and in our derivative mode... -- JRR Tolkien
I think that in order for a game to have any play value, it has to have a challenging opponent. The graphics can be as pretty as you want, but nooen will play it if the other guy just sits there to get blown away. IT will be really cool when the AI can have good teamwork. Things like supressive fire, ambushes, flanking manuvers etc. The only way to get this right now is to play oonline, and then you have to deal with 14 year olds saying "WTF neewb, W|-|y do you ch34t and H4X!?!?! GayFag!!!!!"
The question you're asking isn't really "is -1 == true and 0 == false common," it's "is using a signed int of length 1 for booleans common?" After all, if your boolean is one bit long, "true" is 1b whether it's signed or not: (unsigned int)true == 1b && (signed int)true == 1b.
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
It's strange. Modern game industry is obsessed with graphics, yet there is very few books that can teach you how to make a decent 3d engine (at least, I was not able to find one yet). AI, on the other hand, seems to be the most common topic.
Artificial Intelligence (AI) is a very hot topic today in computer circles because of the interest in modeling behaviors on machines that we find in nature.
AI is not a hot topic. It hasn't recovered from the 1970s snake oil peddling stage, and it is still looked down as an overpromiser and underdeliverer of goods, even though some real neat and exciting stuff is going on there.
They'll have to fight hard to get rid of that image and that starts by continuing the shift from shoddy-but-cool-sounding work towards more measurable science. Certain areas like theorem proving have fully made the shift, others like onthologies seems still mired in the promise-lots deliver-little stage.
MY GOD MAN!!!
are you insane!?!?
an AI like this could conquer the Earth!!!!!
May you be touched by His Noodly Appendage. RAmen.
Doesn't part of the problem come from the fact that true intelligence is based on a life time of learning and experience?? Every time someone is faced with a decision, they subconsciously compare the situation to previous experiences to help make the correct choice.. With game A.I., the programmers are sort of trying to cram a life time of experience into so many lines of code.. Seems an exercise in futility to me.
The is part of the reason we can't define what makes up our intelligence/thought processes.
its not on the wrong article, he's making fun of that article
May you be touched by His Noodly Appendage. RAmen.
That's funny, but it doesn't model intelligence, just inhuman reaction speed. Better AI would predict where to set the paddle.
Enlightening because even the most basic attempts at simulating intelligence in machines makes us realize how vastly superior Nature's machines are. And frustrating because of how difficult it is proving for us to reach an adequately satisfactory understanding of "real" intelligence/consciousness inspite of all the research/effort we've been putting in.
Not really. People just keep raising the bar for what counts as "intelligence", redefining it to mean: "what people can do, and machines can't".
People who could do hard computations used to be considered "smart". Until calculators were invented. Calculators aren't smart.
Chess used to be the sign of a profound thinker; someone wise and deep. Until a computer beat the world's best chess grand master; now it's just a considered a "toy problem", not "real AI".
Speech recognition used to be considered a sign of true AI. Now that we've got machines answering telephones and directing calls better than the average minimum wage immigrant secretary, we're going to start calling that "not real AI" soon, too.
Systems that could learn were considered AI. Now we've got machines that can teach themselves to walk every time they're turned on; but that's not "real AI", either.
We'll never have "real AI" until we stop moving the goalposts, and stop glorifying nature unfairly.
Let's face it, Mother Nature also made some really *stupid* creatures. Dogs that chase their tail, catch it, and then get angry and confused because something just bit them. Rabbits that try to "hide" in the middle of a highway, thinking if they crouch down on the pavement the cars can't see them. Moose that derail trains, trying out outrun them, instead of moving off the tracks.
AI's got a long way to go, granted. But it's not fair to just think of nature's geniuses when you see what she's accomplished. For every Einstein out there, there's a hundred village idiots. If an AI can outperform the idiots who wreck the curve, it may well average better performance than nature does.
For example, if 90% of car crashes are due to drunk driving, an AI driving system that replaces human drivers will be safer, *even if* it is only 50% as good at handling traffic accidents as a regular person is still safer: because it eliminates the greatest risk to traffic safety by getting the drunks off the road. Nature can't easily perform that kind of optimization. We can. We should.
So, really, are we that far from "real intelligence" in our systems? I'm not sure we are. The real problem is that a great deal of what's considered intelligence is largely a form of cultural prejudice.
Early cave men probably considered the first farmers "stupid" for not eating food when they had the chance. Instead, they saved seeds that they could have eaten, despite the fact that plants grew anyway. You can almost hear our ancestors now: "Stupid agriculture! A waste of time! Eat while you can, or you'll die! Stupid farmers!!!"
In retrospect, we can see how agriculture worked out well for us (it's one of our first successful technologies). But it's not hard to see why it could be considered "stupid" to our ancestors. So, if it's not obvious what's "stupid" and what's "smart", it's hard to say when we've build something with "intelligence", let alone "real intelligence". Intelligence often just means: "this behaviour refelects what I (or people of my culture) would do in this scenario".
In the game industry, we used to write our AIs like this. They worked beautiful. Then some whiners came along and said 'The AI is only beating me because it's cheating!'
And that's the reason AI is a tough subject today.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
It can be argued that once we know something can be programmed we stop thinking of it AI. A few years ago many would have claimed that a computer really should have achieved something intelligent when it beats a grandmaster at chess. Now, after the fact, we only think of it as a clever search routine.
It might just be clever programming, but figuring out how to move an as good as random combination of parts so as to make a believable imitation of locomotion has a ring of intelligence to it.
And that's perhaps the most mundane part of the game. If you believe everything that's written about it (large parts of it are probably hype), they're trying to achieve some form of emergent behaviour in many aspects of the game.
I bet you could fill another nice book or two, just describing all the AI algorithms they used, and I wouldn't be surprised if there would be a few clever things in there that haven't been published before.
While I agree that a multiplayer component is a good thing to have in a game, I think that making a strong single player experience should be the first and biggest priority for any game designers.
Battlefield 1942/Vietnam/2 for example, were built as multiplayer first and foremost, and the single player was just the multiplayer game with bots. As far as I'm concerned, these games (and Star Wars Battlefront, the shameless clone) are pretty crappy. And then we look at Call of Duty, which is essentially just another WWII shooter, but the single player is incredibly deep, even if it is somewhat linear. That was a good game.
One night at about 4:30 am after playing a 12 hour solid stint the dungeonmasters voiceover comes across saying...
"There is a large square soft object in your dwelling , you should lie down on it."
Or very similar, can't remember the exact line but it made me laugh a lot, not least of all because it clearly knew how long I had been paying and what the local time was, quite clever.
I did the game AI for a few games (cancelled Nintendo U64 game, hovercraft racing game) and for a VR prototype for Disney. It was probably the most fun job I ever had - I do mostly server side Java development now which is not quite as interesting :-)
:-)
I started out trying to write complex control code (a multi-agent system with modules for different behaviors/situations with a simply control agent to choose which module to give control to and for how long). The problem with this approach was that the game NPCs acted in complex and unpredictable ways - interesting behavior, but not predictable. It turns out that gamers want to learn how to react to game AIs. Anyway, I eventually got it right
BTW: why did I quit such a fun job? My wife and I had bought a home in the mountains of Northern Arizona and we eventually wanted to move. The stuff that I work on now can be done remotely.
Why is this same book being pimped AGAIN on /.?
after the first time I persuaded my boss to buy it. Several of us read it and thought:
meh
Im sick of books trying to ram ONE specific method for doing stuff down your throat. I dont need sample code, and I dont need to be told what to call my systems, I need IDEAS. Good AI is absed on good concepts, nothing mroe detailed. I recommend Steve Grands books if you want an AI book that actually makes you think.
DRM-free indie games for the PC and Mac: Positech Games
My #1 most hated gaming "feature" is the rubber-banding that occurs in racing games. I hate being in the lead by 1/2 lap on the final lap, drive perfectly and STILL be surrounded by cars at the finish line. Yes, I know this is meant to add excitement to the finish, but if I drive well enough to have an insurmountable lead entering the final lap, dammit, let me enjoy it!!
"Humans make mistakes, and so should the computer."
IMHO there's two kinds of mistakes, coded or planned. The coded ones are like the bot who gets stuck running into a wall or messed up by a door. Not may games can allow you to purposely trick the AI. That's one of the things that I liked about Farcry. The guards were not super human. The guards could be tricked with a rock or some silence. They didn't make uber shot you in the head from the otherside of the map kills. They had to hear or see you to act.
The only game I've played that the AI is as good is CS:source.
Referral ID included, trying to snag that dollar. Yet another "helpful" link spammed in the Book Review section.
Something I really liked which resonated with me for quite a while was how in Quake if a monster got hit by another monster inadvertently, it turned its attention away from you and tried to attack the thing that hit it. A monster-on-monster fight then ensued with the strongest winning out.
I think the reason it struck a chord with me was that it was behaviour that I hadn't seen before. Prior to that every FPS I had played followed a very formulaic "monster sees player, monster attacks player, player or monster dies". Hardly intelligent behaviour.
Max Payne is also something that stuck out - again not really from AI in the strictest sense of the word, more the simulation of realistic behaviour - like Quake. Come across two baddies and they start talking about how badass you are, and how they really don't want to come across you.
All scripted of course, but wouldn't it be great if their fear and dialogue was based on how accurate/infamous you currently were? Maybe if you weren't that accurate or often got hit they could joke about you, or something.
I am of the opinion that AI in games is not just about improving how monsters attack you, but the perception of them as living entities with self-preservation, their own agendas, etc.
I've never seen a language that supported signed one-bit integers. What was the one you used?
One might assume that Slashdot makes money from it.
At least, that would be my guess.
True artificial intelligence is only ten years away - and has been for the past three decades. AI has been a huge disappointment.
It took Mother Nature ten million years just to complete the design phase of human level NI (natural intelligence). Her production line is so slow that every single NI model takes a full 9 months to manufacture. Worse yet, after manufacturing, it takes a further ten to twenty years of painstaking intellectual configuration before it's viable for commerical use. At that point, the NI models have an average downtime of over 66%, spent in "sleep mode".
Compared to nature, 30 years of basic design time for an AI system is nothing! It takes nearly that long just to configure a new NI, for goodness sake!
The new AI models can be manufactured in days, not months. They ship pre-configured, without requiring that 20 years of cultural and intellectual configuration work. They have 99.9% uptime. Sure, the high end NI models have better functionality than the AI, but they cost more, and they're less reliable. A NI may suddenly stop working for no apparent reason: system crashes of this sort may be due to bugs known as "stress", "depression", or even "madness". NIs are also subject to so-called "viruses" that can totally destroy the entire production model if not caught in time. Even if detected, years of work may be required to repair the NI, and some problems may be so entrenched that the system is irrepairable.
The new AI models are competitive with low end NIs, and are being used to replace NIs for such tasks as directing phone calls, taking dictation, reading to the disabled, and so forth. AIs are in the lead for certain specialized tasks, such as chess playing, mathematical computations, and high message relaying. Most AIs recover well from crashes, and viruses seldom, if ever, damage the physical hardware. Virus recovery can be accomplished in a short time, though configuration information may be lost.
Most 'AI' problems that have been solved have been solved via brute force combined with the advance of Moore's law. From what I've seen of game 'AI' - it's more a mimicing of intelligence and not very impressive mimicing at that (not much more so than the 'Eliza' class programs of the 70's).
Metaphysics aside, it doesn't matter how a problem gets solved so long as it gets solved.
You can't really "mimic" intelligence: intelligence is just the ability to solve a given problem. If a system solves the problem in a way acceptable to humans, then then it has "human intelligence" with regards to that problem. It's that simple.
There's nothing magic or infalible about human problem solving ability: we make mistakes like every other species, probably the one's we're adapted to make. Rabbits freeze in headlines; dogs bite their own tail and wonder why it hurts; humans make poor decisions too.
It's true that computers are currently very bad relating to our local cultures, with regards to language processing, cultural idioms, and "common sense" cultural assumptions. Then again, so are many foreigners. It's one of the harder problems in AI, since we don't know how we do what we do.
If psychology ever becomes a hard science, we'll know the concrete answer to many of those tricky questions about how our own deductive machinery worrks, and then encoding similar process in other systems won't be so challengeing. Until then, we're stuck with doing research to find out...
I don't think it's fair to say AI has done poorly. I think it's done incredibly well. Just look at the things we do have!
We've got automated translation working so well that I can read documents in foreign languages that I don't speak, thanks to Bablefish. It's not as good as a skilled translator, but it's better than an unskilled translator (like me!). We've got a chess program that beats grand masters at chess. We've got calculators that can compute logarithms on the fly: no log tables required!
I recently phoned my local cell company, an
Until we have a clear definition of intelligence it is best to model only well-defined aspects of human and animal behavior.
Has anyone read Brian Greenstone's Game Programming Guide for Mac OS X? I'm curious if that is a better place to start than this book.
:)
Note: This is not a plug, I'm not the author, and your offtopic mods don't scare me.
Hell, maybe someday AI will replace telemarketers. Then you won't feel quite so bad about playing jokes or hanging up on them (I know some of you don't feel bad about it already, but you have to understand that some of the people are just desperate for money and that's the only job they have).
General Dynamics hired my uncle to make tanks that can operate on autopilot in the battlefield. I was having some success at AI but stopped working on it when I realized what it would be used for.
Charles Angelich
And of course, my AI for winning at Slashdot:
while (1)
switch ( int(random()%5) )
{
case 0:
printf("First Post!");
break;
case 1:
printf("Micro$oft is the 5uX0rs");
break;
case 2:
printf("Yes, but does it run Linux?");
break;
case 3:
printf("DUPE!");
break;
case 4:
printf("I know I'll get modded down for this, but " + char(random()));
break;
}
The problem with AI as it has been developed the last 50 years is that it is based on totally wrong principles. We can't build machines that think the way nature's machines do, because of the technological limits, but most importantly, because we have 'solved' the problem of AI in the wrong way.
There are currently two approaches for AI, both wrong.
The first approach is to program the rules of the problem in a hierrarchical manner, through a series of 'if this then do that'. Of course that does not work, because not all the possible cases are handled (and the possible cases are trillions in most computer games).
The second approach is to make a neural net with weighted 'neurons' that get updated according to the happennings around the world. Again this is wrong.
The reason that both approaches fail is that there is no 'goal' for the AI algorithms, whereas in nature every move of the brain is performed in order to fulfill the needs of the host entity.
The primary goal of a being is to 'survive'. That is the only goal hardwired into a being. The mechanism used for achieving this goal is actually very very simple. Here is a description of it with simple steps:
1) the input is being patterned matched against the stored experiences
2) the most similar experience is recalled
3) if the recalled experience is good, the action that corresponds to the experience is taken; otherwise, the opposite action is taken
4) the whole input/pattern matching/action selection is stored in the brain as an experience.
That's all there is for intelligence. Every human action is, deep down, an attempt to survive. From love to war to hate to writing poems, to playing computer games etc, all of human actions have one common underlying trait: it's all there so as that emotions are felt, and for the proper substances to be released, so as that the entity survives.
As humans grow up, their experiences get more and more complex, involving speech etc, and then conciousness emerges as the result of 'storing' the various experiences throughout life. There is no hardwired conciousness...the ability of the brain to reflect about itself, to model the world, and 'talk' about it comes as a natural result of the pattern matching mechanism.
Since AI systems lack any goals, they do not evolve. A true AI for a computer game would have no specific rules inside it, but a way to store experiences, do pattern matching and take appropriate action according the input.
If you're using signed ints for booleans, true isn't -1 because of where the significant bit is; true is -1 because that's the two's complement of 0. So -1 is 1111 in binary, and !-1 is 0000, or 0, or false. If true was 1, which is 0001, then !true would be 1110, or -2.
It's easy to shoot yourself in these languages, since you can have things like:
int x = 4;
if (x && !x) {
printf("This code will get executed.");
}
THEN
*plays the Apogee theme song music*
Well, I haven't hear too many people talking about Artificial Insemenation lately. It seems to be pretty mundane these days. I suppose the cattle breeders and the hog breeders talk about it occasionally.
... until they realize biological intelligence is the place where AI really needs to start. It seems pretty ass backward to model biological behaviour on a machine when you don't understand the mechanics of Biological or human consciousness.
My guesss is 'real' true AI, that see's the world like us and senses it like us wont be understood for a long time. Because lets face it, what AI really gives us is precise tools, to do all the jobs we cannot more precisely, but the fact is these greater functions were made by us, and are still reliant on our wetware brains for their superior formation and organization, and are only as good as we build them to be.
AI is supposed to do more and be more then just an automaton running algorithms, what I mean is, it has to self-aware environment like we are, when we are very young when we are first born we run algorithms that build some the foundation of the mind, none of us remember learning to walk or our first words within our first year or two, our self-awareness, 'we' as we experience ourselves don't wake up until between 2 and 4 year of age, this can vary somewhat depending on how fast the brain develops but the biology does most of the 'plumbing work' for us to build a foundation / mature the brain structures, to the point where enabling self-awareness makes sense.
Babies may seem alive and self-aware when they are very young but they are not, they do not experience the world at all like 6 year old, they are effectively asleep until the brain has matured to the point where self-awareness is achievable, we do not understand this process and until this is understood AI will be a wet dream if we truly want to create intelligences like human beings that are not merely machines not aware of their own existence responding in like a live human being in every respect, but not really alive. You can only really be said to be alive if you awake.
People in their sleep speak and move and do all sorts of 'living' things but they are not aware that they are doing so, it's all automatic, this is basically what most if not all AI will be like until we understand the threshold of what causes human self-awareness.
The thing is, unless you are talking about NPCs in an RPG, AI doesn't have to model all aspects of the human brain. It just has to model enough in order to act out the limited role that that character has to play in the specific game.
For instance, in a racing game, the AI of the other drivers only should know how to drive the car. You don't need to give the driver a fullblown consciousness.
So you have to scale your AI approach to the game.
I'll be impressed when a computer can acend in nethack. You don't have to have human intelligence to do it. but you do have to plan ahead.
AI _can_ help with data reduction, but not understanding.
t ml:TD-Gammon learned to play certain opening positions differently than was the convention among the best human players. Based on TD-Gammon's success and further analysis, the best human players now play these positions as TD-Gammon does
TD-gammon is a classic example of how AI has improved the understanding of a particular subject of study. Gerry Tesauro created an AI backgammon player that not only rivaled the best grandmasters of the time, but also allowed a new strategy of oppening play to surface as the dominant style.
http://www.cs.ualberta.ca/~sutton/book/11/node2.h
The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
If I understand the review, the idea is rendering the environement for the AI, the problem of course with this idea is that it can be very cpu consuming..
Of course you don't have to do the full rendering, but for exemple light condition should have an impact on visibility so the rendering must be quite detailed..
Oh let's think positive. Maybe one of the problems in AI is that the part of our thinking of which we're most aware -- the conscious, logical, linear, step-by-step part after which we model our computer programs -- is the part that does the least of our daily-life thinking. Maybe the bulk of our daily-life thinking is half-unconscious and massively parallel, to suit our hardware (10^12 neurons with a 1 kHz clock cycle).
Indeed, I find it fairly plausible that the bulk of our normal "human" ability to usefully and sanely respond to each other might have less to do with peering many steps ahead down complex decision trees and more to do with being able to recognize a huge number of variations on certain basic patterns and situations, and doing so on the basis of incomplete and noisy data. In other words, what makes humans good at, well, being human is more like recognizing a familiar face among thousands you've never seen or solving Where's Waldo? puzzles than playing three-dimensional chess with the M-5.
Alas, the bulk of the computing community has developed fairly little expertise in trying to imagine how to build, program and debug that kind of hardware/software combination.
So maybe that's all the problem is. We might just need to get used to building 500 nm wide nano-CPUs running pico-kernels, and figure out how to wire up a few billion to accomplish pattern recognition tasks as fast as we do.
A nice example of one of the problems with AI you don't want to make it too good. You could say this is a god-like AI which is perfect. A harder task is to make non-godlike AI's: enemies which miss some of the time.
There are four sorts of people in the world: fools, lunatics, idiots and morons. - Umberto Eco, Foucaut's pendulum.
Then some whiners came along and said 'The AI is only beating me because it's cheating!'
Only an idiot would play poker against someone who had a few extra decks stuffed up their sleeves. The challenge is meaningless when the opponent cheats.
Max
My god carries a hammer. Your god died nailed to a tree. Any questions?
Then some whiners came along and said 'The AI is only beating me because it's cheating!'
Imagine an FPS. Imagine a map with a long open space - long enough so that an opponent at the other end of the space is one pixel, total, on the screen. Now realise that a computer would be able to hit that opponent in the head every time . That's not going to be much fun to play against, even though the machine isn't 'cheating' per se.
Now, imagine an RTS game - a human player can only see a section of the map at one time. A human player has only his past experience to gauge troop movement speeds. A computer player could simply throw their troops at two different targets that are too far away for the player to watch both at once, the computer player could coordinate things so that the attacks happen at exactly the same time. This doesn't sound so bad, until you consider that the computer also knows exactly how many hit points of damage your troops have, how much damage its troops can inflict and can precisely gauge things so that the human player cannot win.
Why would people play games like this? They wouldn't. Simplistic AI like the above doesn't make games, it just isn't entertaining. And that's the reason AI is a tough subject today. Not because of any 'whiners'.
Many books have been dedicated to studying and expanding the field of AI, but generally fall into two categories: those that concentrate on AI as a research topic, and those that concentrate on AI in the field of game development.
IMHO the traditional subdivision of AI is between expert systems and automated learning. Games, is a field of applications, as are language technology, machine vision and machine operation optimization, for example. Games are really just a fringe.
The two categories categories proposed here are like saying: "there are 'basically' two categories for programming languages: LISP and non-functional languages." Here, 'basically' makes no sense outside the scope of LISP.
For a more accepted categorization of AI, look here
In such languages the boolean AND is implemented with a bitwise operator (indeed, that's the whole point, for efficiency.) So in your example the printf would not be executed.
A language that implemented a C-style "&&" but a bitwise "!" would be retarded.
My AI education overlapped enormously with CS. We got the same programming and SE courses that everybody else got. The main difference is that we got less hardware and OS stuff and a lot more logic. And ofcourse lots of AI techniques. Most CS students did learn a bit about search algorithms and expert systems, but not about neural networks, genetic programming and multi-agent systems.
And in my opinion, it shows in the state of AI in most games. They do some decent searching where possible, but mostly have vague, unfounded heuristics that seem to work nicely at first, but crumble as soon as the gamers get hold of the game.
But although most of my fellow students and AI are gaming adicts and would love to work in the gaming business, we've all ended up C and Java programmers for web applications. I'd love to have a job that involved a bit more AI, but those jobs just don't seem to exist. Not in my country, anyway.
mcv.
...there were some exceptions to the above rule: all monsters armed with guns could hurt anything, including each other. Thus sergeants, soldiers, chain gunners and spider demons could all fight their own kind, although because bullets travelled infinitely fast it was difficult to induce them to hit each other in the first place.
Whence? Hence. Whither? Thither.
By far, the BEST book on this subject, is
"Programming Game AI by Example", Mat Buckland
When I got this one, I threw out all my other books on the subject (well, I kept all books of Knuth, Dijkstra and Cormen, but they more on algorithms than AI)
he also has a book on neural networks and genetic algorithms that is great: "AI Techniques for Game Programming"
-KA
It doesn't help in CRPG's (real CRPG's, not MMO games) though, I just can't imagine anyone wanting to be a peasant or kobold or some other random NPC.
But when the first one found a path to you, they would mark the grid point just before you with a high (but not infinite) 'cost'. Then the next enemy to plot a path to you would naturally try to avoid that spot, but would use it if there were no other choice.
Presto, enemies naturally try to come at you from multiple directions, without having to spend a lot of expensive cycles on modelling 'intelligent' coordination and strategy.
PHEM - party like it's 1997-2003!
That's why good FPSs simulate bullet spread, i.e. the bullets randomly fall slightly off from where they're aimed at. That way the "AI" doesn't have to be programmed to aim badly, which is also boring. The same limits can be imposed on humans and AI. This is done by degrees of the angle, not total distance, so I suppose you still need to stop them behaving like an aimbot at close range.
Maybe it's better to limit the reaction time somehow? Maybe a limit on the speed they can rotate their point of view would be good. After all, a major issue for human player is how fast they can turn the mouse.
# cat
Damn, my RAM is full of llamas.
It can be argued that once we know something can be programmed we stop thinking of it AI. A few years ago many would have claimed that a computer really should have achieved something intelligent when it beats a grandmaster at chess. Now, after the fact, we only think of it as a clever search routine.
There's some truth to that, but I think people want AI to be done the "right" way, like a chess program that was an outgrowth of a general purpose intelligence rather than a specialized one-trick-wonder.
If Deep Blue (or whatever the latest champion is) could also pick out a face in a variety of lighting conditions, have a half-acceptable conversation, or even learn to play a decent game of Checkers or Stratego (all using the same basic ideas that let it play chess so well not just bolt-on independent programs), then we'd have Artificial Intelligence, not just Artificial Idiot Savants.
Or if something like Cyc could LEARN to play a decent game of chess after being told the rules. (Heh...actually in some ways Atari 2600 Chess with its habit of rearranging the board (during the screenblanking "thinking" period) when under "stressful" situations almost seems more human than something like Deep Blue.)
What's also interesting is reading about how the human grandmasters deal with high end programs. Humans play chess by "chunking" the pieces on the board and applying pattern recognition. Similarly, humans can kind of "chunk" the strategies that specific AIs fall into, and try to counter them, even though it's still damned hard to do so. Conversely, I'm not sure if we have a serious AI that could even take things to the metalevel like that.
SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
I think it's been mentioned in this topic already, but AI isn't necessarily making it so that the computer can beat you everytime (or at least so it can't lose), AI is taking away that advantage. In a way, adding intelligence involves dumbing down the computer. :)
Plus, when you play pong it isn't always your objective to hit the ball. Usually you want to try and get it with the side of your paddle to get it moving real fast.
There are 10 types of people in the world. Those that understand this sig, and those that beat up people who do.
Good point.
I wonder if this might be a standard of the Turing test. From what I know of the test, a computer has passed when it can communicate with a person and the person cannot identify it as a computer.
When I play a FPS against a computer, I know it. So do you by the point you make. When a computer can strategize in such a way that I cannot tell it is a computer, that will be a successful Turing test, IMHO.
Ok, clearly the ;-) at the end of my post was too hard to spot. I'm arguing the very point you are: that AI is very difficult to write because people want it to play blind and with power equity (without precise knowledge of the state of the game, or manipulating the state of the game in a way unavailable to the player) as if it were a human being. The given pong AI is invincible precisely because it manipulates the game in a way unavailable to the player (moves the paddle to precisely the ball's position, even if the paddle can't be moved that fast by the human player).
The problem is, that with no cheats whatsoever available to the computer, it has to act nearly as smart as a human in order to be competitive. AI techniques are no where near human intelligence right now, and won't be for at least 40 years, barring some surprising advance.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
This distinction is one of several reasons it's so frustrating that people refuse to differentiate between AI and simulated agent behavior. There isn't any AI on Earth anywhere (except in deep dark government lockdown vaults maybe.) What drives your video game is called a simulated agent.
StoneCypher is Full of BS
I think you are assuming that everyone reads all of the articles like you do. They don't. So the mods don't get your joke.
Their techniques are alpha-beta cuts and many specific heuristics.