3.2 JS API Wishlist :)

For AI and campaign script related discussions and questions
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: 3.2 JS API Wishlist :)

Post by aubergine »

Why does an AI need diplomacy? Would it not just look at some metrics and make an objective decision based on that?

For example, an AI might favour nearby players as allies, and when looking for other AI allies it might want to know they are using similar or same research path.
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: 3.2 JS API Wishlist :)

Post by Per »

aubergine wrote:Would it not just look at some metrics and make an objective decision based on that?
That's what I mean by diplomacy.
aubergine wrote:For example, an AI might favour nearby players as allies, and when looking for other AI allies it might want to know they are using similar or same research path.
And if they refuse? If they take advantage of the AI? If they appear to be close to backstabbing (and how would it know)?

The easiest "diplomacy" model is that each AI offers an alliance to its right clockwise. I leave it as an exercise for the reader why that would not work.
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: 3.2 JS API Wishlist :)

Post by aubergine »

Per wrote:And if they refuse? If they take advantage of the AI? If they appear to be close to backstabbing (and how would it know)?
Well, while there's no way for the AI to remember across games who backstabbed it, there will be little motivation for an AI to work out if it's been backstabbed (because it can't improve its game in the future based on that information).

As mentioned elsewhere by NoQ, dynamic alliance mode should really be a fight to the death where only one single player can win. In other words, erudite backstabbing would be a key tactic required to win.

With the ability for AIs to offer, accept/decline, and break alliances in dynamic alliance mode, and the ability for AIs to persist data across games, there will be a strong incentive for AI developers to develop innovations relating to that game mode (many of which I imagine would be of benefit to fixed teams mode).
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: 3.2 JS API Wishlist :)

Post by Per »

Is there any example of dynamic alliances being a popular game mode in any RTS game?

I suspect this is something that it would be far more interesting to develop than to play...

PS Keep in mind that if you change it so that only a single player can win, you end up with a game mode entirely unsuitable for groups of friends, since players will be killed off and sit idle for the remainder of the game. In fixed alliance team games, even if you are killed off, you can be donated a new truck or some offensive units, so that you can rebuild or go harass the enemy for the benefit of the team. In FFA, once a player gets dominant he/she will quickly roll over everyone else, allowing a new game, whereas in dynamic alliance games, the others will gang up on that player and the game will last much longer.

I imagine that dynamic alliances with total strangers will be far less fun.
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: 3.2 JS API Wishlist :)

Post by aubergine »

There's certainly no interest in dynamic alliances in ski mode, that's for sure - but the reason there is no interest in ski mode is that the JS-based AIs don't ally with each other, or the player. I think dynamic alliances could add a very interesting dynamic to ski mode. Even if the implementation was pants, the psychological effects on the user could be profound, because at any time (from human perspective) the alliances might change.
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: 3.2 JS API Wishlist :)

Post by NoQ »

If the AI is written in such a way that it will instantly break and refuse to forge alliances with anybody who has ever betrayed anyone in this game, would it help?
In FFA, once a player gets dominant he/she will quickly roll over everyone else, allowing a new game, whereas in dynamic alliance games, the others will gang up on that player and the game will last much longer.

I imagine that dynamic alliances with total strangers will be far less fun.
Not really. In a good FFA others will gang up too. Probably with less effect due to unshared research, but they will anyway. So it seems that AllowAlliances is related to FFA in a way similar to how FixedAlliances related to AlliancesUnshared.
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: 3.2 JS API Wishlist :)

Post by aubergine »

An AI wouldn't refuse to forge alliances with anyone who has ever betrayed it (which eventually will be everyone) - but it can make informed decisions based on previous betrayals. Either way, I think alliance API will make ski games much more interesting.
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: 3.2 JS API Wishlist :)

Post by NoQ »

An AI wouldn't refuse to forge alliances with anyone who has ever betrayed it (which eventually will be everyone)
Why?
I repeat, I'm not talking about "ever", i said "in this game", not as in "Warzone 2100", but as in "Today's 2:30PM Allow Alliances Skirmish Game on Sk-Rush" (and also not "betrayed it" but "betrayed anybody").
Post Reply