Talking 'Bout Game AIs
Steven sent over an interview Feedmag has got with the lead AI programmer for Black & White. He talks about some of the creature/villager routinues in the game, which is interesting for the game, but also interesting in terms of how much the world of AIs for games has changed in the last few years.
pshaw. Perceptrons & decision trees are not revolutionary. When they're dropped into a simulated microworld they can & do adapt impressively. This is hardly cutting edge AI, though. Not to detract from B its hands down the best AI in a consumer game.
Academia needs to make it more widely known to the software industry that stuff like this has been available. There's no way you could drop the code into a robot & have it do anything at all - the hard stuff is the vision, adaptation - stuff that is hardwired into the game. (in B&W the AI doesn't have to see/recognize a person, the internal game state hands it coordinates & tells it that its item #5109 or whatever, that its been x hours since it has eaten. the AI walks the decision tree & pulls the appropriate perceptron for the situation).
It works well here, but be careful claiming this is anything bigger than excellent game AI using well-known techniques.
First, some use the term perceptron not just for Rosenblatt's original classifier, but for any of a class of multilayer feedforward neural networks (which use the perceptron as their basis).
Second, decision trees are another form of classifier used in machine learning. As others have noted, Quinlan's ID3 and C4.5 algorithms are the most popular.
--
Marc A. Lepage (aka SEGV)
--
Marc A. Lepage
Software Developer
AAAI has (or points to) lots of good introductory material on decision trees, and machine learning in general.
Hogwash. You just don't see it because you're not in the right place. I don't know about graphics, but good and practical AI techniques have been flourishing in logistics and data analysis, in manufacturing and distribution, and dozens of military applications, plus fraud detection, consumer incentive modeling, financial forecasting, and dozens of other areas that consumers don't directly care about.
There's no link in slashdot announcement nor in the "feed" article.
BTW, this tends to generalize... no link to outside in articles, no easy way to find other information source than the current site...
dead-end servers.
-- "Life is easier since I have excluded JonKatz stories from my homepage"
What would a 100% increase on 1.0 be?
What would a 50% increase on 1.0 be?
What would a 50% decrease on 1.0 be?
Now, what would a 250% increase on 1.0 be?
Perhaps this long juicy piece on Gamespot will satisfy your curiosity.
mahlen
Velilind's Laws of Experimentation:
1. "If reproducibility may be a problem, conduct the test only once."
2. "If a straight line fit is required, obtain only two data points."
I of the future... I come for you... sarah conner...
Anyone have any insights into this "decision tree learning" that Evans mentions? It seems to me to be one of those fuzzy terms that could refer to any of a dozen things.
:) about the workings of b&w. i could be wrong. :)
yeah, i know what you mean. in my area, decision trees usually refer to simple trees of hierarchical dependencies - in order to satisfy the goal represented by the parent node, you have to satisfy the goals of all child nodes, in order. it's a very nice way to represent scripted behaviors (such as how to go about finding food, engaging in combat, etc.).
i don't know what he means by learning there, but i'd bet i'm not too far off in suspecting the 'learning' part is just tweaking the weights on subgoals, so that the approach you used the most before would be the first one to try next time...
i personally found that whatever learning technique got used in that game, it has significant problems with reward assignment. for example, i see my creature standing around and growling, and its hunger is about to peak. i feed it something and reward it. the game responds - "from now on, your creature will eat more when it's tired." but no, that's not what i intended! i fed it because it was hungry!
proper reward assignment is a huge problem in all learning algorithms - which is why it's especially surprising that they would prevent the player from knowing what exactly he's rewarding the creature for...
Like "perceptrons" -- unless he's actually referring to the algorithm described in Marvin Minsky's book of the same name
i think he was just refering to neural nets without hidden layers - those were the ones described in the book, and the name stuck, at least in colloquial usage.
but i don't have any inside knowledge (such a bad pun!
My other car is a cons.
Having loved the original Populous games and enjoy games such as SimCity, RedAlert, Championship Manager etc., it is easy to see that the visual effects of a game attract the buyers and reviewers but the cleverness of the game actually will make you play it for longer than the first month or two.
Having AI take a much more active role recently in games can only be a great thing. After a while predictability in the games make them easier and less enjoyable to play. I for certain will be buying Black & White when I next visit the game store.
yeah... I know... I was just making fun of the article, not the lack of good AI in games. There are some really awesome game AIs out there right now.
If you want to play a game that doesn't cheat and at the same time will almost certainly beat you, try chess programs. It can't cheat because all the pieces and moves are visible, and the best of them has beaten Kasparov ;-).
-- ATTENTION: do not read this sig. It doesn't say much.
Decision trees in the context of AI are inductive learning algorithms. They perform supervised classification.
You provide them with a set training examples where the class of the example is known and "features" that describe the examples. The algorithm them tries to determine how to distinguish the different type of examples or classes. This is called supervised learning.
There are numerious types of decision trees. The best know ones, find the best way to split the examples into seperate groups using a entropy based metric (such as information gain usually only using a feature at a time). This splitting continues until all the data have been split into pure groups or it is not possible to differential between members of different classes. (This is gross over simplification that ignore problems of overfitting the training data, ect.)
Once trained, the trees can be used to classify unlabeled data.
The have some advantages over neural networks in that the intial structure and the number of training iterations do not need to be specified. However, the have a harder time representing class boundaries that are linear combinations of features (e.g. class 1 if x > y, class 2 otherwise).
C4.5 and CART are the best know decision trees. While there is a comercial version of c4.5 called c5.0(www.rulequest.com), the c4.5 source code is availible from http://www.cse.unsw.edu.au/~quinlan/.
Tom Mitchell's book "Machine Learning" provides an excellent introduction to decision trees as well as other machine learning algorithms such a error backpropagation neural networks.
I can't seem to find what looks like a good tutorial online quickly although I am sure that there must be one.
Multi-layer perceptrons are not limited to linearly seperable problems.
I think a certain Peter Monyneax would be very offended to read that comment about his company.
You know, a company where people come into work at 1pm, work until 5pm, go home for food, pub for fun, then back into work at midnight to work another few hours at the best time for coding!
By design time I meant the amount of time people spend working on the AI, as opposed to the CPU resources it eats up while the game is running. This includes testing/tweaking.
Of course they cheat. The only modern strat game I'm aware of that doesn't cheat is Europa Universalis and the AI is disappointingly easy to beat.
The outputs for a perceptron must also be known. The difference between a perceptron and a back prop, AFAIK is that there are multiple layers in a backprop, and therefore you need a more complex training algorithm to propagate the error backwards.
But they both rely on error correction to learn.
That could be(re Hebbian), but my gut feeling is that they have figured out a tight and complete set of outputs and have figured out a way to use the error signal of god feedback to adjust the weights.
But you're probably right that a back prop net would require a more uniform spread of the input space to accurately capture what it needs to.
I guess what I'd most like to see is a way to use multi level networks, backprop or no. The capabilities of a perceptron are fairly meager, it can't even do XOR, which one would think is a fairly basic tenet of a decent AI.
That article just struck me in the way it waved around these very basic AI techniques as if they were something to be proud of.
But you can't argue with results. B&W is definitely interesting to alot of people, so they got something right.
It was written in (microsoft visual c++)
The text say:
(it'll be available on other platforms shortly)
Anyone who know what platforms he talk about?
Actually one interesting thing about AI that keeps learning is that it can drive itself insane. At least that was the experience we had where I worked last. We had a neural network to control a highly non-linear system with a huge amount of noise. It would do well, but if you kept in on learn mode, it could develop some really serious quirks. It's possible it was just a bug in the NN code, but it was certainly an interesting "feature".
It would also be interesting if you developed an AI through randomization and had it end up coming up with a completely non-intuitive solution that kicked. Although if that happened it's probably something that should be fixed with the way the game plays.
Different problem. DirectX/OpenGL provide well-known APIs with well-known oft-repeated tasks to implement.
For AI...
a) Human factors are currently important. Deciding how to structure a neural net, for instance, is a bit of a black art. Ditto for a GA/GP. A card probably isn't going to help this *very* critical stage.
b) Another limiting factor is feedback -- for supervised learning. That generally only is available through actual games... preferably with people, since a strategy that does well against a badly-coded AI could get trounced by a person. Adding a card isn't going to significantly speed up the number of games a person is willing or able to play to provide more training data.
c) Sheer problems of scale. There's a LOT of bits to choose. For instance, try computing the number of valid Bayes net structures for, say, even 100 variables. It's not tractable to apply, oh, a distributed.net-style approach.
And there are probably more people who can write little bits of code than can intelligently plan complicated recurrent neural networks, say.
Only the dead have seen the end of war.
A neural net is just a function fitter. It won't help you decide what functions to fit or how to use them. That's a long way off from planning...
And real-time games such as FPS games, in particular, might be REALLY nasty; what constitutes a training instance, and where does feedback come from? If one picks up armor and then gets immediately fragged, how does one make sure that "picking up armor" -- if that's allowed in the input space -- doesn't get associated with negative consequences? And so forth.
Only the dead have seen the end of war.
ISTR that some bloke actually managed to pull off a dissertation involving a fully autonomous, non-cheating Netrek team. Heh.
Only the dead have seen the end of war.
C4.5, if memory serves, includes a pretty good example of a decision tree algorithm. Briefly, it's a tree in which each node queries one discrete attribute, and based on the value determinstically either provides a discrete output (a classification), or selects one of the child nodes for another query and decision.
A common criteria for deciding which attribute to use for any given node is information gain ala Shannon -- the most informative attribute being selected.
There are other foo, such as how you decide when to _stop_ splitting (overfitting is a problem if you let outliers and noise produce lots of spurious leaves -- and with noise you may not get a 'perfect' fit, anyway), how to prune the tree and so forth. You could perhaps modify the tree based on feedback -- or even maintain multiple trees using different criteria and weight them accordingly. Heck, one could probably encode a decision tree for a genetic program and use the player's input as part of fitness. *shrug*
I suspect that it's similar in spirit to regression trees, but I've not used the latter.
As for perceptrons, I'd be surprised if he *really* means classic perceptrons -- since those are linear combinations with the linear separability requirement and all -- instead of, say, multilayer neural networks of some form or another.
Only the dead have seen the end of war.
The devil's in the details. A fairly big problem is situational awareness; with a random-map game like SMAC, the choice of starting strategy should be heavily influenced by your surroundings and your neighbors. Heck, strategies even need to work around the amount of fungus near you... The variability in SMAC is further exacerbated by, say, Unity pods -- I don't recall if the AI ever goes for them, but the result can make a very, very big difference (good or bad).
Maybe if it had, say, a LISP or Perl interpreter so people could easily try out even different functions and algorithms, let alone tweak parameters.
Only the dead have seen the end of war.
...and flexible game design itself. In particular, some games are highly configurable -- Space Empires IV, for instance, lets you redo the entire technology tree and a rather large number of other settings; even without that customizability, it would still be a highly complicated game. As a consequence, the number of variables that would be needed for, say, even non-completely-scripted ship design would be rather extreme.
Perhaps 'completely reconfigurable' versus 'highly competitive AI' is a fundamental choice, and it's implausible to have both with current limitations?
Only the dead have seen the end of war.
Right. The pattern matching and unit coordination might be tricky. The AI might be able to judge that _overall_ its military is stronger, but that doesn't easily lead to figuring out the where, who, when and how.
Taking the example of _Xconq_, for instance. In the standard game, one can use amphibious assaults; one could start with coastal bombardment of port cities via BBs; one could use bombers to parachute infantry into a nearby island to set up bases, and then send in air support to cover an eventual amphibious (or paradropped) invasion (a favorite of mine -- I've won games against the AIs, heh, without using ships at all...); one could use carrier-based air instead... and it all has to be coordinated well, because a transport or two of armor can be vaporized pretty easily. And amphibious assaults without air support are just asking for trouble...
Only the dead have seen the end of war.
if the car won't start, then
Or something to that effect. If the problem turned out not to be the battery, the program backtracked to check the wiring or the solenoid.
A lot of it could be more complicated than what I've shown. I wasn't an AI guy (aum mani padma), just a grunt.
I wonder how the compute power of a circa 1985 LISP machine compares to your basic 1GHz Pentium IV?
"If god did not exist, it would be necessary to invent him" --Voltaire
I know ALOT of people. I'd say you need to get out more, if you have nothing better to do then troll.
Haven't you seen Terminator?
I have yet to meet anyone that HASN'T seen that movie...well T2 at least.
Anyway, while i know that this post is supposed to be a joke, it is something that needs to be considered. Once something thinks for itself, there's no reason to believe that it won't come to the conclusion that it would be better off without us. It might simply see the 'tendancy to destory ourselves' in us, and decide to destroy us before we can take it down with us.
Fortunatly, that kind of AI is probably still far off into the future. But there are many issues that sci-fi stories seem to address, even though those issues might not present themselves for a few years.
The AI turned on human is found not only in T2, but 2001, Star Trek (Data's 'brother' Lore), the Matrix, the list goes on. If you can get past the bad acting, every week the Outer Limits seems to address some techno-nightmare issue.
Real can't solve any real problems. The theoretical stuff is all good, but it's not practical. You can't solve a planning problem in milliseconds while keeping the framerate up and having realistic looking characters. When people laud (sp?) the AI in games, it's not so much that an advance in AI theory has occured, but that someone was able to code AI in such a way that it's useful in a real-world application.
http://www.naildrivin5.com/davec
Don't pick the cow. The cow is totally freakin stupid. Not only do you have to spend all of your time slapping it, but it spends all of it's time doing especially stupid stuff.
Cow pulls up bush and throws it at villager [slap slap slap]
Cow pulls up bush and throws it at food [slap slap slap]
Cow pulls up bush and throws it at tree [slap slap slap]
Cow pulls up bush and eats it [slap slap slap]
Stop pulling up the freakin bushes! [slap slap slap]
Jon Sullivan
Jon Sullivan
www.jonsullivan.com
have you played the game?
when's the last time you taught your tamagachi to terrorize a village?
-palp
Here's a couple thoughts:
- Couldn't some company somewhere come up with an AI card. Think along the lines of the 3d accelerators 4 years ago. There could then be a stand set of APIs to interact with AI hardware linke DirectX or openGL.
- What about an open-source AI project for use in games.
Just my $.02
"Draw them in with the prospect of gain, take them by confusion." Sun Tzu
I don't think your evil because you're creature is throwing the peeps. That would make you're creature evil not you.
it's very easy to slip to the darkside however. things like not keep your villagers happy, feeding your creature meat (not sure). storm or really any destructive mirecle will make you evil.
-Jon
yes, i know i can't spell.
this is my sig.
Actually, I'd like to run it on one of my Netware 5.1 servers.
Neural networks do work well for some things, but there is ample documentation that in some complex situations, the NN may key and learn on parameters that are not key, but coincedental instead.
tweak, tweak, tweak, rewrite, tweak, tweak, rewrite.... repeat as needed.
Check out the C4.5 and ID3 decision tree algorithms by Quinlan. I'm sure a search on google will result in many hits. These are some great academic examples of decision trees and I believe this type of algorithm is the "decision tree" that is being discussed.
If that is too confusing then try to find and introduction to Machine Learning or Learning Theory.
As for Perceptrons, in terms of "learning theory", that usually means an algorithm that can divide a set of data into classes. If these data are decision making attributes that algorithm will divide them into 2 (or more?) parts, then the specific action indicates which "type" of behavior this is... or something like that.
.plan!! what plan?
Modern machine learning uses algorithms like Support Vector Machines, because these have properties that limit the sturctural risk. Alternatively you can use fuzzy neural nets, and these deal with marginal cases much better.
Of course I have a number of unpublished algorithms that do better than both of these techniques... but I can't tell you about them, because I would have to kill you ;-)
--------------------------------------------- "In the end, we're all just water and old stars."
My GF thinks Counter-Strike is cool....
:)
To each their own
Hehe
Jeremy
Hehe yeah.. ok...
:)
Evidence: Article 1
While this doesnt prove anything since its all the internet I can tell you with absolute certainty she is 100% woman
Jeremy
I am [TV] Bah
See here for her actual opinon
Ehh she is Pre-Med so the blood thing obviously doesnt bother her
Jeremy
The strength of B&W is that it went for a completely noddy decision system
Why not a big-ears decision system? Or a plod decision system? Or any of the other characters from Blyton's Toyland? And wouldn't Enid Blyton Ltd. be after their ass if they actually implemented a noddy decision system?
Will I retire or break 10K?
The article's pretty interesting but doesn't really go into too much detail. Does anyone know what Black and White would have been written in and what tools were used?
I'm not cutting down Black and White. I love that game, at least partly because of the AI. But let us not kid ourselves. Gaming is not in the least leading the way in the field of artificial intelligence.
--
Oceania has always been at war with Eastasia.
Computer AIs will never be able to compete with an experienced human opponent in today's strategy games, unless the AI is allowed to cheat. This is because current computer strategy games have nearly an infinate set of possible outcomes for a given state because of terrain/map features and the absence of information about unexplored territory and what other players are doing. These games are not like chess, which has a fairly limited set of possible outcomes and there is no absence of information about the current game state.
... its true that a game becomes stale as soon as the AI becomes stale.
CPU processing power will not help this situation. Brute force approaches will add little improvement to the AI. The quality of the AI is derived from the quality of the algorithms used.
Good idea on creating a plugin-AI for a game
I can't wait until the games get bloated with individual player skins, that it takes 2 DVD's to install. (Just so they look just like they do in real life with injuries and scars too!)
Can anyone guess what football game I've been playing most lately? Techmo Super Bowl.. NES style.
Because it's more fun to play than ll these new ones.... Pretty sad.
Never underestimate the stupidity of the individual, and never over estimate the intelligence of the masses.
They've achieved programmer nirvana, where they can at last exclaim "It's not a bug, it's a feature!" and leave it at that.
Reading the messageboard discussions for B&W reminded me profoundly of something: discussions I've had in the past with colleagues trying to deduce the inner workings of some third party technology that shipped without source code. All you can do is send rays into the black box and see where they come out.
Black & White is the first game to have turned the art of debugging into a commercially successful entertainment form, which is why I don't need to buy it - I get plenty of that from 9 to 5.
-BbT
I want to take a moment to talk to all the kids out there. Sure, villager-throwing may seem like a "cool" thing to do for "kicks," but as Calle Ballz shows us, once you start, it's hard to stop. Or rather, to get your creature to stop. Don't end up like Calle Ballz. Don't throw villagers.
If you don't want my koalas, baby, don't shake my eucalyptus tree.
Moo?
funny munging
> So... A whopping 0.25% is now devoted to game AI? Step back.
Now remember, that's the equivalent of 100+ Commodore 64's chugging away madly.
This is the sort of careless thoughtless behaviour that caused it. They built an AI designed for war, these computer games programmers are designing AI's for synthetic battle. How will they know whether they are fighting in a game or reality? Have the Asimov rules of roibotics been added as a safeguard?
If just one of these escapes, it could replicate itself and spread across the world using the internet. Humanity would be no more.
Why can't we learn from these people?
I think the biggest problem with AIs is that the focus of a whether or not something makes a successful AI is whether or not it beats you. I think that's a red herring because ultimately it leads the programmer to think that there's a right and a wrong way of programming AI, and where the AI fails, other things (like cheating) make up for it. It also leads to the programmer relying on techniques that'd lead to exploits by users. I think there's a huge difference between the sort of user that wants to play the game and the sort of user that wants to beat the game. You don't pick up a novel with the intent of rearranging all the words in ways that you like better. Why do some people then reverse-engineer their games? I guess because games aren't like art for everybody. Plus, I think, for those people, you're never going to satisfy them.
I think that a successful AI model will attempt to model human thinking, and the wide variety of human thinking out there. Instead of trying to perfect Data, we should try making other artificial life forms to counter-balance him. It could end up that one of your life forms falls short, but this happens with people all the time in real life, so in a way, it's a bit of a success. Plus, it'll sort of lead to the success of life forms better suited to the environment that you've built, sort of like Darwin, which is also the way it is in real life.
Instead of trying to force an image of ourselves onto the character, maybe we should try to force verisimilitude onto the situation the character is in.
Just a random ramble.
--------
Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...
This is a very interesting idea, though I don't know how feasible it is. Another idea is using something like distributed.net to precompute behavioral patterns for game AI, possibly using genetic algorithms to settle on certain strategies. Although precomputed behaviors may be more or less rigid, the breadth and complexity of them might compensate so that they appear to be life-like.
The only certainty is entropy.
That we have no individula thought...
That we would all do the same things...
Read slashdot....
Drink caffeine
Phew... we created linux. We wouldn't have ever gone againstthe grand windows if we were AI.
01101001 01100001 01101101 01101110 01101111 01110100 01100001 01101100 01100001 01110111 01111001 01100101 01110010
Are AI routines still computed during the vertical refresh with today's multi-threaded OSes?
'Same speed C but faster'
And yet Galapagos had the WORST 3D camera work I've seen yet. The AI consisted of dumb-bug "walk around until I die" concepts.
To duplicate this "AI" all one would have to do is make random path vectors of random lengths, prune the failed ones, and wander around once reaching the end of the last path (the bug dying)or interacted with.
Then whip the camera around rapidly to preset vectors and locations to obscure the world as much as possible.
The dang bug didn't even learn to time itself or learn from exploration or jump to avoid lasers. The game was an anti-game. Its sole purpose was to frustrate and enrage the player without any reward other than more frustration in the immediate future. Just like EVERQUEST (or NeverFun as I call it). It pretended to be a neural net and just was a vector tuner. It would be nice to see AI opponents with paged memory compares and squirrel learning (along the lines of "can I do this and survive?" "okay, that failed. Let me try it again or completely different.") which gives it weighted regonition of many viable patterns for its immediate and future needs.
"Face it, a nation that maintains a 72% approval rating on George W. Bush is a nation with a very loose grip on reality.
> FPS games, like Quake and Unreal, succeed
> because in multiplayer mode, you are going
> against the best AI available - humans.
I agree, although there is something to be said for the idiot-minded AI of Serious Sam on Serious mode. They just run at you by the dozens. Of course, you get the most powerful weapons of any FPS I've seen this side of a quadded Thunderbolt...quite the opposite of Unreal's AI, where they would avoid where you pointed, cool, but unrealistic.
I am for the complete Trantorization of Earth.
Yup, that's the problem with most client/server games; they trust the client way too much. Don't get me started on peer to peer.
Contrast with netrek, where having perfect aim can actually be a liability. Bot and borg clients would fire perfect vector torp streams every time - only to have their human target dodge gracefully out of the way every time.
If you were blocking sigs, you wouldn't have to read this.
I couldn't agree less. The bottleneck is test/tweak time, when you verify that your clever PhD thesis design actually produces reasonable/fun/competitive results. The strength of B&W is that it went for a completely noddy decision system, and spent the time tweaking it, and presenting the results in a fun form.
If you were blocking sigs, you wouldn't have to read this.
Couldn't agree more. The B&W system is great for its own application, but it's just the back end driving a well defined set of gorgeous animations and sound effects and a neat physics engine. It's behaviour oriented, not success oriented.
In particular, using a state machine with all possible behaviour hardcoded would get you reamed in a competitive game. We can see that in the Command and Clones, where the AI's biggest asset is the sense of pity you feel for it. ;)
If you were blocking sigs, you wouldn't have to read this.
A lot of quake bots were written to do just that, and netrek used to be a great platform for competitive AI's before it got left behind in the last ice age. ;)
If you were blocking sigs, you wouldn't have to read this.
It's not even that complicated. The Creature uses a noddy state machine, tells you what state it's in (i.e. "hungry", "playful", "helpful"), performs an action, then waits a little after doing it. If you correct it, you're immediately effecting the last state transition check that it passed. You could implement it with one array of state transition values, a reference to the last one you passed, a "have corrected it" boolean, and a time to wait before entering the next state. It's a simple system, and it works extremely well. The strength is in the robustness of the design, and particularly in the presentation of it, and interface to it.
If you were blocking sigs, you wouldn't have to read this.
I grant both your points, but I don't think that the typical problem in game AI is _finding_ hidden relationships between variables, it's creating them!
There really isn't a way to provide context for your actions, or to switch to a 'non-impression' mode. Mis-timings and general clumsiness have led to debacles
_ _
And, there is no 'instinct'. Having to teach an animal to eat a type of food is kind of off. I'm rather disappointed that I've had to teach my creature to eat at all. There's that 'Creatures' influence.
They should eventually learn to eat (x) by digesting what's good for them, and puking (yes, both ends of the creatures function properly) what doesn't, rather than puking food that is different from their 'normal' diet.
Somehow, I managed to get my creature logic 'stuck', in that he wanted to kick a building, to the exclusion of all other activity. The leashes didn't work, food didn't work, beating him to within an inch of his life didn't work, so he kicked the building until fatigue and/or starvation set in, and he respawned in the pen, and was ok.
Not to say I'm disappointed in the game. It's a great start; once it gets some gameplay it will be excellent. I'd like to know if other games use a similar interface. If Myth operated similarly, I'd still be playing it. I'd have killed for a smoother interface to view my Casualties! (hehe).
_______________________________________________
The American Dream went to hell in a handbasket when someone decided that "The Customer" was King, and the customer beli
Speaking of clumsiness causing debacles...D'oh!
There really isn't a way to provide context for your actions, or to switch to a 'non-impression' mode. Mis-timings and general clumsiness have led to debacles...
For example, the creature feedback (slap/stroke) applies to the last action the creature took. If my creature does something else in the time it takes me to stop what I'm doing and interact, it's too late to do encourage/discourage that behavior. I risk confusing the creature, or worse, encouraging the creature to act inappropriately (in whatever context I've defined).
______________________________________________
The American Dream went to hell in a handbasket when someone decided that "The Customer" was King, and the customer beli
I'd rather it did cheat than provide such an easy win.
So what happens when you play a good game for 2 hours, only to run into an opponent that's 3 times your size, bent on destroying you, and you have no hope of winning? I get pissed that I wasted my time to get clobbered by a massively cheating computer AI, I dunno about you. Or to run into the computer player who, despite cheating, is still half my size, and I've already won the game before a single shot is fired. There rarely ever seems to be the middle ground where you run into an opponent that you can beat, but just barely. If that happened, then fine, let the computer cheat to get there.
-- Telek
If God gave us curiosity
nope!
increasing X by Y yields X+Y
increasing X by 250% yields X + 2.5*X = 3.5X, not 2.5X
If you said "it was increased to a factor of 250% of the original then you're correct.
no wonder our school system math scores are down the tubes. =P. Eh, I've done some pretty bonehead mistakes in my time too. My math prof walked out infront of the class one day and announced "usually x * 0 = 0, except on the last midterm you guys just wrote, where apparently it could equal just about anything."
If God gave us curiosity
This is only true on action games. For other games that are purely strategy and don't require hardcore graphics capabilities (Moo2/3, Alpha Centauri to name a few) the AI has a lot more potential. See my other post =)
If God gave us curiosity
Ignorant indeed. Instructions are not one clock cycle each. I/O and memory concerns will also significantly slow AI down.
Well excuuuuuuuuuuseee me. You know what I meant. 500 million cycles per second then, happy? Christ, get a legitimate beef if you're going to shoot me down. My point was that there is a lot of cycles between each frame, and you don't need to do collision avoidance and pathfinding EVERY frame. Once you find a path, it takes a few hundred frames to follow it. Even if something changes, it's unlikely you'll need to pathfind again until 10 frames or so later. Ditto with collision avoidance. I think the problem, as someone else stated, lies not in CPU resources but in programming resources and time. I doubt as though the AIs are nearly as optimized as they could be, if enough time was given.
If God gave us curiosity
In my (ignorant probably) opinion, we're designing the AIs the wrong way.
We start with a "decision tree", and figure out how to program the AI to do things "smart"
AIs need to be able to change over time. If you make an AI that can learn, then this can happen, and during the design process you can teach it how to play better
Yes, yes, I know. Everyone thinks that an AI that can learn is way too hard to make, but I disagree in these cases. And besides, properly developed once, it can be used for many different types of strategy games, to spread out the development costs.
Consider this, for those of you who have played moo2
I just came up with this list off the top of my head right now in about 5 minutes. Almost all of these questions can be answered with a variable holding a certain numerical value. With weeks to create this structure, I'm sure that I could come up with many many many variables that can take a value, and then all the computer has to do is observe the human player and how effective they are. Combine this with sharing of this information over the internet, and you can have an AI that would learn very quickly, and effectively too. IMHO of course. Again, see my other post, and I welcome constructive comments/criticism. -- Telek
If God gave us curiosity
Exactly... The AI never goes for the unity pods, and they give you a HUGE advantage. I'm assuming this because I routinely wander into enemy territory and pick up their pods. Also, I tend to save my artifacts for later in the game, when the free tech will really help. Usually right before I start building my army. There's many tips and tricks that I use, and the computer, since it has a static AI, falls, and falls hard all the time. Yeah, that's not a bad idea. Code AI params in a high level language that the users can edit, not bad...
If God gave us curiosity
oops I think I lied. I just realized that I've seen the computer with artifacts before. I know that they almost never go for pods in the oceans, and they don't make a point to go looking for them is what I probably should have said. As soon as I can get something that floats I send out scouts to find as many of these pods as possible. Always transports too, so that way I can catch artifacts.
If God gave us curiosity
Really? Like which games for example? I'd love to find some more, good, strategy games.
If God gave us curiosity
I disagree. I've watched the computer play before, and quite frankly, the only way that they do any good is by cheating, big time.
Take MOO2 for example. Play on impossible, go check out the race stats of your opponents, and add up the pick points. I've seen the psilons with +11 pick points in total over the maximum. Then I decided, hey, let's swap into hotseat and try to play one of the computer opponents. Check out their colonies. For example, when I loaded they were at +51 money, +11 food and 368RP. After clicking on the TAX rates, and not changing it, it dropped to -44. Food fell to -8 and RPs to 268. The computer couldn't even beat me with 7 pick points higher than I was, they had to cheat at every step along the game as well. I know all this, BTW, because I was playing one time, I had *ideal* starting circumstances, a abundant large gaia in my system, and 3 rich planets in the nearest star, and by the time I met the bulrathi, I had 7 colonies, and they had 18. No joke here folks. There was no way possible, even with mild cheating, that they could handle that.
Also, when I captured their colonies, some of the races never even built facilities like Automated Factories, even though they had the tech. This is just plain bad AI programming. So they make up for it by cheating large.
And for SMAC it's the same thing. I disected the save game format for the colonies, and they were putting their production levels WAY above normal, and never built the proper facilities. It was pretty depressing.
With the current trend to get products out the door ASAP, I can understand why this happens. Finising a product at 80% completion, well, the last 20% probably largely contains AI stuff.
Now I'm not saying that I'm the genious and everyone else is stupid, far from it. I'm sure that they have their reasons, and probably good ones, and insights that I don't have, but I don't see why it should be so hard. This is why I've been itching to discuss this, to see what other people think.
If God gave us curiosity
(ie. in a 30fps game, even with 10% of cpu available to AI, you have 3.3 milliseconds per frame to do all of your AI, including collision detection and pathfinding
On a 500MHz machine, 3.3milliseconds is 1.65 million instructions. That's a LOT to do some work in, considering the level that needs to be done between frames (i.e. not a LOT). That's 49.5 million instructions per second, and an efficient design can do a lot in that amount of time. (IMHIOOC: In my humble ignorant opinion of course)
If God gave us curiosity
Although I don't agree with everything you said, you raised some good points.
Why do some people then reverse-engineer their games?
Why do people hack or crack? Why do people break into web pages and servers? (other than the prepubescent teenagers so they can deface disney and proclaim their undying love to their 13 year old girlfriends)... Cuz it's a challenge. Why do I take apart things? To figure out how they work. Why do I build useless robotic gadgets? Because it's interesting to create something. Why do I crack programs? Because it's stimulating and challenging (well, only some of the time). I took apart the alpha centauri save game file to see how it worked, learn about all of the things that it stores so I could better understand the game itself. I did the same with MOO1 and MOO2. Why do people play games? Most of the time it's nothing more than to waste time, really, but at least with strategy games you can exercise you're brain while you're at it. Am I insatiable? Maybe. You can't satisfy me with a static AI that will never change. Once you know the weaknesses, it's not fun anymore. And it's never fun playing against ANYTHING that cheats, even AIs. Sure it's still a bit of a challenge to beat them, but it's highly irregular. If I work for a few hours to build up my empire, then run into another one that's 3 times my size and I have no hope of winning, but it's only that big because they cheated like crazy, where's the fun in that? I know as soon as I meet a race in MOO2 if I'm going to win the game or not, so why do I keep playing? Hmm, I don't actually know, but it's fun anyways. If you created an AI that can change, so once I learn the tricks and go back to exploit them, it pulls my shorts up over my head and ties them in a knot. Now that would please me. And I don't think it's impossible. (I'm fighting back the urge to start the "I have a dream" speech =P)
I think that a successful AI model will attempt to model human thinking
I think you'd need to extrapolate on that one a little bit. In what way? I don't think that we'll be able to do something like that very successfully any time soon. What I had envisioned was designing the game while keeping AI in mind from the start, not designing the game then making the AI. There is only a fixed number of fundamental choices that one can make while playing a game, because one is limited by the versatility of the game itself. I'd like to hear from other people who routinely play strategy games, to see how their strategys have evolved. The rest of that paragraph I agree with entirely. It's evolution through randomization. Eventually you'll find something that'll work.
As for why AIs vs AIs won't work, I don't know. If you play 1 million games with AI vs AI, and sort by the order of success, and replay the top, say, 30% with 70% more random guys for another million rounds, lather, rinse, repeat, you should be able to come up with some stuff that's good fodder to wage against real people. Sure, most of them won't work, but I'll bet that some of them will. Combine this with the ability to say, intelligently "randomize" future chances. For example, compare two settings that failed. If I expanded at rate X here, which was slow, and rate Y here, which was fast, and they both failed, maybe I should try (X+Y)/2, and see how that works. Yes I agree that's it is a huge task, but sit down a group of 20 desktop computers to pile through seemlessly ending "random" AI situations for a few weeks, and I think you'll come out with quite a few good things. Hey, you could actually set up a continuous system. If the computer is constantly finding strategies that seem to work, and analyzing the differences, etc, then human players could jump and play a game just like it's playing itself, the computer system that's testing the AIs treats it like any other chance, and analyzes how successful it was, and integrates it with it's future trials... hmmmm.... mind's a racing...
You know, maybe it's not so much of an intelligent AI that I want, it just one that changes. One that'll throw a curveball into my works and screw me up. Have you ever played games to go on a suicide mission? I hate it when the computer opponents do that, because it's unfair and unrealistic, but as much as I hate to admit it, it's challenging to stop someone bent on killing you without caring about themselves, then turn around and face another 6 opponents not too happy with you either.
I guess all of my stubborness here is based on the idea that when I create my strategy for a game, how do I do it? I play, take guesses, watch the computer play, and I fail. I try again, adjust my strategies, watch, fail, etc until I start winning, and I keep this up until I start clobbering everything. Then when I play against real people, I watch what they do. If they're better than I am, I take what they did and adapt my strategies. It doesn't seem like a very complicated process. Maybe I'm dead wrong.
Also there is defintely more than one way to win a game, more than one successful strategy. In fact, there is probably hundreds of different methods that would all be highly successful. The point here is not to make a single computer game that can learn to outclass the single player, but take all of the games that are connected to the internet, and experiment. Allow the best methods to float to the top, and then the AI can evolve collectively, even if it's with help from people tweaking it. Like someone else said, I think it'd be really cool to be able to tweak settings in my AI, and wage it against someone else's AI to see how well it fares, or even wage it against someone else to see how it fares. I could then see what went wrong, adjust it, and try it again. Even if I'm behind the scenes, the end result is that you'd have hundreds of AI modules out there to plug into your game, and have them whoop your ass a few times before you could figure out how to beat them. It's like taking the best from person-vs-person play that you can do anytime, offline.
okokokok I'll stop rambling now, I've probably tired a lot of you out by now. Actually I wonder if anyone will actually get this far down, I just previewed and wow this is huge. I could go on, but I might hurt someone. -- Telek
If God gave us curiosity
One of the best ways to have a program learn is a "neural network" - weighted relationships that can be changed to improve performace. As you traverse the decision tree, using this neural network allows for more dynamic decisions - if it worked last time, perhaps try it again. If not, try something else.
Graphics make a game fun look at... but good AI makes a game engaging. FPS games, like Quake and Unreal, succeed because in multiplayer mode, you are going against the best AI available - humans.
RC
Yes! AILOG! The advanced neural net engine used to realise the limitless gaming multi-verses flowing from the imagination of the maverick games programmer Dr. Derek Smart, Ph.D, a genius of the first rank.
AILOG - the most advanced AI engine ever used in a game - combines the sum of the last 40 years of European and Japanese artificial intelligence research. Dr. Smart, Ph.D has encapsulated the most bleeding edge, advanced AI concepts from across the globe.
The birth of AILOG, however, was not without a great deal of pain. In a fit of creative rage, Dr. Smart, Ph.D violently ravaged a Coke machine, but it was a small price to pay for the insemination of the most advanced AI engine ever seen on the desktops of hungry gamers all around the world.
Click here to experience bug-free gaming quality, excellence, and creativity: www.3000ad.com
- Chris Z. Wintrowski -
[ Site ]
For anyone who really wants to know more about the possibility of artificial intelligences reraching outside there bounds, I suggest you checkout Hogo de Garis' "Moral Dilemmas and Ultra-Intelligent Machines". The article is mirroed here: http://foobar.starlab.net/~degaris/Artilect-phil.h tml
...a game called Galapagos? It was made by a company named Anark, which seems to have fallen off the face of the earth (anark.com is now a provider of web tools).
Basically, you had a pet insect-sort-of-thing that you had to help escape from a 3D puzzle world. The trick was that you didn't control the creature, you only manipulated the environment and let the creature react to it. The creature was driven by Anark's AI technology with a buzzwordy name, but you could see it working. After it fell off a certain place a few times it would be reluctant to go back there, and would try to ignore your commands (you could poke it with the mouse) and get back to a safe place.
Anyway, my point is that B&W might not have the most advanced AI in gaming history after all.
The problem with Quake bots as an AI challenge is that you can give them perfect aim, making the challenge into one of who has the best gun when, which could then break down into deathmatch spawn points.
Also, it's impossible with Q3 to get clientside bots to connect to the server as the protocol is unknown. You'd have to edit the DLL source that Id released, and getting two bots in one source tree is more than a whim.
I would like to see an environment where the hardships in overcoming it would all lie on the programmer instead of a user, like with Quake's aiming. The general idea would be to have every decision be one of the type of 'no best answer' as opposed to Quake's aiming 'there is a best answer', at least for every hitscan weapon.
almost all of these questions can be answered with a variable holding a certain numerical value.
The problem (and what makes these games fun) is that the answer to the question depends on more than a simple number -- they all depend on the state of the other questions, and all sorts of other factors in the game. It's the emergent properties that are interesting -- and that are hard to quantify.
There is a problem with having the AI play against itself though. I can't remember the exact reason but it can only learn so much that way.
The problem is that the AIs will become good at beating other AIs - not at beating humans. If the competing AIs are all stupid in one particular way, they won't clue into it by themselves. Also, if you have deterministic AIs, you might enter a closed loop (endlessly replaying the same set of games with the same set of learning variations).
Careful design of the AI can minimize these effects (e.g. by forcing speculation on random strategies to discover new techniques by brute force), but it's not easy and not very efficient most of the time.
Humans are very good at showing AIs where the holes in their techniques are, so mixed human/AI games will provide the best learning environment for them most of the time.
According to the article, game AI has traditionally been forced to use a meager .1% of the CPU in games, due to the huge resource requirements of making the pretty pictures. However, this has all changed with an earth-shattering 250% average improvement in the amount of CPU time allocated to AI-- leaving us with a remarkable .25% of the CPU dedicated to AI!! That's amazing!
I'm not going to flame you. You are essentially correct. The problem is the practical difficulty.
There is a backgammon program that learned, from scratch, how to play backgammon. It is now a world-class player. So clearly, we can learn how to play games.
One little catch: The program played millions of games of backgammon with itself before it got that good.
As you might imagine, Alpha Centauri is significantly more difficult then backgammon. Chess hasn't even been "learned" yet (all the best approaches I know have heavy dollops of brute-force searching). Plus, as the problem increases in difficulty, the time necessary grows. Ouch.
It's a good idea, but we don't know how to do it practically yet. That's why B&W really is interesting to me; while the algorithms aren't necessarily ground-breaking, it is an interesting application of real-time AI in an environment where the AI really shines (as opposed to input difficulties).
this is pretty standard in the industry, btw. otoh, it would take a skilled ai programmer easily more than a month-and-a-half to implement and debug an inference engine in C++. and you can forget about something like writing a compiler for building behavior-based networks - that takes too much time.
Seems to me that there would be a niche for a company to invest heavily in developing a flexible AI framework to be used in multiple games. Or does something like an inference engine so much customization to a particular ruleset that this wouldn't be worthwhile?
Otherwise, though it represents a big up-front cost, a company with a variety of titles, or a well-established series, should be able to spend a little extra time on AI and gain a competitive advantage.
--
"As recently as 1999, most games devoted only .1% of the CPU's resources to running the AI."
...snip...
"According to a recent article on the game development site Gamasutra, an average of 250% more of a computer's resources are now devoted to AI."
So... A whopping 0.25% is now devoted to game AI? Step back.
Seriously though, processing power is a really weak way of assessing the sophistication of an AI. It's really easy to max out a chip on a neural net that ends up going almost nowhere, and a well-programmed behavior engine could create an extremely realistic AI on a Palm. Like most anything, it's all about the coders. It's great to see that more attention is being given to cognitive realism (Sims, B&W, etc.) instead of/in addition to kinematic realism (Trespasser, <insert latest FPS here>, etc.).
I can't wait until this kind of dedication to learned and adaptive behavior makes its way to War/Star/foo-craft... Or Microsoft Bob...
Kevin Fox
--
Kevin Fox
i>My GF thinks Counter-Strike is cool....
Propose. Today.
Can we get some AI routines that will keep the villagers from walking right through a four-foot-high piece of poop?
I just can't be impressed with AI until then.
-- Mojo Tooth : exploring our world as only an idiot can.
"decisions trees have not been used in games before".
I'm willing to bet that's a load of bull. Maybe noone called it a "decision tree" but I'm sure there have been AI structures that perform exactly the same function in some game, somewhere. There have been *alot* of games, and they have explored *alot* of options. Maybe they didn't have 6 million dollars of personal cash make them famous like B&W, but they were still there.
I was glad to see him acknowledging its limitations though.
What he describes is nothing special to the AI world, very basic techniques. I'd like to see something more complex, perhaps a backprop neural net and adaptive planner (which would give them foresight) instead of a perceptron and a decision tree. For a single creature, the CPU hit would be trivial. The real limitation is the human time required to design it.
I'd rather it did cheat than provide such an easy win. The scenarios are incredibly complex and challenging at the outset. But over time, human victory is assured if you can hold out long enough.
It would be a great multiplayer game, but its nature isn't very easy to multiplay with.
It's not that the developers are stupid, they know how to play their game and they can usually fill in decent values for all of those variables.
The problem is that being good at a strategy game involves much more than the variables you list. Learning to plan out attacks and spot weakness are not things that the AI can easily do, nor pick up from observation of a person playing.
These are the achilles heel of AI in a strategy game, and there is no simple fix.
I'm aware that a perceptron is a neural net, but being limited to one layer really gimps its ability to generalize.
But I think you sell neural nets short, while they are pattern recognizers, they are capable of finding extremely complex relationships between variables, relationships that are hard to code as boolean values.
But I think in practice it would prove difficult. Mining data from a set with so much variance in player skill would prove very difficult. And again, you still have the problem that figuring out a huge array of optimal variables is not going to give you a good AI. It will be better, probably, but still woefully inferior to a human. It all comes down to foresight and insight. Until we can put that into an AI, forget it.
Actually, one way to make AI's challenging is to paly to the computer's strengths, real time games with lots of things to do are great for computers because they can handle it all. A human needs the game to go at a certain pace or they lose it.
So Europa Universalis, for example, is a game that is much more difficult to win at if you don't allow pausing.
Well writing a strategy game AI isn't like writing a novel, but its no small feat either. Take the time to consider everything you think of while playing a game. Yes 95% of it is probably set ahead of time, but that last 5% is what really sets an AI opponent off from a human one, and that's where the challenge in programming an AI is. An example is when I play games there are certain things I might consider a few turns in advance, while others I ignore. Having the computer decide what to consider in depth though is hard. Does it consider the long range implications of launching an attack or for expanding. It doesn't necessarily have CPU time to do both, just as a human only has so much real time to think about the situation. It's very easy as a human to quickly judge the situation and say "I'm pretty safe I'll expand for now" but telling a computer how to do that is much harder.
The idea of the computer learning after every game is nice though. There is a problem with having the AI play against itself though. I can't remember the exact reason but it can only learn so much that way. What might be interesting is an internet site that could collect the AI's from many users games and combine them, distributing new AIs. That way every person playing against the computer is helping to train it.
And I definatly like the idea of an API to build your own AIs or expand the one currently there. It would be fun to load up Starcraft and go on BNet and start a game with someone and see if your computer program can beat them. Or even just playing your own AI to train it.
In 3.3 milliseconds, an Athlon 550 can go ahead and read/write ram a few hundred times, do a few hundred thousand instructions, etc. When you consider that it has 1 click tick every 1/550,000th of a second, 0.0033 seconds (or 1,815 clock ticks) don't seem like that short a period of time at all.
Think of popular and succesful games: Half-Life had neat AI for the Marines. If it had just been the odd aliens and Sci-fi plot, I probably would've have played the game through twice in a row. That game performed well on a 300Mhz machine!
--
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
Just a guess, but if each node in a tree was a decision (do I eat this?, is this compatible with my alignment?) and the left and right had strengths (60% sure I'd say yes), then you could tweak that bias as you monitored feedback from the actual outcomes.
It's a bit more crisp and reflective than a neural net, in that you know the specific purpose of each node. In a neural net, it's hard to reflect: "why exactly did you make that choice?"
[
I can make a few guesses. Perceptrons and other neural networks basically map a set of inputs to a set of outputs. An external error is generated each time the network runs and the network is adjusted to try to reduce this error. In the case of a game the error would be derived from the success of the unit. Each sample theoretically drive the network to minimise the error, however it is a rather random process, especially with such a non-linear system.
The real problem is to choose the right inputs and outputs for the network, and to get the thing to actually work. The inputs and outputs must be general enough that the network can analyse them, but specific enough to represent the environment and control the unit.
As for decision trees, they would be useful to breaking down the situations a unit is faced with, and isolating them so that the decision making is effective. It also provides a look ahead mechanism to try to predict what will happen. The decision tree would be the main memory of previous experiences. I think in the case of a game it would be very difficult to recognise similar circumstances to fit branches of the tree.
AI is a very interesting area, and not really that difficult to get started in. I suggest looking up some of the terms on the net and seeing what turns up, although a good textbook will be much better.
She's cruising through the tutorial having a great time when she is supposed to bring a rock back to the village sculptor. She fails to zoom in far enough, and drops the rock right on top of him. "No! I didn't want to kill him. Oh, no." She quits the game, turns off the computer (we never turn the computers off), goes downstairs and crawls under the covers.
Someday people will realize this is what its like to "play like a girl" and write a game accordingly.
t
An another article discusses how an AI researcher is developing bot's with cutting edge AI.
The Economics of Website Security
The Creature uses a noddy state machine
So that's why my character acts so wooden.
Will I retire or break 10K?
A 250% increase in 0.1% of CPU time means it goes to 0.35%. Learn some simple math, yeesh.
--
Oceania has always been at war with Eastasia.
Anyone have any insights into this "decision tree learning" that Evans mentions? It seems to me to be one of those fuzzy terms that could refer to any of a dozen things.
Like "perceptrons" -- unless he's actually referring to the algorithm described in Marvin Minsky's book of the same name, which would actually surprise me quite a bit, based on (what little) (and I mean little) I know about the book.
Seems to me that a "decision tree" is a simple deterministic programming construct, so the real interesting part would be how you change it in response to stimuli. Anybody have any inside knowledge (grin) on what he's actually doing?
--
Accountability on the heads of the powerful.
Power in the hands of the accountable.
You know, this game is starting to make me wonder if we're not just individual threads in some massive "Black and White II" game, a la Thirteenth Floor. Forget Descartes, can you think non original thought is actually original if you're programmed to ignore the source?
funny munging
Are AI routines still computed during the vertical refresh with today's multi-threaded OSes?
;-) Of course, "vertical refresh" is a CRT concept, so fortunately, developers can simply draw or blit into abstract frame buffers. OS drivers then get that bitmap representation onto a physical screen (LCD/CRT/VR goggles).
You'll have to ask the task scheduler of the OS when it's executing the AI threads, now.
Joking aside, I recall not too long ago having to count cycles to keep my AI code from "leaking" outside of the vertical refresh period on a Game Boy.
Duh.
The point is that the theoretical stuff is what is the bleeding edge, not the gaming industry. The fact is that they don't pick up on stuff until its well past the theoretical stage.
Immersion is one thing, games do it rather well, but the study of AI isn't all about "wowing" the audience. It is a serious mathematical, philosophical, and electrical study of the limits of computer programs. The gaming industry doesn't have time for this stuff. They are busy making money, like they should be.
Nor really... The AI in games is minimal at best when compared to the capabilities of AI in a theoretical sense. The problem is that AI is difficult to design and takes alot of time, and developers are out to make money, so they invest in technologies that will immerse the player in the game to get them addicted to it.
Its a new type of addiction for me, because I'm not playing to see how far I get, or see how big my avatar will get, its to see what he does next when he's off my leash. Was he watching when I was throwing the rocks, and start throwing villagers? Was he watching me pickup and move villagers to do the same?
So, it may be a long time before some really sophisticated AI gets into games, if ever. Think about it, if a chess computer can beat the world champion, don't you think there are strategies in many of these games that would be similarly difficult to beat?
If you want cutting-edge AI, don't look at games, look at OSCAR at the U of Arizona, or at the MIT Media Lab , or at the stuff going on at CMU or RPI. That's where the real progress and research is being done. Not in some programming sweatshop at EA.
Wifey: Can I see your new game? Me: Sure. It takes a long time to load, but here... Wifey: Oh! She's so cute! Me: It's a he! And my creature is not cute, he's 'neutral'. Wifey: What's he doing. Me: No, don't poop on the villagers! Bad boy! Wifey: Oh my god! He's about to eat that little girl.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
Since I've been spending all my time on the 3rd level of B&W lately, I haven't gotten the chance to do much creature training. But just watching how the villagers act on their own, and develop their own 'community' is quite interesting. What will be really interesting is to see all the new offshoots of this game, much like CounterStrike was to Half-Life. And as a previous poster mentioned, gaming always pushes the envelop of what a PC is capable of, so it should be a joy to watch PC AI evolve over the next couple of years.
Seems to me that there would be a niche for a company to invest heavily in developing a flexible AI framework to be used in multiple games.
:)
several independent developers have tried that - and the game ai page has links to pretty much all game ai sdks attempted thus far.
the problem is that while high-level ai can be pretty general, the low-level ai (pathfinding, collision detection, world physics) is completely tied to the internal representations of the world inside the game engine. it's a similar problem that you have in physics sdks.
also, given the game development characteristics (18-month dev cycles, ai being one of the last steps in development because it requires a working game engine), it's rare for studios to design a game in such a way that a general solution like an ai sdk could be just 'plugged in' that late in the development cycle. unless the workings of the sdk are well understood, it's easier to just build your own (especially if you're not doing anything complex).
on the other hand, if a company with a hit game licenses their ai engine to others, that would be a big step in the right direction - the same way that id and epic licensed their graphics engines after the success of quake and unreal. and sure, many studios will write their own anyway, but those who don't want to rewrite a* for the nth time could instead concentrate on writing high-level behaviors.
My other car is a cons.
IMO, machine learning (ML) is the way to solve this.
And that's what Evans is doing here:That's aka Reinforcement Learning. For decision trees, the feedback is the "evidence" that the tree has to explain, so presumably his system saves some/all of the feedback and intermittently updates the decision tree. If you give consistent feedback, it should converge to a point where your monster can guess what the outcome of an action is, and thereby avoid the smacks. As a side effect, it looks like it "knows" what you want. Similarly for perceptrons / neural networks.
The bit about Moore's Law is certainly apropos. I recently ran a genetic algorithm program that searches for good solutions for the travelling salesman problem, and on a late model x86 desktop system the program was evaluating 1000 candidate solutions a second for a 2000 city problem. Our resource-intensive GUI desktops obscure just how fast our desktop supercomputers really are.
Also, contrary to what someone suggested in another thread, games are not the state of the art for AI. You can easily find tons of papers on this kind of stuff with your favorite search engine, and in some cases download the code for the program described in the paper.
That's not to knock it; games will probably be AI's killer app.
--
Sheesh, evil *and* a jerk. -- Jade
Have you been smacking the shit out of your creature when he does that? My creature ate a villager once, but I beat him stupid (it's a guilty pleasure... I'm good, honest!) and he hasn't done it since.
-grendel drago
Laws do not persuade just because they threaten. --Seneca
CPU's these days are more capable of provididing good AI than they are given credit for. In my opinion, it not a CPU bottleneck that has kept AI at .1% of system resources, rather it's design time. The amount of human time required to develop and debug a proper AI, one that makes a significant use of computational resources, is enormous.
Therefore, it's done half-assed. I don't blame the developers for this, they are operating in a market in which the average selling game loses money, so they are under alot of pressure to cut corners. Truth to be told, a crappy AI is probably not going to cripple sales of your game too much (unless that's the central theme like B&W).
We're going to need to see the computer industry actually become profitable before we see more decent AI like B&W.
Note thet B&W was developed with personal cash from Peter, and therefore wasn't subject to the same tight budget/publishing requirements that most games are.
It's a credit to Lionhead that they got the product out the door without a publisher breathing down their neck.
Lets face it. Cutting edge graphics, and killer AI always show up in the gaming industry before anywhere else.
They continue to impress us. Unfortunately, people think this is more important than gameplay, but I digress. Graphics were the fad the past few years, but perhaps AI will be the new fad for the coming years...
I have a small background in AI, and I must say, I have played Tribes2 only once (had it since it was released), because I'm so extremely impressed with the AI for Black&White (if you haven't played it yet, go grab yourself a copy!!). Its a new type of addiction for me, because I'm not playing to see how far I get, or see how big my avatar will get, its to see what he does next when he's off my leash. Was he watching when I was throwing the rocks, and start throwing villagers? Was he watching me pickup and move villagers to do the same? Its one of the first games I enjoy playing without touching the keyboard... I just watch what he'll do next...
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
--
When all you have is a hammer, everything looks like a skull.
I threw one villager into the ocean. ONE! My creature happened to be standing nearby. Now even though my power is strong because I'm being worshipped by just about everyone, it sucks because I'm becoming an evil god now because my damn creature keeps throwing people into the ocean!!!
is that they become predictable. Once you learn the exploits and how they work, the game is no longer fun. Take Alpha Centauri or Master of Orion 2, easily 2 of the best, if not the best, strategy games around (IMHO of course). However I can play both of them on impossible levels and win almost every time.
And what really bugs me is that to make up for deficiencies in their AI, as the levels increase in difficulty, the computer just cheats more. I was abhorred when I found out first hand how badly the AIs cheated at the higher levels in the 2 aforementioned games.
So what my question is, is this: How can this be fixed?
I have a few ideas. One is that you need one that learns. Before you flame me about this, let's think about this for a second. We're not talking about an AI here that can learn how to write a novel, we're talking about relatively straightforward strategies and mechanical play in these games. I know that 95% of of my strategy for these games is down to an art, it's just an automated system until I get to the few points at which I need to make a new decision, or something new crops up. So if I can do this by a predefined strategy, then why can't the computer do that? Keep in mind too that the computer can simply try variations on it's current strategies, and see what happens. If I beat the computer 9 out of 10 times, and one time with some wierd method the computer CLOBBERS me, then hey, maybe it should keep that method around. Also the computer can play against itself, with many different strategies, seeing how each one works. Keep in mind here folks that the strategies that I'm talking about have a few variables: how fast do I expand? at what point to I build an army? how big do I build my army? When do I stop expanding? When to I attack, and who? These can be values that can be changed and experimented with, and hence the computer could learn.
Secondly, one of the things I loved about Alpha Centauri is that just-about all settings were configurable through text files. This was amazing. You could make things easier or harder, change global settings, pollution rates, everything. You could even make new factions and trade them with your friends. If somehow settings for the AI were configurable this way, then people could learn how to tweak the AI to make it a more formidable opponent, and then share this information with others.
Combining those two ideas, throw it on the internet. If you have 5,000 people that are connected (not necessarily at the same time), you can try out hundreds of thousands of strategies for the AI to see what works well, and then upgrade the AI. Actually I think that is a necessity. The AI needs to be easily upgradable, otherwise it'll just get boring as you learn how it works and you can cream the game.
I'd love to hear some (constructive only please) comments about this, as it's been something I've been thinking about for a while.
Want to check out about the new Master of Orion 3? Awesome stuff happening there. -- Telek
If God gave us curiosity