2

Whenever I try to build a spaceship, the attitude of my AI allies start to worsen. Their attitude eventually reaches "genocidal". When I launch my spaceship, all my AI allies eject me from the alliance, and some will even declare war on me. I'm wondering: is it possible to win via an allied space victory? In other words, is it possible for members of an alliance to win together when one alliance member's spaceship reaches Alpha Centauri?

0

Allied victory is not allowed in the space race

Only pre-game-defined team members, not all allies are granted a victory when a spaceship arrives at Alpha Centauri. This explains the behaviour of the AI. It realizes you are winning and will try to gang up on the leader to prevent this from happening and prolong the game. The AI correctly evaluates such a position as bad, and will attempt to make you stop buliding your spaceship using diplomacy at first.

If the AI cannot manage to do so and you launch before the AI anyway, it will realize that the only way it can stop your victory is by taking you out before the spaceship arrives and will go to war in a few turns time (5 or more depending on map size).

But, you can exploit things...

The AI is explicitly coded to cancel all alliances and shared vision pacts, start hating you, and go to war when a spaceship is launched. Check the file /ai/default/daidiplomacy.c, lines 1558 thru 1594, the code block containing:

      if (aplayer->spaceship.state == SSHIP_LAUNCHED
          && adv->dipl.spacerace_leader == aplayer
          && pplayers_allied(pplayer, aplayer)) {
   (...SNIP...)         
        DIPLO_LOG(ait, LOG_DIPL, pplayer, aplayer, "plans war due to spaceship");
        war_countdown(ait, pplayer, aplayer, 4 + map_size_checked(),
                      DAI_WR_SPACE);
    }

This code will always execute while the AI is not the spacerace leader itself. (Iff the AI is themselves ahead in the space-race compared to you, it will not care about your spaceship: it will instead attempt to launch and win first.)

The AI will also set its secret love variable (see my answer to your previous question: Does Freeciv AI attitude worsen if I clean up pollution and nuclear fallout on their land?) to the minimum possible. So the only way to stop the AI player from warring is to, within the turns it takes for the space ship to arrive, send it enough bribes and other signs of goodwill to completely flip over its attitude again to be able to peace out of the war it will start. Exactly how much stuff you would need to give away to do this depends on game settings, AI opinions about the value of things, and so on.

Typically just defending your lands until the spaceship arrives is a far cheaper option in nearly any game, as you would need to send 200 gold plus 2,000 gold per city you own worth of stuff in a trade deal with the AI in question for it to like you completely again.

Option 2: Leapfrogging the AI

The second way you can exploit things (at least for a while, until you launch ahead of the AI) is to stay one turn behind it in the building of the space-ship, then increase your production greatly for the final few turns to jump ahead of the AI. This is quite risky and can backfire: if you don't manage to exceed its production you may find yourself losing by one turn.

But, because the AI thinks it's ahead of you, it won't confer upon you any diplomatic penalties related to the space race victory condition.

Option 3: Play on a huge map

If the map is very big, it may take too long for the AI to declare war for this to matter.

| improve this answer | |
  • Suppose I have finished building my spaceship (but not launched yet), no one else has started building one yet, and all my allies have a "genocidal" attitude. You mean to say that it's possible for my allies to like me again at this point? – Flux Aug 5 at 10:48
  • Bribe them enough and they might, yes. (Although their attitude will continue deteriorating at a fixed fast pace). Launch the ship and they jump back to genocidal instantly. – aphid Aug 5 at 11:44
  • How do you know all these things? Do you just read the source code? – Flux Aug 5 at 14:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.