 |
|  |
 |
|
Epistax

|
 |
of Bananas
May 2001 time: 00:35
|
|
It's hard. It's unproven. There's no simple answer. It's a complete resource hog.
I want an AI player. One that doesn't know who (if anyone) is an actual person playing. One that never gets any advantages or disadvantages depending on difficulty. One that has the same interface to the game as the player, that is, under no circumstances would know anything more about the game than a person playing.
Difficulty is a matter of the AI making poor decisions every once in a while. Giving them a personality is a matter of making the same poor decisions (Civ specific, anyone?).
Multiplayer is obviously a big part of Civilization, however I can hardly play it on my own free time, let alone having to balance with anyone else. I don't have the patience for PBEM because if I suddenly have a burst of free time, whoever else is playing will not.
Now the primary difficulty is obvious: If it's hard to make a good chess AI that doesn't take a great computer, how could you possibly do it for a game like Civilization? There are many paths to take, such as generalizing to specifics. An AI takes an overview look and puts it into a category. Looks within that category to a sub category, to a sub sub category, etc. Inside there are a list of basic instructions which would match what to do if REXing and one civilization has been met, or what to do if it is at peace with everyone and there is a weak unallied neighbor near by, etc. This is just one random example.
Well there's much more than this, such as keeping it smart & random, and I won't go into any further specifics. I just want to say this is what I'd want most. I’d love wonder movies, I’d love a great manual, I’d love animated advisors (animated as in personality, not necessarily the luxury of Civ II), I’d love voice-overs a la Alpha Centauri, I’d love altitudes, natural disasters, civil wars, a choice between political AND economic systems (how about social systems too), I’d love a lot of stuff—But most of all I want a _good_ AI.
|
|
|  |
 |
|
VonSharma
|
|
A big game of emperor is too easy to get ahead, and demigod is too hard to keep up. If the good people at Firaxis could come up with a way to keep the AI competitive without starting it out with a complete army or absurd tech trade rates, I could play the game as it is until I'm old and gray (or until I actually one day start my own civilization), although it would be nice to get some proper free trade pacts and the like.
- Varun
|
|
|  |
 |
|  |
 |
|  |
 |
|  |
 |
|
Cmonkey
|
|
Certainly having a single variable in the civilization class which delineates player type (AI or Human - it could simply be: "bool humanPlayer") is easy and would be vastly simpler than having a seperate class for each type.
quote: The hard part is getting the AI to run well, making it hard, yet not having it cheat. |
None of the above are hard....that was the point of my origional post. Making the AI do the above is as easy as knowing the rules WELL and designing the AI to USE them the way a good human player would through the use of FSMs.
|
|
|  |
 |
|
Max Sinister
|
|
quote: Originally posted by Cmonkey
Can you not read? Rule #1:
Design/code the game to be multiplayer to start.
Key words there DESIGN/CODE & START. If I'm not making the game from the start, how the hell am I supposed to fix what Firaxis screws up? |
If you think you're able to build a better AI than Firaxis, you can try it yourself with the Python engine.
BTW, I'm into AI myself and FSMs are NOT the non-plus-ultra of AI. That's because they're essentially nothing but scripts. Once you knew how they work you could try to find loopholes and win by that way.
Ah, and you will need more differences between player civ and non-player civ than a boolean. That's because the player will make his inputs with mouse & keyboard, while the AI had to do it different.
|
|
|  |
 |
|
Ijuin
|
|
Tokyo, Japan
May 2002 time: 14:35
|
|
quote: Originally posted by Sn00py
Can you elaborate on what Finite State Machines are? |
A finite state machine is any machine in which you can define in advance EVERY possible valid input and output. In other words, there are a finite number of states that the machine can be in, and you can conceivably program the machine's response to each one of them. The problem with a finite state machine is that it can not handle any input that is not on "the list" of accepted inputs, but the advantage is that you can cover all possible responses to inputs that ARE on "the list".
A good example of a finite state machine would be one that plays tic-tac-toe (noughts and crosses to you British Commonwealth people). There are only so many ways that such a game can go--and it is possible to program a computer for all of them.
On the other hand, a game like Civilization has many hundreds of different things that could happen each turn, so by the fiftieth turn or so there are more possible scenarios than their are atoms in the universe. This makes it impossible to program for every single possibility.
The alternative, then, is to use an "open state machine". Open state machines are meant to "learn" and "think" after a fashion inasmuch as they don't have rigidly predetermined responses to every input. The disadvantage is that nobody has yet brought open state machines to the level where they can outcompete a human opponent without using massive processing power (such as Deep Blue) to consider thousands of possible moves at a time.
|
|
|  |
 |
