Complete.Org: Mailing Lists: Archives: freeciv-dev: April 2004:
[Freeciv-Dev] New alliances (PR#8394)
Home

[Freeciv-Dev] New alliances (PR#8394)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [Freeciv-Dev] New alliances (PR#8394)
From: "Per I. Mathisen" <per@xxxxxxxxxxx>
Date: Tue, 13 Apr 2004 13:02:29 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=8394 >

IN SHORT:
Now alliances are relationships between two players. With this patch,
alliances become named organizations with leaders and rules of engagement.

WHY:
  - it is better and much more fun
  - generalizes the 'alliance leader' concept in the AI diplomacy
    code and makes it available for human players
  - solves all the nightmarish problems with fragmented alliances
    and war without the horrible cascading war declaration kludge

RULES CHANGES:
  - no longer lose embassies on a player split (read: civil war)
  - you lose 50% reputation on breaking a ceasefire, 33% when breaking
    a peace treaty and 20% when leaving an alliance
  - an alliance is no longer a relation between two players, but an
    organization with independent existence
  - each alliance has a leader; only the leader can declare war,
    accept ceasefire or recruit new members to the alliance
  - to join an alliance, you must diplodlg someone who is in an alliance
    while not being in one yourself
  - you may at any time leave an alliance by creating a new alliance
  - if you are the alliance leader, you can remove anyone, including yourself,
    from the alliance; if the alliance leader leaves the alliance for any
    reason, new leader is whoever with higher score
  - you can make any other member of the alliance the leader instead
    if you choose
  - making contact with one member of an alliance gives you contact with
    all members of the team (for easy contact with alliance leader)
  - when you make teams in pregame, you go into "team mode" (game.team_mode),
    and you can use the team research feature; this feature is otherwise
    not available (as before)
  - 'set diplomacy' server option now limits diplomacy betweeen teams;
    by default it allows full diplomacy (I am unsure of the wisdom of this
    as opposed to checking game.team_mode and just banning cross-team
    diplomacy when in "team mode")

TECHNICAL NOTES:
  - alliances are stored in the team code, it was just perfect for this use
  - two new menu options in gtk2 client: new alliance, remove player from
    alliance
  - two new packets: add and remove player from team
  - mandatory capability (no way around it)
  - simplified a lot of AI diplomacy code (no longer need to kludge in
    the alliance leader concept in AI code, since we now have it in the
    main code)
  - savegame compatibility: all alliances and teams in older savegames
    are turned into peace treaties; basically no way to properly
    reconstruct old style alliances into new ones
  - the patch contains some rather convoluted and complicated game
    logic, so I need someone to review it
  - contains the draw patch posted earlier

TODO (later patches)
  - optional server option that you cannot join an alliance once it
    represents more than N% of the game's total score
  - AI should consider the love/hate and war desire of its team members
    when declaring war and peace (ie consult its allies on matters of
    war and peace)
  - the pacts in diplodlg should be grayed out when not usable
    (not really related to this patch but really ought to be done)
  - more AI awareness of alliances in general
  - find bugs, quash bugs; remove some debug code

You need to run ./generate_packets to use this patch.

Comments and playtesting _most_ welcome.

  - Per

Attachment: alliances1d.diff.gz
Description: application/gunzip


[Prev in Thread] Current Thread [Next in Thread]