From The Battle for Wesnoth Wiki
Revision as of 18:58, 17 April 2013 by Thunderstruck (talk | contribs) (Created page with '{{SoC2013Student}} Category:SoC_Ideas_Your_Own_Ideas2013 =Description= <h4>thunderstruck's proposal draft</h4> The current multiplayer campaign support from both UMC develo…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

This is a Summer of Code 2013 student page


thunderstruck's proposal draft

The current multiplayer campaign support from both UMC developers/maintainers and players perspective is far behind comparing to singleplayer support.

I propose to make developing multiplayer campaigns as easy as singleplayer ones. I am going to do that by enabling Wesnoth's engine to handle [campaign] and [scenario] tag with their attributes when used for multiplayer campaigns with very little modification and implementing additional GUI elements to let users easily choose difficulties, save/restore games and manage network players.

This approach would let to dispose of all or most current '#ifdefs' used to create multiplayer campaign or to enable singleplayer campaign to be used as multiplayer and would fix a lot of bugs related to multiplayer campaign support.

The Project


Enable top-level [campaign] and [scenario] tags to work properly with MP campaigns.

  • [campaign] tag should contain an attribute called 'campaign_type' with a value of 'sp', 'mp' or 'both' to indicate the type of game campaign is made/adjusted for.
  • [scenario] tag's attribute 'allow_new_game' should be used to define whether the scenario could be played anytime or just after completing particular scenario(s) as it was used in [multiplayer] tag.
  • Extra boolean attribute 'custom_side' inside [side] tag to specify whether players should be able to choose MP factions or not.
  • Extra boolean attribute in [scenario] tag called 'custom_turns' to specify whether players could swap not only the sides, but also the order of the turns of those sides.
  • The 'allow_player' attributes should be removed from the [side] tags. ?
  • better [story] tag support?
  • get rid of 'save_id' attribute inside [side] tags. ?


Deal with all changes of WML while keeping support for old ways to create MP campaigns and fix or refactor save/restore code to deal with the current issues.

  • Proper filtering of SP and MP campaigns using 'campaign_type' attribute.
  • Enable MP campaigns to use difficulty attributes inside [campaign] tag.
  • Players' management window should suggest appropriate sides to the players (e.g. if the same side exists over multiple scenarios, the player who used to play for that side should be placed in relevant slot) if possible. However, players should still be able to swap sides.
  • Refactor or fix the current save/restore code to fix known related problems of MP campaigns.
  • Allow the game to be played in custom turns (specified not by the campaign's designer, but the players).


Tinker to work well with changes made to the engine and implement new elements where needed.

  • In the MP game 'maps to play' list, users should see only one option for one MP campaign. Any chapters or scenarios which could be played without playing before should be displayed in additional dialog. Also users should see not the first scenario's name, but MP campaign's name in that list option.
  • Difficulties should be allowed to be chosen in the MP game create window along with other options.
  • Between every MP campaign's scenarios players should be displayed with manage players window.
  • Players should not be allowed to choose any MP factions if campaign's designer specified so, in order to keep campaign well balanced.
  • Players should be presented an option to modify turns of the sides.


put ONLY your irc nickname in there. in case of alternate nicks, separate by ,

Example content of this section: "user" "user1, user2" (without the quotes)


TODO: fill out the questionnaire, on your copy of this page. Question are here : SoC_Information_for_Google#Does your organization have an application template you would like to see students use?