|
joncnunn
|
 |
Maryland Heights, MO
Sep 2002 time: 23:35
|
|
I'm a programmer by trade, AI is the toughest field in computer science. Yes, I agree that that making it multiplayer first before coding the AI is the way to go though.
Each game in the Civ series has seen progressly less cheating by the AI combined with more intelgent play, but there's still some obvious improvements that could be made.
The most obvious is the AI doesn't know how to tweak the science bar to minimize wasted beakers, but I would much prefer simply allowing the excess beakers to count toward the next tech for everybody like Civ II & SMAC. This would necesatate elimation of the can't get the tech until the 4th turn no matter how much you reserach and the granted the tech for free if you've been put at least 1 beaker towards it for 50 turns, but I don't like those features either. I do like different techs costing different amounts and also the reducation in beakers needed when you know others have it.
The AI has complete knowelge of all tiles it's previously explored should be elimenated simply because the AI can't even cheat intelgently with this.
Firaxis should consult with ET for the AI portions of should I change my government now & Forbiden Palace placement.
Rather than teach the AI to abandon my capital to get a new one for free (either with the abandon button or the building of settler/workers), I'd prefer disallowing that entirely.
The bigest overall section that the AI needs improvement is seeing the big picture. Currently the trade minister rountine does not talk to the military minister routine or vice versa. Perhaps making trade deals that expired early due to war simply be suspended with interest accuring like SMAC would help some, but really the trade minister has no business granting a tech for 50 GPT when it's military minister already has the sneak attack force in route against that player.
The other area is that the AI sems to be failing to see the big picture is that it seems to be unwilling to attack a healthy defending unit when chances of the first attacking unit in a stack winning are slim but chances of the second attacking unit winning are excelent, and the rest would be in perfect health. I call this the General McC syndrome, after the General in charge of the Union Army in the first half of the US civil war.
|
|
|  |
 |
|
Cmonkey
|
|
quote: Originally posted by Max Sinister
If you think you're able to build a better AI than Firaxis, you can try it yourself with the Python engine. |
Most likely, I will.
quote: Originally posted by Max Sinister
BTW, I'm into AI myself and FSMs are NOT the non-plus-ultra of AI. That's because they're essentially nothing but scripts. Once you knew how they work you could try to find loopholes and win by that way. |
If you know how to use them to take advantage of their strengths, you can easily avoid the "scripted" feel of the AI.
quote: Originally posted by Max Sinister
Ah, and you will need more differences between player civ and non-player civ than a boolean. That's because the player will make his inputs with mouse & keyboard, while the AI had to do it different. |
That was merely one way of storing the difference. It all depends on how the rest of the system is designed. If designed correctly that is the only information needed in the CIVILIZATION structure to show whether the player is an AI or human. Sometimes I think you people really can't comprehend English.
quote: Originally posted by Trip
Soren has a masters in Comp Sci. I trust him to do whatever he needs to make a great AI, and I trust that he knows how to. |
I dont.
-Edit - fixed formatting error.
Last edited by Cmonkey on 21-08-2004 at 04:28
|
|
|  |
 |
|
Max Sinister
|
|
And besides, why multiplayer first? If you only can play the game if every civ is played by a human, it will be difficult to play it actually...
|
|
|  |
 |
|
Cmonkey
|
|
quote: Originally posted by punkbass2000
Well, that's a nice copout. 'I'm going to make lavish claims and then deny their possibility because it will be screwed up by other people first before I get a chance.' |
It's not a copout, as I said previously...
quote: Originally posted by Cmonkey
Most likely, I will. |
Though, it all depends on how "open" the scripting language is as to whether I can attempt to do a FSM model in the manner I am thinking of. Most likely, I believe, it will not be possible. Even so, I'll almost certainly get into it and take it for a spin anyhow.
quote: Originally posted by Max Sinister
And besides, why multiplayer first? If you only can play the game if every civ is played by a human, it will be difficult to play it actually... |
The point of designing the game this way, is to learn how a human would play the game and design the State Machine to use the strategies developed by the human players. This is for the developer's benefit, because I'm almost certain that half the people, or more, who developed civ3, never played it.
quote: Originally posted by Trip
Well, if that's the case I don't see why you're waiting around for a game made by people who you lack confidence in their ability. |
I'm not waiting around for Civ4... in fact, I already know I'm not going to buy it.
|
|
|  |
 |
|  |
All times are GMT. The time now is 05:35. Apolyton Time is 00:35. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|