Anaconda Plan

My main point was that the AI shouldn't make decisions intended to hurt the human player without regard to whether it was beneficial for itself. The original point started about the AI picking stop trading teams the human is unlikely to accept, but it pertains just as well to the AI sending dozens of units into the meat-grinder to try to take a mediocre civilization halfway across the map and then in spite of catastrophic losses being unwilling to sign a treaty.
Oh, I agree there are plenty of ways the AI could improve it's strategies, and even expand on the "Playing to win as a Role Played personality" model. My main point was that forcing the AI into war against the top seat would violate that principle and I just find it gamy. Other then that, yes, diplomacy, especially choosing demands and trades could be done far more logically.

On the other hand, we should also keep track of what "trying to win" means. Someone in 10th place in 1500 is not going to win the game, short of everyone else being idiots and ignoring the attempted cultural victory of the 10th place player.
Not necessarily, if AI diplomacy was improved the 10th seat could use diplomacy to secure itself while going for a cultural win, much in the same way a human player does.

Right now though, as Dom Pedro points out, the AI is hamstringed about working diplomacy. Instead it fiercely follows it's diplomatic ratings (good), but doesn't behave in a way to effect these same relations, instead it just flys by it's seat forming it's diplomatic oppinions just based on what happens.
 
Edit: Also the often mentioned every AI should attack the player that is winning is a bogus argument that the AI isn't designed to win. As it ignores the prisoner's dilema, if the AI's were behaving as seperate entatities trying to win. Such behavior actual goes against the playing to win strategy, and is just a gamy derivative and gives the AI player a very artificial texture, real humans do not behave that way.
Just for the record: I didn't said that the AI should attack a civ ( human or not ) that is close of winning. I said that the AI should not consider so high in their consideration a AI that is close of making them lose. That is pretty much as humans play in multiplayer, even in the diplo-entagled games and it is pretty much the way humans play in SP, unless they are roleplaying.

OFC that would imply a diplo finesse that the current AI is incapable of handling.....
 
Ok, I'm in the process of testing my modifications to the way the AI handles diplomacy. If it works well, I'll hand it over to be included in Better AI. I've added several new contact types as I've stated earlier that will have the AI offering trades for stopping trade and wardecs rather than just demands. I've also allowed them to contact players to make peace with a third party. I'm not sure if this would go against the unaltered gameplay mantra of Better AI though.
 
Ok, I'm in the process of testing my modifications to the way the AI handles diplomacy. If it works well, I'll hand it over to be included in Better AI. I've added several new contact types as I've stated earlier that will have the AI offering trades for stopping trade and wardecs rather than just demands. I've also allowed them to contact players to make peace with a third party. I'm not sure if this would go against the unaltered gameplay mantra of Better AI though.
Try to make sure that your format is semi binary compatible with existing BTS saves.

Best if if you can be saved and loaded from a BTS game and it works. This could be tricky if you are extending enums, as all of a sudden the values are out of range for vanilla BTS.

Good is if you can load a standard BTS game. (Ie, you extend enums only at the end)

Bad if is you cannot load a BTS standard game.
 
I'm not sure if this would go against the unaltered gameplay mantra of Better AI though.
That's the BUG mantra. I think Better AI held a similar standard, but it has definatly been violated by now. Check out the changes to Air Combat in BetterAI, Air combat is handled entirely differently now. That said, if something is altered, there better be a damn good reason for it. I think improving the AI's diplomatic strategy fits that.
 
Just for the record: I didn't said that the AI should attack a civ ( human or not ) that is close of winning. I said that the AI should not consider so high in their consideration a AI that is close of making them lose. That is pretty much as humans play in multiplayer, even in the diplo-entagled games and it is pretty much the way humans play in SP, unless they are roleplaying.

OFC that would imply a diplo finesse that the current AI is incapable of handling.....

Fair enough rolo. Here is the thing though, the AI is supposed to behave as a roleplayer. At least that was the original design philosophy of the AI, and I see no reason to violate this. Of course some AIs have a role play personality that is supposed to behave like a cutthroat backstabber, Napolean, Catherine and Alexander come to mind. Anyway, it's important that if new AI decisions such as reducing the diplomatic "feeling" against the top seats, that such decisions can be adjusted for the various personalities. I can see Catherine trying to organize a dogpile against the top seat she is pleased with when she's #3 on the scoreboard. At the same time I do not think Lincoln is supposed to behave that way.
 
Try to make sure that your format is semi binary compatible with existing BTS saves.

