From The Battle for Wesnoth Wiki
Revision as of 22:57, 28 October 2010 by Eleazar (talk | contribs) (Graphics: created terrain section)

Google Code In task list

This page is a list of task ideas for the google code-in (see http://code.google.com/gci)

exemple of tasks from previous year http://code.google.com/p/google-highly-open-participation-gnome/issues/list

Task Template

One paragraph description of task

requirement (expected technical knowledge)

expected time for completion


deliverable/expected proof


Various Graphics for Wesnoth

requirement (expected technical knowledge) - speak with thespaceinvader?

expected time for completion

difficulty - easy to hard

deliverable/expected proof

Terrain Graphics

Wesnoth has a wide variety of terrain tiles, but we would like to add more, and improve some of the existing ones. Tasks include animating existing terrains, creating additional variations for an existing terrain, modifying an existing terrain to create a new type, and making a new terrain from scratch. See [this post] for a list of "Needed New Terrains".

Requirements: Proficiency with a "painting" application such as Photoshop or GIMP. General Artistic skill.

Depending on the complexity of the terrain, and the number images it might take a few hours up to 20 hours.

For a student with the necessary skills, the difficulty range from moderate to hard.

The final deliverable should include: 1) screenshots of the new/improved terrain in the Wesnoth Map Editor mixed with other terrains 2) the .PNGs images of the terrain. 3) if relevant, the layered work file(s)

Translations / Internationalization


You work on translating some specific content from English into the lang of your choice (we will have to provide a list of possible translations that are offered, since an active maintainer for the language is mandatory). The specific work could eg be translating a smaller campaign, the unit descriptions for a race, translating a number of scenarios of one of the larger campaigns, proofreading and polishing some already translated content and things along those lines.

Requirement (expected technical knowledge)

For this task there is not much technical knowledge required. You just need to be able to open a text file in either a text editor or a special program for internationalizations. You need to have some basic knowledge of English (since this is the origin language) and need to be able to produce "correct" text of the language you want to translate things into.

When proofreading you should be able to handle a tool like "diff" so that you can provide some diff/patch for the already existing translations.

expected time for completion

The time for completion depends on the content and what you are doing. It can be anything between 4h and maybe 10h. It is not expected that a huge campaign is translated as one "working block" and things have to be split to be of "just the right size".


Hard to say. In general it is a rather easy task, though it is really difficult to do it "perfectly". Basically you have to be able to tell a good story. If you are good at doing this, it is easy. If you have extreme problems with the language you want to translate into and are not much into writing stuff this is a really hard task.

deliverable/expected proof

For a new translation there would be the new translation file. When proofreading there would be the diff correcting issues and recommending possible changes.

AI recruitment algorithm


Wesnoth AI has to select what units to recruit. AI leader stands on keep and can recruit a number of units, up to the number of free hexes in his castle. AI can choose between a number of different unit types. Each unit type costs a certain amount of gold to recruit and the AI knows how good a specific unit is, and should try to recruit better unit types. AI knows how many units of a particular type it has at the moment and the scenario creators want to limit the amount of units of a certain type that the AI can have at the same time. There should be a tunable parameter that will tell the AI to go either for a mass of low-cost low-quality units or few high-cost high-quality units.


  1. (integer) gold
  2. (integer) maximum number of units to be recruited
  3. (double) quantity vs quality - 0 means 'go for mass of low-quality units', 1 means 'go for few high-quality units), and other values are in between
  4. table of potential recruits
    1. (string) recruit name
    2. (integer) cost to recruit
    3. (double) how good each unit is
    4. (integer) current quantity
    5. (integer) maximum quantity


a list of units to be recruited.

Example input

  1. AI has 120 gold
  2. Up to 5 units are to be recruited
  3. go for quality (1.0)
  4. table of potential recruits
Recruit name Cost to recruit How good this unit is Current Qty Maximum Qty
Spearman 13gp 12.6 1 10
Royal Guard 30gp 40.0 0 2

Example output

Royal Guard, Royal Guard, Spearman, Spearman, Spearman

(we go for quality but we can recruit up to 2 royal guards, so the rest of 5 units are spearmans)


Should not be too difficult. But, you need to know either C++ or lua, and you need to think out and code a good algorithm for picking out the units to be recruited.

Deliverable/expected proof

We will provide a incomplete program that provides the correct input and you must complete it, coding a suitable recruitment algorithm.

Testing of mainline campaigns

Wesnoth ships with 16 campaigns which total over 200 scenarios, each one with varying amounts of events, dialogue, cutscenes, special gameplay mechanics, and so on. It's inevitable that many scenarios contain bugs which have gone unnoticed or unreported. Also, most scenarios were originally written a long time ago when the game engine was much less versatile, meaning that some scenario mechanics don't function as naturally and conveniently as they could.

This task involves picking a mainline campaign, playing through it and reporting in as much detail as possible all bugs and glitches encountered as well as suggestions for improvement. Campaigns vary greatly in length, so you could pick either one long campaign or 2-3 of the shorter ones. Campaigns with scenario branching should get all their branches tested.

Campaigns to choose from (list is subject to change) in a roughly prioritized order:

  • Dead Water
  • Heir to the Throne
  • Rise of Wesnoth
  • Eastern Invasion
  • Under the Burning Suns
  • The South Guard
  • Liberty
  • Son of the Black-Eye
  • Northern Rebirth


Reasonably familiar with Wesnoth campaigns, so as to be able to identify bugs and suggest realistically doable gameplay-enhancing changes in detail. No coding in WML or otherwise required.


Depending on the student's skill medium to low. Students able to learn WML and fix bugs would increase the difficulty.

Deliverable/expected proof

Depending on the campaign there maybe specific tasks or targets, however all will require about 50 hours of work at a minimum (possibly up to 80 hours.) Students must contact the project for details.