GSoC/GCI Archive
Google Summer of Code 2009

Battle for Wesnoth

Web Page: http://www.wesnoth.org/wiki/SummerOfCodeIdeas

Mailing List: wesnoth-dev@gna.org

The Battle for Wesnoth, or simply Wesnoth, is a free turn based strategy game with role playing elements designed in June 2003 by David White (Sirp).The game's general philosophy (both for gameplay and coding) emphases simplicity. The core rules are meant to be easily learned but also provide interesting gameplay and diverse strategies. Strength of the project is reflected in application of  Wesnoth Markup Language (WML), which provides a simple language to easily customize scenarios. It has created a significant modding community that has generated a considerable amount of user content.The first stable release (1.0) was on October 2 2005, with the latest  stable release (1.6) announced on Sunday, March 22. According to Ohloh, a site that collects activity statistics on open-source projects, the Wesnoth development effort is in the top 2% of largest and most active projects.Wesnoth has grown substantially and is considered one of the largest open source games around.

  • two servers (stable and developement) with a usual minimum load of more than a hundred players
  • more than two thousands downloads a day
  • more than 3 million downloads via sourceforge.net, many more via various mirrors of Linux Distributions
  • best rated game at the linux game tome
  • game of the year 2007 and 2008 at linuxquestions.org
  • One of the top 20 rated projects on Freshmeat (currently 13th highest rating, and the highest rated game)

Wesnoth's most notable features include;

  • A mature project, but with active development and many improvements
  • High quality artwork: both graphics and music
  • Very well­-balanced by a tireless team of playtesters
  • Fun, unique gameplay
  • Even after five years of development, and a very solid, fun product has been created, there are still plenty of new developers, and the number of commits to SVN is still increasing
  • Strong support of internationalization with many supported languages and thus experience in working with non-native English speakers (more than half of our developers are not native English speakers)

For those that want to check out the work our students have one, you have two options. either you can check the sample code committed by our students that was directly handed over to google, or you can just fetch a complete checkout of our svn repository. You will find most work in trunk, though the work on the stats webpages is in "website/stats.wesnoth.org/".

Projects

  • [Crab] AI - refactoring, increasing capabilities I would like to reorganize the current AI subsystem to allow different people collaborate more efficiently on creating new AIs and improving AIs. Also, I would like to make the Wesnoth AI better. See http://www.wesnoth.org/wiki/SummerOfCodeProposal_AI_Improvement_Crab for all the info.
  • Further developing of the formula AI language Formula AI language is a great tool for scenario designers and campaign developers, that allows them to write special-purpose AIs that can control single units, groups of units that meet some specified criterias, or a whole side. I would like to further develop this language by adding some new features, and then use it to create good and customizable recruit algorithm/library that could be plugged into any AI.
  • Implement campaign statistics reports on stats.wesnoth.org Wesnoth currently has a basic website for viewing campaign completion information at http://stats.wesnoth.org, but it is very basic. I will create a site that allows users to view campaign info with filters (ex. view all wins on Heir to the Throne on OSX). The system must quickly parse 100k+ data entries and generate graphs from them. There must also be good control over presentation of data (date range, side by side comparison for certain filters).
  • Multiplayer improvements The wesnoth multiplayer server is in need of some improvements to allow larger communities to participate. Even more so, the "lobby" user interface is largely inefficient and difficult to extend. This project aims to rewrite the UI part in the client for a smoother experience, and update the server-side code to match. Main expected features are a new game list with filters, a configurable room-like system, and moderation aids.
  • Savegame Reorganization in "Battle for Wesnoth" The implementation of savegames in "Battle for Wesnoth" supports singleplayer, multiplayer and replays. However, the format for these types is not unified. Games are saved differently, lots of information is stored redundantly. The savegame code is spread accross multiple files and hard to maintain. Additionally, there are problems with multiplayer campaigns, which become increasingly popular in "Wesnoth". The goal of this project is to develop a new design of the savegame mechanism.