Best if if you can be saved and loaded from a BTS game and it works. This could be tricky if you are extending enums, as all of a sudden the values are out of range for vanilla BTS.

Good is if you can load a standard BTS game. (Ie, you extend enums only at the end)

Bad if is you cannot load a BTS standard game.

Hmm... yeah, unfortunately, my new code would add several new Contact types and Memory types. That might not work then. I'll save the new stuff for my own mod and just release the code that changes the AI behavior for the existing contact types.
 
Dropping the save game compatibility requirement will probably be alright. At the very least it can be incorporated with RevDCM, and jdog could release two versions of Better AI. Don't stop, if you got something working that improves the AI, unless jdog says it's unusable.
 
This sounds really interesting to me just the sort of thing I think the AI is lacking.

Keep up the good work Dom Pedro.
 
This sounds really interesting to me just the sort of thing I think the AI is lacking.

Keep up the good work Dom Pedro.

Yeah, I'm focusing on diplomacy because I'm adding new diplomatic trade types into my mod (specifically: Worker Trading, Military Unit Trading, Embassies, Corporation Trading, and Contact Tading), so I'm already tinkering with the AI's handling of diplomacy.

In particular, I want the AI to step up certain kinds of diplomacy during wartime. If the AI is lacking a strategic resource like Iron and they're invaded, they'll aggressively try to trade for Iron. If their enemies are importing Iron from a third party, they'll aggressively try to convince that third party to cut off their supply or even declare war on them. They'll also pressure the AI to cancel deals if there territory is being used as a route of attack for an invading army.

I also want to make sure the AI avoids trading military techs to people they're planning to attack soon because that's just asinine.
 
Dropping the save game compatibility requirement will probably be alright. At the very least it can be incorporated with RevDCM, and jdog could release two versions of Better AI. Don't stop, if you got something working that improves the AI, unless jdog says it's unusable.

I think there's very little I would like more than to see a version of better AI that abandoned saved game compatibility. Would render moot the question of whether the AI can make use of signs/strategy layer.
 
By save "game compatibility" do we just mean the ability to reload a game saved under a different version of BETTER AI or original BTS ?

If so what are the reasons for trying to stick to this ?
 
Same here, I support any improvement even if we lose save game compatibility.
 
By save "game compatibility" do we just mean the ability to reload a game saved under a different version of BETTER AI or original BTS ?

If so what are the reasons for trying to stick to this ?

Yep. That's what it means. To be honest, I never saw the big deal about maintaining saved game compatibility personally.

And it seems to me that there's a definite demand for a break from this rule. At the very least, there should be a "full" version that will break any previous versions saved games and a scaled back version that will allow people to load previous games.
 
I may be way off on this one but I was assuming that if BBAI were to go the path of breaking savegame compatibility from BtS, it wouldn't be too hard to at least maintain save compatibility between successive versions of BBAI.

And if it wasn't already obvious, my vote of course goes with throwing caution to the wind and abandoning the original goal of savegame compatibility.

In my opinion it's a significant enough hurdle to the development of the Better AI that the original objective needs to be reconsidered.
 
The best way to preserve save game compatibility between BBAI versions is to make a lot of the big changes early. If more UnitAI, MissionAI, Contact, Memory types etc. are going to be used, get those in right away. Even if they don't do anything right away. If you're going to use them for sure, get them in for the next version. So it would break compability between 0.60 and 0.XX (whatever it might be), but everything afterward would probably work.
 
The best way to preserve save game compatibility between BBAI versions is to make a lot of the big changes early. If more UnitAI, MissionAI, Contact, Memory types etc. are going to be used, get those in right away. Even if they don't do anything right away. If you're going to use them for sure, get them in for the next version. So it would break compability between 0.60 and 0.XX (whatever it might be), but everything afterward would probably work.

If you can predict what you will need later, then this will work best. I'm in agreement.
 
Being able to load, but not be loaded, is better than not being able to load. Ie, extend enums, don't insert in the middle.

Degradation in the sense of "ignore the value out of range" is better than crashing. Write code that deals with enums that detects and deals with out of range values (and invents a new value).

If you want serious backward compatibility, start using bit fields. This gets expensive however.

Practically, once you break save game compatibility, the set of people who should use this mod plummets. Among other things, you are unlikely to regain save game compatibility when civ4 version-bumps.
 
Are we expecting that there will ever be another official civ version bump? The release of the unsync on amphib assault bug patch on the unofficial patch forum implied to me that further official patches were unlikely.
 
Top Bottom