Discussion in 'Civ3 - General Discussions' started by akots, Aug 21, 2003.
That's why it's called an AI.
Damn, Padma has a 2000 rating and Akots a 2150? I thought I was a pretty decent player at 1800...then again I have only been playing for 2 years, and not everyday.
I'll make sure to avoid both of you on the chess board.
BTW: The highest ELO rating ever is Gary Kasparov at 2,815, the highest ELO for a woman is Judit Polgar (Hungary) 2,675. Kasparov was also the youngest ever World Champion when he won it on November 9th, 1985 at age 22 years, 210 days.
And finally, the youngest to qualify as an International Grand Master is Peter Leko of Hungary at 14 years, 144 days on January 30th, 1994.
That is what AI is supposed to do. That is what any human playing any games is doing. And this what the whole life is about. Watch, Listen, Feel, Understand, Think, and Act.
Regarding chess in parallel to Civ3. In chess there are many ways to win also. Without causing major war-like activity, it is quite possible to move the pieces thus improving the position of your pieces and worsening the position of the opponent pieces. This can lead to overwhelming advantage. It is usually called manoevering or biuld-up. And many players especially highly qualified often agree with each other to make a draw without major war-like activity early in the beginning of the game. What I wanted to say is that the decision made by AI or human regarding game outcome or state of war or peace is purely artificial. The opponets is still the rival whather you are at peace or at war. This is more of a similarity than a difference even though it seems quite complicated and not so straightforward.
Thus, I think that your comment serves the goal opposite to what you intended. It actually finds more similarities than differences between chess and Civ3.
I'm just curious... On what are basing this assumption that AI is "simple program code"? Are you a programmer (edit: from reading a post about virtual memory on the second page that I earlier missed I surmise that you may be)? It is extremely difficult to program something even approaching the complexity that you are requesting, and is impractical both economically and for usability purposes. Economically because it would take far to long to do (and cost a lot of coding time), and usability wise because, as mentioned above, an AI as "smart" as you wish would take far to long to complete a turn. I also must take issue with your statement (not quoted here) about the (paraphrased): "puny human mind taking on the computer." While a computer can easily solve mathematical problems more rapidly than humans, the power of the human brain is absolutely incredible, and is something that all true AI programmers strive to emulate -- hence the name Artificial Intelligence, where intelligence, a property of humans, is regarded as the true, natural model. For the record, a true Artificially Intelligent machine has never been created outside the realm of fiction. Every decision that the computer opponent makes in Civ has been programmed in at one time or another.
Note, I am not disagreeing with you in that the game could be vastly improved. I'm just disagreeing with your definition of AI. I suppose everyone has their own. Anyhow, there is always hope that Civ 4 is better at strategic planning (I never played Civ1 or 2, but am told that 3 made a big step forward in AI reasoning).
One relatively easy way to improve the AI would be teaching it to micromanage its cities to optimize shield, food and commerce production each turn, so this non-programmer is prone to think. Things like recognizing that 13 spt don't allow you to build Swordmen any faster than 10 spt, wherefore as long as the city's building them labourers should be redistributed to reap more commerce instead. Couldn't take that much computer time, could it?
First I'm not denying you can win the game by only taking 1 peice on the board (and in 3 turns) or even without taking a single piece (it's possible but never had it happen in one of my games). But all chess is is a WAR simulator, you are at war. Wars can be won with very few casualties on either side, but normally either one or both sides have high casualties. Not to mention in Civ III you can also be at war with another civ, yet see no military action, so your argument of "limited loses" is irrelevent. Chess, the Goal is to kill the opposing King, trapping it and placing it in Checkmate. Civ III you have 5 (?) different victory types, two of which are specifically militarily.
My biggest point is in Chess, there's no Tech trading, you're not facing down multiple opponents on multiple fronts (you can get your units surrounded but it's still theoretically on one front). You also don't have reinforcements (you can "upgrade" pawns but upgrade doesn't equal new troops). Production, Gold, Technological differences, Alliances, Strategic resources, City defense, Citizen happiness, Terrain, or even an RNG in a rotten mood (figuratively), all things a Chess AI doesn't have to worry about.
Secondly my point is with AI, is that it knows nothing which isn't told to it or programmed for it. When I program a program of mine to respond with a screen when I hit "x" is that an AI since it "responded to a programed situation?", no. (yes those were my words, I see I was vague in my explination before). My point was that it's only as good as the programmer, and even if the programmer is a good player doesn't mean that the AI will even respond "intelligently" to a given situation. Coding something for very general situations is much harder then just using your own skills to meet any specific situation in a game.
Also, you can't expect the AI to use something NEW effectively without having to improve it yourself. A big reason why it's a "pseudo-AI." I can't think of a good example right now so let's set back a bit. Imagine if the AI was programed without the use of the current Artillery, maybe a more Civ II'ish Artillery without "bombard" and then it was added without changing the AI. The AI would either not use Artillery at all (because it wasn't programed to use it), or more likely it would build 'em, but wouldn't protect or bombard with 'em (personally haven't seen the AI use Artillery offensively myself actually). Defensively is another thing because it's programed to fortify stationary units, therefore making it "auto-bombard" when attacked (assuming it's defended by a defensive unit). On a simular note, you can't send the Civ III AI to play Chess effectively by just "telling it the rules" and letting it get some practice, let alone being able to do anything at all. REAL intelligence, ie. Human intelligence, can adapt to different scenarios and can learn new things by itself with out being told by someone else. The greatest Chess players in the world learned chess from others learned strategies from others, but it was THEY that learned the ultimate game playing skills. That is what I ment by a "psuedo-AI" it may be Artificial, but it's not inherently Intelligent, otherwise it would be adaptable, and we wouldn't even be having this discussion because it would improve itself after playing game after game vs. you and learn better how to counter your strategies forcing you to adapt, forcing the computer as well to adapt to the changes you've made in your technique, eventually creating the "Ultimate AI" which even the best would be hard pressed to win a victory against (at least given enough experience on the computer's part).
Would be fairly easy I'd think too, but I think the hardest part would be determining a way to get the AI to produce Goals for each city. ie. "this city I wanna grow right now, this city I wanna get me more gold, this city I want to build lots of sheilds, and this city will be going waah waah waah all the way home when I send my tanks in there" Okay so that last one is pretty much in the AI already, but seriously, it sounds doable if not done now, but the most challenging thing would be prioritizing and making longterm/shorterm goals per city, it's done on a larger scale as well right now so why not?
Good point, LC. However, the question remains: if you want to get a game out at a certain date, within a certain budget, you need to decide which areas get the most priority. Unfortunately, some "reasoning" must be cut out, due to time and monetary limits. It appears that the powers that be at Firaxis determined that this facet of the game was one of those that they could afford to NOT program into the "AI."
A few thoughts from a semi-professional programmer (i.e. I don't just do programming but my job does include a lot of it) on chess vs. Civ AI. I've also read a fair bit on chess AIs specifically out of curiosity.
Chess AIs take basically brute force approaches. They consider all possible positions several moves into the future (thus "brute force"), rate each by some scale, and pick the one with the best rating. Yes, I'm simplifying somewhat, but that's the idea. With modern computers, this is feasible since the number of possible moves each turn can be as few as 1 or up to maybe 100 at most. The maximum is definitely less than 121.
In Civ, on the other hand, the possibilities are incomparably greater. Just on the first turn there are well over 100 possible sets of orders to give the starting units. Combine that with all the other things you have to decide (tax rates, research paths, etc.) and there are thousands of possible first turns. Once the game gets going, there are certainly millions of possibilities - most likely, it gets into the billions in at least some games. And, in theory, each possible decision can impact each other (how to move units has to consider tax rate changes due to the entertainment vs. military police connection, for example).
Obviously, anything vaugely approaching a brute force approach to Civ is utterly ludicrous. But, brute force approaches are the easiest to code - and in many ways the most effective. So, a Civ AI must be of a totally different sort than a chess AI. It cannot consider each possibility and pick the best. It has to instead pull things out of a rulebook of general principles.
To consider a particular example, think about attacking a pawn chain in chess. The usual ways to do this are to either attack the base, or to exchange pawns to break the chain. A brute force AI can realize this by noticing that any other choice is likely to lead to losing the piece used to attack the chain, which leads to a poorer position that will generally be rejected. If it's not, it will be because the resulting position is actually superior, meaning that this case was an exception to the usual rules. No special code is needed to recognize either the usual approach or when an exception occurs. Such code can be used, but serves mainly as a performance enhancer.
A non-brute force AI, however, cannot do this. It can't simply look and say, "in this position I've lost a knight, in this position I haven't, the latter is superior." The only way it can approach the situation is to be programmed to recognize a "pawn chain" (a nontrivial problem in itself), programmed to recognize the general principle of pawn trading or attacking the base (again, coding to implement this is not straightforward), AND programmed to try and see whether this case is an exception. And when you've done that, you've only covered attacking a pawn chain - one very specific case.
I'd say it's absolutely and incontestably clear which of these programming problems is MUCH harder than the other one. Now, multiply this by all the other things you have to think about... and the reason Civ AIs are much more difficult to make good than chess AIs should be clear. Brute force is (relatively) easy to code and very effective. Civ AIs cannot be brute force, while chess AIs can.
Beamup: I think your eloquent post was just what this thread needed.
Now, a very good question is how the human brain recognizes "pawn chains" so easily, and how they often quickly learn the correct method of attack without any "programming" by an outside agent. But that's another thread entirely ...
(Imagine now our computers, on their own super-secret Civ III Forum, debating the issue in the lengthening "Why human is so strong?" thread!)
BTW, Beamup, do you know who first came up with the wise saying in your sigline? I love it ...
Hi Dan, Well I understand all of the points you made which leads me to the conclusion that a more advanced ai version could be marketed to advanced players and I think you would find a big market buying it.
How about a CIV AI advanced version that only the newer computers could handle and then continue to market the regular series. I think almost all gamers these days are smart enough to decide how hard a game they are looking to play.
Others thoughts I have on the ai issue is that there are many automatic defenses the ai should get at certain levels that wouldnt add thinking to the ai side. For example the ai could get anti-aircraft batteries (free) in every city at the proper advance to help against human aircraft. How about mines on every square for the ai and machine gun bunkers outside cities. The ai doesnt think about these they are auto-added at the proper advance.
Also the ai should get artillery added in its cities that are part of city defense and dont move.
Depending on the level you choose to play the defenses could be few or on the hardest difficulty they could be very heavy such as a added machine gun-nest in every ai square that has to be disabled to pass. Another ai feature could be auto- matic air attack. Suppose every ai city came euipped with a squadron of bombers (at the proper advance) for free that didnt move but hit anything that attacked it and had to be knocked out to capture the city.
These suggestions could help but the other issues often involve the lack of properly using units in giving situations such as navel units, aircraft, artillery ect....AI attacks are so weak in the fact that the simply try to overrun you with the strongest land unit without bombarding opponents like the human player would do. The advanced ai has to know how to soften up targets with the right tools.
If the ai had added auto-defenses (more per level) and a better attack sense as far as what to use it would really be very good. The AI management and diplomacy in my view are fine and the ai can give players a challenge with enough of a headstart.
In all I love the game , but for me boredom is why I quit most games, not that they are too hard. In fact the games that I am most attracted too are the ones that I know will continue to be a challenge. You have to remember gamers are getting better, and smarter, and wont more of a challenge.
Wow - very cool discussion here.
With respect, I must side with those stating that the Civ3 AI is more complex than a chess AI.
Consider the starting point of a chess game, and the starting point of a Civ3 game. In Civ, the AI must determine to build the city on the starting spot, or move it. If the decision is to move, move where? Move the worker where? Set the sliders to a certain ratio, etc. In chess, the opening move is from one of 10 pieces, each moving to one of two squares. Fundamentally, they are both fairly simple, at this point.
In both AI's, the complexity really comes in the mid-game. Here, the chess AI is looking many moves in advance. Each piece on the board is valuable, and movement is much less restricted. In Civ3, there are many pieces, in many locations that must be accounted for. The Civ3 is must also look in the future, and determine what I might be doing, and how to respond.
All games are a function of probability - certain moves are good X percent, neutral Y percent and bad z percent. Look at checkers, the tables for that sport have nearly every situation analyzed, resulting in significant numbers of draws at the highest levels of play. As analytical power continues to increase, all such games will also head there.
Comparing straight chess to Civ3 I feel is not a good comparison - there are just too many variables in Civ3 to account for. Comparing Civ3 to Knightmare Chess (a merger of chess and cards - very interesting) - now the levels of complexity are getting closer.
I enjoy both chess and CivIII, so this thread was of great interest to me. I don't claim that either game is 'too easy' for me, but I agree with Akots that it would be preferable to handicap the AI at higher levels by giving it more intelligent (IE human-like) decision-making capabilties rather than just giving it more units and shorter build times.
I guess it really comes down to commerce: can Firaxis develop an improved AI model that would have a broad enough appeal to be viable in the marketplace? It seems to me that the key would be to build enough interest in that type of game. There are already world championships for various real-time games (in Korea, top players are like rock stars and pull down big salaries). Why couldn't we develop similar appeal for a turn-based strategy game like Civ?
Aren't you contradicting yourself with this statement?
Hah. Not likely to occur anytime soon (unfortunately)...
I'm not saying it could be done without "cheating", indeed that is my point. Since the game "knows" everything and has access to shortcuts, in theory, at least, writing game AI that can always win is a lot easier than writing game AI that puts up a good fight but sometimes loses.
The most basic example I can come up with is Pong. It's pretty easy to visualize an AI that never misses the ball, but that's not a whole lot of fun for the human...
I concur, but I did not mean to suggest that Civ III could reach a similar stature in the US. What I am suggesting is that Firaxis try to reach the broadest segment of potential players it can in order to make game improvments economical. Supporting competitive events is one possible way of doing so.
Just think of it as Arthur C. Clarke's HAL. It's the same deal. It can beat any human in any strategy game, but is programmed to win half of the time and lose (you guessed it, the other) half of the time.
Hmm, I doubt an ai could be designed that I couldnt beat, given that it coudnt cheat and had the same resources that I had. If it did manage a victory I could adapt and win with different styles and know it couldnt adapt. Im talking civ though not chess. I would pay alot more for a game where the ai was that smart because I would never get bored.
If the AI is a set program, then its tactics remain the same and you learn. You will inevitably outsmart it eventually. But there are AIs that do learn. If the AI learns at a faster rate than you, you will not be able to beat it.
You could extrapolate this idea to say that the best AI would be one that "learns" faster than the fastest human.
An ai that learns faster than me ? In civ? ok....
when comparing Civ 3 AI and chess AI there is one big difference .... LUCK! in Civ 3 as others has pointed out that lucky position can make a big difference.. in chess the board never changes. in chess the attacking piece ALWAYS win ... even pawn vs queen but in CIV3 an attacking tanks can be killed by a spearman. because of the ramdom luck in most strategy game it makes Ai programing very tough. in chess every piece and each square has a value . the good AI programs can make the perfert move on the chess up to the level of moves it's see ahead ...EX. if it see 8 moves ahead you got to see pass that to fool the AI into a trap. but in civ the AI programs got to be more simple to handle all any type of game and maps with different starting positions and resourse. Chess AI is nothing more than a complex Calculator which took years of developing .that why today Chess programs are so tough ..(when the last time a calculator gave you the wrong answer to a math problem). to me i believe Civ 3
is about as tough as any ramdom-luck strategy games can be . hope conquest will help to have more interesting MP games.
AI is called Artificial intelligence for a big reason . AI really cant learn like a artificial paint doesnt grow . PC doesnt have any real intelligence that why you better keep your firewall and anti-vinus programs updated all the time because hacker out smart AI everyday and need alot of outside help to keep up with them ... AI has two big weakness againest humans ... 1) humans brain has it own program to build itself up and making more connection (that how we learn ) but AI cant build it own hardware or change it 2) AI only knows numbers just like a calculator ( even this reply is nothing but numbers)
Separate names with a comma.