Difference between revisions of "SummerOfCodeIdeas"

From The Battle for Wesnoth Wiki
m (Rewrite wesnoth network stack using boost::asio)
(Rewrite wesnoth network stack using boost::asio)
Line 49: Line 49:
  
 
'''Difficulty''': ?
 
'''Difficulty''': ?
 +
 +
=== New Alliance system ===
 +
Proposed by Boucman
 +
 +
'''Description:''' Wesnoth currently has a very simple alliance system, players are either allied, neutral, or ennemies. 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
 +
 +
 +
'''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)
  
 
== Old (2009) List of Ideas for the Project (Suggestions from the wesnoth developers) ==
 
== Old (2009) List of Ideas for the Project (Suggestions from the wesnoth developers) ==

Revision as of 09:15, 28 February 2010

This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):

I want to be one of your Google Summer of Code students, what should I do...

Here is a quick list of things to do to get you started

  • Create an account on gna.org
  • Create an account on the wesnoth forum, and tell an admin on the IRC channel to mark is as a GSoC Student account (Admins are boucman, Ivanovic, mordante, Shadow_Master, Sirp and Turuk)
  • Join the irc channel (#wesnoth-dev on irc.freenode.net) and introduce yourself. We will not give formal interviews, but we will clearly favor people we have learned to know during the selection process (basically communication via IRC is mandatory for our project! it is the main way of "every day communication" for Wesnoth. For the same reason, it's also a good idea to regularly read the IRC logs.).
  • Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:
    • List your account names (gna, forum, irc nick) so that we can recognize you
    • Fill the questionnaire on this page: List of questions to answer
    • Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done
    • Add a link to the page at the bottom of this page
  • Though not mandatory, it is highly advisable to go to the EasyCoding and NotSoEasyCoding pages and implement one of these ideas (or any idea of similar scope) so we have an idea how you work. Be sure to use your gna account when submitting these patches so we know who it is coming from. You can also implement some features from our feature request database at gna. When you implement something, also list it on your own page with a reference to the patch.
  • Once you have everything done here and think your idea is okay, go to page at google to submit your application. You have to submit it before April 3rd at 19:00 UTC (12:00 PST) or you have no chance to get in!

New (2010) List of Ideas for the Project (Suggestions from the wesnoth developers)

<<< PLEASE WRITE IDEAS FOR GSOC 2010 HERE >>>

Extend Wesnoth Lua AI support

(proposed by developer: Crab)

Description: Lua AI support was recently added to wesnoth. Expose c++ AI support functions that wesnoth has, to Lua.

Definition of Done: all information that is possible to use in c++ AI, is possible to use in Lua AI with relatively same level of complexity for AI author.

Difficulty: Easy

Allow to store persistent gameworld information for SP and MP games

(proposed by developer: Crab)

Description: Allow WML authors to store/access persistent data 'in context' of a specific campaign/add-on/group of addons/ group of games. This will allow things like 'achievements' or 'massive multiplayer campaigns' to work.

Definition of Done: WML authors are able to store and load WML snippets in their core campaigns/addons/groups of addons/groups of games. It is possible to use this system for displaying per-addon 'Achievements'. 'massive multiplayer' games with persistent gameworld are possible to code using WML and possible to host using stock wesnoth multiplayer server.

Difficulty: Hard

Rewrite wesnoth network stack using boost::asio

Description: Rewrite wesnoth network stack using boost::asio

Definition of Done:Wesnoth network stack is rewritten using boost::asio.

Difficulty: ?

New Alliance system

Proposed by Boucman

Description: Wesnoth currently has a very simple alliance system, players are either allied, neutral, or ennemies. 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


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)

Old (2009) List of Ideas for the Project (Suggestions from the wesnoth developers)

Here is only a short description of possible Ideas we have, each has a page of its own with a more detailed version on it.

Addon server

Wesnoth has an addon server which offers users to upload user made content (UMC). This allows all other users of Wesnoth to easily download and install this content. The server was originally written for user-made campaigns but contains a lot more types of addons nowadays. Both the server side and the client side need to be improved.

SoC Ideas Addon Server - Full version of the idea, with detailed information

WML validation schemes

Wesnoth uses WML as basic data structure. Over the years this language has evolved and got more complex. At the moment the WML is validated at runtime and in case of a problem the engine stops. With schemes these problems can be validated when loading the WML, making it easier to find problems before running into them.

SoC Ideas Schemes - Full version of the idea, with detailed information

Other possible ideas to be fleshed out

A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.

Make your own ideas

If you have your own idea the best thing is to join IRC wesnoth-dev at irc.freenode.net and discuss the idea with the developers there. If the developers think your idea is interesting and like the feature you can start to turn it into a full proposal. Once done discuss it again on IRC so the developers can accept your idea.

Information about our Project

The information we provided google with about our project can be looked up at the site SoC Information for Google.

Also see the DeveloperResources link (from the Project page).

People to bug on IRC

We have prepared a list of people with their "area of competence". This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:

SoC People to bug on IRC