Announcement

Collapse
No announcement yet.

My #1 Request...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • My #1 Request...

    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.

  • #2
    Well, obvously this would be the holy grain of one person game design-simulte playing a human being.

    Ain't going to happen with this game.
    If you don't like reality, change it! me
    "Oh no! I am bested!" Drake
    "it is dangerous to be right when the government is wrong" Voltaire
    "Patriotism is a pernecious, psychopathic form of idiocy" George Bernard Shaw

    Comment


    • #3
      However my most minimal part: no AI is allowed to know who is an AI and who is a player, is entirely possible. That is, it should not be beyond the ability of the computer to play without a human player. RTS games have long had AI that are like this-- I'd love to see Civ adopt the same.

      Comment


      • #4
        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
        May it come that all the Radiances will be known as ones own radiances

        Comment


        • #5
          Praise your hardware, since it seems that multi-threaded AIs are becoming a trend (and a bless) for turn-based strategy games. The first game that did that is Galactic Civilizations I think, and its AI was praised. CiV is coming a few years after so...

          Praise the New Age
          Go GalCiv, go! Go Society, go!

          Comment


          • #6


            It pisses me off to see people with no game programming experience say how difficult it would be to write a good AI for a civ-like game....it pisses me off even more when people with game programming experience say it's difficult. Writing a good AI for a civ-like game is easy, if you follow these simple steps:

            1. Design/code the game to be multiplayer to start.
            2. Get it 100% "finished" minus the AI.
            3. Play the game. Know it and it's rules well.
            4. Design/Code the AI utilizing your knowledge of the game and it's rules using FSMs (Finite State Machines).

            FSMs are by far the most powerful AI tool in a game programmer's arsenal. You could concievably code every possible scenario/action combination that the AI could take; designed correctly, this could eat up only milliseconds of time. This, of course assumes you follow the 4 steps.

            Take note!!! Firaxis!!!

            Comment


            • #7
              Originally posted by Cmonkey


              It pisses me off to see people with no game programming experience say how difficult it would be to write a good AI for a civ-like game....it pisses me off even more when people with game programming experience say it's difficult. Writing a good AI for a civ-like game is easy, if you follow these simple steps:

              1. Design/code the game to be multiplayer to start.
              2. Get it 100% "finished" minus the AI.
              3. Play the game. Know it and it's rules well.
              4. Design/Code the AI utilizing your knowledge of the game and it's rules using FSMs (Finite State Machines).

              FSMs are by far the most powerful AI tool in a game programmer's arsenal. You could concievably code every possible scenario/action combination that the AI could take; designed correctly, this could eat up only milliseconds of time. This, of course assumes you follow the 4 steps.

              Take note!!! Firaxis!!!
              I will thus be expecting your perfected AI mod days after cIV's release, then.
              "I used to be a Scotialist, and spent a brief period as a Royalist, but now I'm PC"
              -me, discussing my banking history.

              Comment


              • #8
                Originally posted by punkbass2000
                I will thus be expecting your perfected AI mod days after cIV's release, then.


                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?

                Comment


                • #9
                  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?
                  Well yes actually I was trying to help people out with a clone of Transport Tycoon. My suggested model was one where the difference between an AI and a player was a drop-in class. That is, one class would handle for local players, one for remote players, one for local AI, one for remote AI. Of course this is slightly over simplifying but that's exactly how it should be done.

                  The hard part is getting the AI to run well, making it hard, yet not having it cheat. My point about them not making the AI so it can't tell the difference between a player and an AI (and apparently your point) is that it isn't much work to do so. I think we're agreeing. Just in case we aren't I think I'm supposed to insult your mother or something.

                  Comment


                  • #10
                    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.

                    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.

                    Comment


                    • #11
                      Can you elaborate on what Finite State Machines are?
                      be free

                      Comment


                      • #12
                        The state machines I deal with are in digital systems.

                        Google is your friend here. The first result gives a fairly good definition. Just think of anything you do, and break it into several pieces. Then thing of what it is that causes you to go from one of those pieces to the next. You can now develop a state transistion table (and even draw a picture of you feel inclined) of the state machine that is, say, doing laundry or walking the dog.

                        He might have a more specific definition he was going towards. While this is a great aid to AI, I don't think it solves the fundamental problem: Figuring out how to do what they need to do in a situation (not what to do).

                        Comment


                        • #13
                          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.

                          Comment


                          • #14
                            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.
                            Human Player -> Interface Devices -> OS -> IO Handler -> Facade -> Engine
                            AI Player -> Facade -> Engine

                            All you need is one level of communication (a facade) to make them equal.

                            Comment


                            • #15
                              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.

                              Comment

                              Working...
                              X