GREAT job of pointing out the issues and i like your proposed solutions
I've said some of this before but:
IMO the best fix would be to have the low effort stuff (open borders, not being defenceless, etc) make you neutral or friendly at best if your ideology is the same. Getting better relations should take time and effort on your part.
For example, multiple trade routes, continual trades of tech and strategic resources, helping in war, gifts, support in the UP and not trading with, helping, or allying with a races enemies.
I'd also like alliances to be possible at friendly but give them obligations (such as mutual defence) so there is a cost to maintaining them. This would definitely require a penalty for allying with a races enemies though or else it would make diplomatic victories even easier.
Maybe different types of alliances with different obligations? Just to brainstorm and/or rip off other games:
I'd also like the diplomacy bonus to be given a new purpose. Maybe reducing the length of negative modifiers (ie we were at war), increasing the length of positive ones (remember that time we helped out out in a war) and/or boosting the perceived value of trades.
Edit: I just read the main bullet points of your post before commenting, but looking at it in full I love the idea of replacing the alliance victory with a federation victory. Instead of just getting everyone to cooperate with you you'd have to get the whole group to cooperate with each other.
This is one of the things that makes me most excited for Stellaris, I can't wait to try and build a star federation.
I too have said it before, but the existing base model for diplo is actually fine.
No, really. There's 2 problems which make everything else go wrong, but if you read through the xml you can see that the model itself is a robust, if unimaginative example of the classic design used by 99% of 4X games, and clearly has had a lot of thought and effort put into it. I'd go so far as to call one of these problems a bug, but I'm not sure if it's just a cut feature or not. The 2 things are the total scale vs the size of modifiers, and the AI's evaluation not working.
The scale thing is a design problem, which means that all diplomatic modifiers are ridiculously powerful. Relations go from 10 to -10. Modifiers can be upto + or -3 per turn. That's 15% of the total per turn; even the smallest modifiers are 5% relations change per turn. Many of these modifiers are also increased by 50% or more depending on the personality of the AI. Basically, within 20 turns, someone who loves you completely can switch to hating you most of everyone simply because of a scout ship trespassing. Fixing this is a few xml tweaks which would take about ten minutes.
The second thing is the evaluation. The AI will always accept an alliance if you have high enough relations to offer it. It doesn't evaluate whether it would be a good idea or a bad idea; it just has a lock on being offered an alliance before X relations and if you have that relation value, it will always accept it. You can remove the lock from the files and the AI will always ally the moment they meet you. There's files which actually include behavioural triggers for the AI at different relations which seem to imply alliances should be evaluated (and which should also trigger the AI to break alliances with people who are allied to it's enemies), but they appear not to be used by anything (certainly, changing the values has no effect). Either these are the remains of an abandoned feature, or else they're supposed to be working and are bugged. Depending on whether it's a bug, or if the feature was dumped, this could take a lot longer to look at.
So basically, if they re-scale the relations slider to 100 to -100 and fix evaluation, the diplo model should start working as intended and would likely be considered a pretty good example in the genre. Races will start to display their distinct personalities because they have room to do so on a 200-spot slider. We'd have to take tens of turns to progress from an open borders treaty to a free trade agreement, and then tens more before we were able to convert that into an alliance. This produces plenty of time for the diplomatic game to go wrong - as opposed to a quick 5-turn blitz and we're allies for life, I'd have to remain friends with my neighbour, in direct competition for resources and planets, for a hundred turns to get the payoff. That's a lot of time for me to look at his planets and start thinking how much prettier they'd be with my buildings all over them.
At the Foreign Office in the UK, they used to have a saying: A week may be a long time in politics, but a year is a short time in diplomacy. At the moment, in GC3 diplomacy a month is a long time.
I agree that relation changes could be slower, but outside of war (which you'd only want to be in with one race at a time) there isn't really an effective way to compete for resources after the initial rush, which tends to be finished before diplomacy goes anywhere even under the current system.
Even if it took 100 turns to build up your relations high enough to get an alliance you'd still get there with everyone you didn't invade (about 2 races at most realistically after having met your neighbours). You'd be pretty hard pressed to even get the technology for alliances in less than 100 turns.
The problem is that there isn't really anything to evaluate at the moment. Alliances don't really benefit the AI as there current implementation is just a boost in relations between the two races and progress on the alliance victory condition.
If alliances came with obligations and opportunity costs (which would make diplomacy a lot more interesting imo) then evaluation would definitely have to be a thing. If they don't go that way though I don't think it's really worth the effort.
Edit: I get the sense that the original plan for alliances had more to it, since there is still the military/technological/cultural specialization choices after researching alliances. I wonder what they were supposed to do.
Part of the evaluation thing that doesn't work is the AI dropping alliances with players who are allied to empires they're at war with. There's a behaviour setting for it in the xml - if the AI has relations of -4 with some other race you're allied with, it should break it's alliance with you. That alone would make getting a diplomatic victory much more difficult, forcing you to kill off difficult races rather than just getting everyone to join in one big pangalactic orgy through cunning use of open borders treaties.
There's nothing particularly wrong with having alliances which just impact relations and don't force you to go to war or anything, provided there's some effective triggers for breaking it and the AI will evaluate it's worth based on 1) if it wants to have good relations with you, and 2) if it's going for an alliance victory itself - so make it unwilling unless you're either much more powerful or else it's looking to get the alliance victory first. It already checks both these metrics to determine the value of some other diplo actions.
If it's not possible to mod the scale is it possible to divide the modifiers by 10 to produce the same result?
You're right, dropping an alliance with an ally of its enemy would make for more interesting game play. If they do that though I hope they present you with a dialogue box giving you a choice who you want to stay allied with instead of having both allies just dump you if they have a falling out.
The problem with implementing that now though is that currently it's difficult to keep track of how the AIs feel about each other. Currently the only way (afaik) is to open the trade window and ask the AI to declare war which gives you a dialogue box that lists its relations from -10 to +10. Also, aside from bribing both races to declare war on someone else I don't think there is any way for you to improve relations between two AI races.
Maybe that could be another use for your diplomacy bonus. Imagin if they renamed it to diplomats and on the diplomacy screen you could assign them to different tasks such as
Edit: You could even go farther with this, make all treaties require diplomats so that open boarders/shared sight with everyone wouldn't necessarily be the best choice any more, and would at least require you to build a bunch of embassies in order to be possible.
I'd love to see GC3 adopt a diplomacy model like Beyond Earth: Risind Tide or Star Ruler 2. Just something that was different, very hard to exploit, and made the game better, instead of a joke (in this regard).
You can mod the scale (I've done it and it's in IAB). You cannot divide the modifiers - they're set as ints in the hardcode rather than floats. This slows down diplo delightfully and helps a lot in preventing super-rapid alliance victories, but it doesn't really make them harder - just slower. The AI will still eventually blindly agree to ally with you, it just needs to reach 80 relations rather than 8.
but outside of war (which you'd only want to be in with one race at a time)
Nothing wrong with going to war against multiple factions at the same time. I don't play with victory conditions, and for the sake of stability, or so that I can take over some clusters without completely eliminating a faction, I often transplant factions from one area of the galaxy to another. Multiple-front wars expedites this.
After years of Civ III diplomacy, I'm pretty happy with the GC3 diplomacy. As for possible changes/improvements:
1) I very much like the idea of random incidents that have an impact on relationships.
2) Favor anything that makes diplomacy more involved/complicated.
3) Increasing the scale for relationship modifiers is a fine idea. But you need to have a 'random' factor in there too, otherwise no matter how complex the relationship system is, its no different than just building a bunch of diplomacy star bases.
One thing I think that could be looked at is a formula that involves faction power and faction physical location in relation to other factions, through the lenses of trading partners, past relations, and ideology. For example:
> Player is in a relationship with Faction 1 and Faction 2. Player is ranked 1st for power, and benevolent. Player is 2 range limits away from Faction 2, but 6 range limits away from Faction 1. Faction 1 and 2 are both pragmatic and trade partners.
So, Faction 1's standing towards Player is wary because Player could potentially threaten a trade partner. The wariness is lessened due to the range distance between Player and Faction 2, but not greatly lessened (2 range limits is not that far). Also, Player is Benevolent, so does not get the standard Malevolency penalty to trust (until Player acts malevolently by declaring war or breaking a treaty without cause). Power rank makes Faction 1 more wary too. However, Faction 1's random trust roll at beginning of game was high, so it is more trusting of the player. Its Forgiveness roll was low, so if Player breaks a treaty, Faction 1 will not easily forgive Player. And on a turn when the relationship is checked for some reason, say, Player 1 enters an alliance with Faction 3, which is right next to Faction 1, and Faction 1 and 3 have a negative relationship, when the impact of that new alliance on Faction 1's regard for Player is checked, the in-game random roll determines that the result, positive or negative, is amplified by 20%, so since negative, it has a +20% negative outcome.
Diplomacy ranks would add a bonus to or reduce the damage from diplomatic decisions (and the random events) that impact relationships, never dictate the actual regard that a faction has for the player.
Also, the present status of a relation should behave the same as ranks in diplomacy (affecting the size of the impact of diplomatic decisions). So severe hate might severely hamper any positive outcome, and great love would inhibit negative - although love should be easier to decay than hate is to heal... in diplomacy. With the exception that a faction will always accept aid in war, but won't enter an alliance with a repeated treaty/agreement breaker.
( edit: in re: the exception, Faction 1 would be highly inclined to give aid to a Player who was at war with a faction that Faction 1 hates, even if Faction 1 had a strong dislike for Player. War should greatly increase the % chance for success or failure of a diplomatic outcome depending on the Faction-being-negotiated-with's relationship with any other Faction (including the player's) that is involved with the war or impacted by it - even if indirectly. The closer the diplomatic event is to a current war, the more exaggerated the war's affect on the diplomatic out come should be.
I'm surprised this hasn't all been coded already. Seems like it would be fun to do.)
(edit 2: I would limit the diplomacy ranks bonus to diplomatic events to +25% to positive, and limiting the reduction to negative to -5% or -10%. Each diplomatic outpost/building or tech contribution to diplomacy ranks being limited to 1%, 2%, or 5%. State-of-War bonus to events I would limit to -100% to positive and +100% to negative. Loving Relationship maybe +15%/-5%, Hate -25%/+25%. And preclude any impact on relationship from ever being reduced to 0. A scale of 1-1000 would probably be a nice minimum for a range of relationship ranks, with a base standard adjustment of 10 (ha ha, unless a Faction rolls up a 'touchy' designation at the beginning of the game, and the standard is doubled to 20 in regards to that race).
The question begs, though... should the Faction warn the Player that such and such a deal would have such and such an impact on their relationship?
I can see a faction opening a diplo menu just to say: 'Please mend fences with that other guy, cause we like him.'
end edit 2)
---------
If there is one aspect that bothers me, it is how the AI, any faction, seems to go to war with a player if the player doesn't have defenses. Or threatens them. That doesn't make sense to me. What should happen, is a benevolent faction offering to protect another benevolent or pragmatic faction... maybe for a price, or maybe out of kindness. And instead of a threat, maybe say "Hey, Player guy, we hear the Nefarions are near by, and they have a mighty fleet and can't be trusted... you may want to build up a fleet... but we can sell you some cruisers for 5k." Which is sorta sorted with the expansion coming out.
There is in fact already a behaviour trigger in the xml for this too... which also does not work:
<DiplomacyEffect> <MaxRelations>-9</MaxRelations> <Behavior>UnsolicitedEnemyAssistance</Behavior> </DiplomacyEffect>
Take a look in DiplomacyDefs.xml (most of the effects are fairly obvious). An awful lot of the suggestions we come up with for diplo seem to be in there, but are inactive, which is part of the reason why I hope it's just bugged and not the remains of abandoned features.
There are many great features available to you once you register, including:
Sign in or Create Account