Announcement

Collapse
No announcement yet.

Diplomacy Model v1.1

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

  • #31
    Got some Answers about treaties. Don't take these as gospel until Kull gives his ok, or makes mods

    1)if A and B have a treaty and A violates it what can B do?
    -A can do anything it wants to The only thing that violating a treaty does is lose any collateral the offending party had at stake, and has it known that they've broken a treaty.

    2)if A and B have a peace treaty and A wants to declare war on B does A have to cancel the treaty first or can A declare war and thus cancel the treaty?
    -I'd say the attack is a de-facto declaration of war.

    3)on negotiations assuming we use some like what Mark suggested should A and B both come up with treaties and both offer counter offers and then decide either whose is best, end negotiiations or agree to meet next turn.
    Or should A offer a treaty to B and B can return a counter offer and if A doesn't accept B can either accept original treaty, end negotiations or continue negotiations next turn.
    -I'll leave this one up to Kull since I've already registered my preference. Either way could work fine.

    4)I hope to implement multiparty treaties eventually but they offer some major difficulties especially in how to negotiate them. Any ideas?
    -I think you just need to go around the negotiations a lot just as in the real world.

    5)Should all treaties be in one array/list or should they only be referenced by civs that signed them?
    -I'd just have them known by the signitories, and also if they aren't secret they'd be known by all with diplomatic relations to the signitories. But as the modern world approaches that will drive toward one big list... So I dunno the right answer.
    Project Lead for The Clash of Civilizations
    A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
    Check it out at the Clash Web Site and Forum right here at Apolyton!

    Comment


    • #32
      Another question if clause is designed such that it causes one civ do something to another civ (ex. pay tribute, transfer territory) should the clause itself do that(through the doAction method see above) so for example the clause tribute would have
      void doAction(){
      payerCiv.pay(recieverCiv,amount);
      };
      or should the the civ actually have to take the inititive and call pay itself? My feeling is the former is easier but i can imagine opposition to this so am wondering what others think?
      "I would perfer not to"
      -Bartleby
      "Bartleby" by Herman Melville

      Comment


      • #33
        Jacobo:

        The more complicated version, where the paying power can veto a disbursement that is due by an active treaty, is more realistic. I think that should be the long-term goal. However, we're only doing the alpha-1 model now, so if you want to slide with the easier treatment for a while I don't think it would be a problem.
        Project Lead for The Clash of Civilizations
        A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
        Check it out at the Clash Web Site and Forum right here at Apolyton!

        Comment


        • #34
          For now easier is better for me?
          Now some questions about aiValue(the method that returns the value to the Civ of carrying out the given clause), based on the clauses Kull outlined above.


          for tribute if the A pays B one time for X dollars, and A has a dollars and B has b dollars then aiValue(A)=-X/a*100 and aiValue(B)=X/b*100,(with caps of +/-100?)
          for annual tribute, with A paying B X dollars per turn and A and B bringing in a and b dollars a turn then aiValue(A)=-X/a*100 and aiValue(B)=X/b*100
          All i'm asking is if this is a resonable way to calculate the aiValue of a tribute clause?

          I will also need formulas for territory and tech but don't know enough to figure them out.

          ps i have finished the basic code for treaties and clauses let me know if you want it.
          "I would perfer not to"
          -Bartleby
          "Bartleby" by Herman Melville

          Comment


          • #35
            one more thing...
            can i send a yes/no dialog box to the player any time I need to or should I only do it at a specific time?
            "I would perfer not to"
            -Bartleby
            "Bartleby" by Herman Melville

            Comment


            • #36
              Hi Jacobo:

              Your guesses for a first shot at tribute sounds pretty good to me. I think the one problem is in the lump-sum payment. IMO the comparison value should be Either the treasury OR something like 10 turn's income. That is to stop really weird deals from happening when a big power happens to have a low treasury for other reasons. Also note that historically treasuries are usually in the red net because of borrowing during wars. However I assume positive cash in what I've got so far too.

              Territory could work similarly to a lump sum of cash where you use the territory's econ power as a fraction of total economic power of the respective civs. Then you would modify for strategic value, and possibly other things.

              Tech will have to wait until we have a way for the AI to evaluate tech.

              I can't do anything with the rest of your model until I am ready to kludge together an interface for it. And That will have to wait until I have rearranged the code to reflect the new hierarchy and classes for the very high-level parts of the program. (To make the code adhere better to OO design) So, why don't you keep going with the code, and I will tell you when I'm ready for it. Maybe in a week or so... I will then need a lock on your classes temporarily to make the changes in the upper class hierarchy consistent throughout the code.

              Keep up the good work!

              Mark
              Project Lead for The Clash of Civilizations
              A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
              Check it out at the Clash Web Site and Forum right here at Apolyton!

              Comment


              • #37
                My thoughts exactly on the tribute part(I realized that a couple of hours later).
                One thing i have been thinking about is how the ai should generate treaties. i'm think ing Civ A should try to maximize (t.aiValue(A)+t.aiValue(B))/pow(A,B)
                where t is the treaty we are trying to optimize and pow(A,B) is how many times more powerful A is then B (could be less then 1)
                The reason is that it will keep more realism in the process. Because if A and B are about the same power, this will keep(hopefully) civs from making ludicrious demands if they are evenly matched. On the other hand if A is more powerful then B, A won't care about B's feelings as much.
                I my self am a bit unhappy with this proposal but currently am at a loss as to a better model.
                "I would perfer not to"
                -Bartleby
                "Bartleby" by Herman Melville

                Comment


                • #38
                  What you propose is a good stop-gap proposal. Please take a look at the Realpolitic / Hierarchical AI thread on the web page here. I never finished the document, but you can get some idea of what I have in mind for diplomacy if you read between the lines.
                  Project Lead for The Clash of Civilizations
                  A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                  Check it out at the Clash Web Site and Forum right here at Apolyton!

                  Comment


                  • #39
                    I'm several posts behind, so I'll try to address them all here:

                    I. Questions about Treaties:

                    I agree with Mark's responses to 1 and 2. The round of negotiations is an acceptable solution for 3. I'm mulling over some alterations, but I like the basic concept. 4 and 5 ARE difficult, if only because they could easily become so complex that you impinge on the "Fun-to-Play" factor. For example, if there's 7-30 "nations" out there, the average player does not want to engage in treaty negotiations with them every turn! Or incur some kind of "unfriendliness" penalty if he refuses to talk with them. The solution may be to think of it from the "Foreign Minister" (or "Secretary of State") viewpoint. At such a lofty eminence, he couldn't care less when some minor nation wants to curry favor, that's why he employs all those low level functionaries (ie. the AI). Let the Foreign Minister outline some broad principles (Don't start any wars, pay no bribes greater than $X, Don't give or trade the following technologies, etc.) and only contact him when nations X, Y, and Z are involved. To avoid overloading the AI, we'll need to define which combination of factors will generate a diplomatic contact between nations. I suspect most of these factors will be found within the other models (Social, Economic, Military and Governmental).

                    II. Treaty Responsibilities (Initiative):

                    A third method would be to display a list of all upcoming treaty actions and allow the player to either approve all as a group or opt to edit. (i.e. individually approve every treaty action except the payment to Slobovia.)

                    III. Tribute:

                    One comment here. In Ancient times, it was pretty much the norm for the weaker powers to pay off the stronger ones. In modern times this trend has clearly reversed (Foreign Aid, World Bank, etc.), particularly for democracies.
                    [This message has been edited by Kull (edited September 09, 1999).]
                    To La Fayette, as fine a gentleman as ever trod the Halls of Apolyton

                    From what I understand of that Civ game of yours, it's all about launching one's own spaceship before the others do. So this is no big news after all: my father just beat you all to the stars once more. - Philippe Baise

                    Comment


                    • #40
                      Kull:

                      Yep, all us democratic do-gooders . But certainly during the cold war it was more to prop up allies and bribe neutrals than out of any sense of real altruism IMO. That sort of giving has gone on thru history.

                      Agree completely with your point that Most players will want the AI to field at least a large proportion of diplo requests. I think your solutions are reasonable. We'll just have to see how good we can get the AI. I think the interface-type stuff is ok to talk about, but better to wait a little before we worry too much about it. When we get to the point where we can actually Test interface ideas then we'll be cooking.

                      jacobo:

                      Missed your request on the yes/no dialogs above. You can fire them off any time.
                      Project Lead for The Clash of Civilizations
                      A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                      Check it out at the Clash Web Site and Forum right here at Apolyton!

                      Comment


                      • #41
                        Everything above sounds resonable to me.
                        i have come up with a better idea for the production of treaties. The problem being in the original model there would be little difference between two sides treaties. the new one is this. A tries to
                        maximaze t.aiValue(A) while keeping t.aiValue(B)>t.aiValue(A)+relPow(A,B)

                        where t is the treaty and relPow returns the relative power of A and B form -100 to 100 in which -100 means A is way more powerful then B and 100 means B is way less powerful then B
                        and 0 means they are about equal.
                        "I would perfer not to"
                        -Bartleby
                        "Bartleby" by Herman Melville

                        Comment


                        • #42
                          Alright i have come up with an even better and simpler way to do generate treaties. Here's how it works, civ A tries to maximize t.aiValue(A) while keeping t.aiValue(B)>0. where(t is the treaty and A and B are civs).
                          "I would perfer not to"
                          -Bartleby
                          "Bartleby" by Herman Melville

                          Comment


                          • #43
                            jacobo:

                            I agree the 2nd approach is much better. Now we just have to give A enough info to figure out a treaty's value in a reasonable way!
                            Project Lead for The Clash of Civilizations
                            A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                            Check it out at the Clash Web Site and Forum right here at Apolyton!

                            Comment


                            • #44
                              Just an idea on one type of treaty I'd like to see in Clash, is a type of International Waters treaty. If we have a city radius kind of thing on the map , by signing this treaty both civs would agree not to violate the others' waters where the radius crossed into the water.
                              Another type could be a Stand-down treaty where both civs would agree not to build military for x number of turns.


                              [This message has been edited by Toubabo_Koomi (edited October 24, 1999).]

                              Comment


                              • #45
                                Hi there.
                                I'm excited about this Clash project and i'll be posting frequently.

                                I've three commnets:
                                1) Have you thought of how are you going to meassure how good a proposed treaty is? I mean for AI civs. It seems to me a really tough work, specially if you're considering mix treaties with peace, territory exchanging, tech exch. and so on.
                                2) In civ2 you can be over-ruled by the senate in democracy. Since you want something similar in Clash but you don't want(I hope) a stupid random number to decide this, it'd be nice to incorporate into diplomacy the rulers efforts to convence the senate. I think it'd be fun to negotiate with
                                the senate such issues and other topics not related with war. I'm not sure if this should be treated within the diplomatic model or inside the social model.
                                3) Treaties could also include:
                                -the possibility of closing/opening the nations resources for foreign investment and extraction(different from trade).
                                -Migration agreements
                                -Military inspection, like US over Iraq.
                                -Mutual investments, like international roads/railroads connections, common ports,
                                plague control, pollution control, etc
                                -Mutual tech development.

                                That's for now.
                                Rodrigo

                                Comment

                                Working...
                                X