SoC Ideas New Alliance System

From The Battle for Wesnoth Wiki
Revision as of 13:05, 28 March 2010 by Crab (talk | contribs) (Description)


This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas



This is a Summer of Code 2010 Idea



Description

New Alliance system

Wesnoth currently has a very simple alliance system, players are either allied, neutral, or enemies. The idea is to replace this with a system of privilege granting. Each player can grant privileges to other players but can't force other to grant the corresponding privilege. Thus it's only through diplomacy and trust that you can build an alliance.

There are 4 student proposals for this idea

Endercoaster-New Alliance System

I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums).
See GSoC: Endercoaster for more information.

Sannya - New Alliance System

I propose a new Alliance System, expanding from the basic Ally/Enemy/Neutral system as current. These settings in the proposed system are either automatically set or user-choice set. The default status is "Neutral", the Enemy status will be set after a series of unfriendly actions, or can be set by user. The "Ally" status can only be set with mutual agreement among players. Request to be an ally will be treat as an yes/no confirmation, with time-out and other constraints applied.
See Sannya GSoC for more information.

Aranair - Summer of Code Proposal

gna.org : aranair
irc : aranair (will pop by real soon)

I am interested in a new implementation of the alliance system where I will introduce the list of parameters that was listed out in the original post in the list of ideas (with modification). My take to this is that they should not be simply set to true or false but rather with more intricate levels to increase the dynamics through simple means...

Discussed this in more details in my wiki page. Or if you wish to view a pdf version at:
PDF Version of my Idea
See SummerofCode Aranair for more information.

Greywhind - New Alliance System

I plan to implement a system for configurable privileges and protections between players in Battle for Wesnoth, in order to create a more flexible and more extensible alliance system. I plan to implement the suggested settings, and also to provide unintrusive tooltip notifications when an action is permitted or denied by an alliance setting. As someone who enjoys the board game Diplomacy, I know how an interesting alliance system can really make for an engaging game. Therefore, additionally, I would like to consider putting in place a system whereby these settings can be secret or public, and whereby public or private written treaties (in text form, and unenforced by code) can be proposed and accepted or rejected.
See SummerOfCodeGreywhind for more information.

WML Handling

To allow UMC to work with the alliance parameters, each of them

  • should be setable by WML
  • should be lockable/unlockable by WML
  • unlocked parameters can be set by player via a table.
  • There should be an easy way to emmulate the old alliance system in MP game (a way for the game-creator to set and lock the parameters before the game)


List of parameters

  • can unit attack this side
  • do we take village from that side
  • can this side use our healers
  • can this side use our leaders
  • do we give this side our shroud information
  • do we give this side our fog information
  • can this side use our villages to teleport
  • is this side affected by our ZOCs
  • is team-chat/team-labels shared

Victory handling

  • add a "share victory" button
  • a side is victorious when all remaining sides share victory with him

Open questions

  • do we see what the other give us ?
  • victory : how do we handle some sides winning before others
  • defeat : i'm not sure if we need special handling for that, what would be the point of sharing defeat (unless forced by WML, in which case it's better to do it with events)
  • do we enable it in MP ? make it an option ?
  • handling of backstab (helping against an ally)

Whom to ask about this

Ask Boucman on #wesnoth-dev