Google Summer of Code 2009 wrapup

Get help with compiling or installing the game, and discuss announcements of new official releases.

Moderators: Forum Moderators, Developers

Post Reply
User avatar
Lord of Translations
Posts: 1147
Joined: September 28th, 2004, 10:10 pm
Location: Germany

Google Summer of Code 2009 wrapup

Post by ivanovic »

As you might have read on the frontpage we were lucky again to be accepted in this years Google Summer of Code. This time we had six projects of which five were successfully completed. The projects tackled various areas of the game. Starting with working on the AI system, over savegame reorganization till a rewrite of the savegame format. Below you will see a short project summary by the students giving you an idea what they have been working on and managed to accomplished. Each block starts with the projects name and a link to the projects idea page. All work done over Summer of Code is already actively used in the latest development releases.

But now lets start with the projects, sorted alphabetically by the forumaccount.

corn - New Campaign Statistics Page
cornmander wrote:My project was to improve, a website that collects statistics about singleplayer campaign playtime. I rewrote the site backend to allow easy generation of new graph views without the low performance of the old implementation. I also simplified the methods in the Wesnoth client to add new data to the upload logs, which will allow new data to easily be logged in the future. AI vs AI multiplayer scenarios are also now sent in upload logs so that AI creators can view visualizations of AI performance.

There is also a new Wesnoth-specific visualization, the “killmap.” The killmap is a Wesnoth map with a hexgrid overlay implemented using the Google Maps API. Per-hex statistics (kills per tile, village contention, movement hotspots) can be easily displayed using the killmap. Currently, the only visualization available is kills per tile, hence the name “killmap.” However, the aforementioned visualizations will be added in the near future.

Scenario designers can use to look at information about scenario results (win, loss, quit percentages), campaign popularity, and Wesnoth version popularity. Suggestions for new visualizations are welcome, please contact me (corn) via IRC on, channel: #wesnoth-dev .
Crab - AI-refactoring, increasing capabilities
Crab wrote:The project was to reorganize Wesnoth AI and to develop a toolset that will allow different people (C++ coders, scenario editors) collaborate more efficiently on improving AI. During the GSoC, AI codebase was reorganized and was made modular, new AI configuration syntax was developed. Numerous AI-related bugs were fixed (and, of course, some new bugs were added, but those will be fixed, too).

Already, tools that were developed during the project are being used to make Legend Of Wesmere Campaign AI more interesting and more fun to play with. After additional polishing and documentation, a guide about new AI-related features and tools for UMC creators will be posted in the wiki.
Dragonking - Improving the formula AI
Dragonking wrote:My project was focused around the Formula AI language. Besides usual bugfixing, I extended the Candidate Actions mechanism, added support for fixed-point math operations and made some other improvements focused on simplifying usage of the Formula AI language. Another entertaining part of GSoC was using Formula AI to write new recruitment algorithm for the AI. There is a plan to create in the near future alternative AI besides 'default AI' that would make use of this new recruitment algorithm.
euschn - Savegame reorganization
euschn wrote:savegame improvements:
I have eliminated several redundancies in savegame files, especially the parts which contained persistence (aka carryover) information of sides in campaigns. This decreases the savegame file size considerably.
The savegame C++ code was overhauled, improving the interface between the C++ code and WML based data. Several redundant classes and structures were removed to provide a more clean design and better maintainability.

(multiplayer) campaign improvements:
I have added an optional flag 'persistent' to SideWML. This allows for better control of which sides have their information stored for future scenarios in a campaign. Ai controlled sides can now have carryover information, whereas human sides can be specified to not be saved. Additionally, persistent sides can now "pause" (i.e., not appear) an arbitrary number of scenarios before returning in a future scenario (without using additional WML variables to manually store these sides).
In combination with the previous point, I have made some changes to the persistence mechanism to improve the handling of multiple persistent sides in mp campaigns. Creating and playing multiplayer campaigns should now be less tedious.
Ilor - Multiplayer improvements
ilor wrote:The "Multiplayer Improvements" Wesnoth project for Google Summer of Code has been completed. The main objectives of the project were:
  • to create a new lobby interface using the new widget toolkit being developed by Mordante. This new interface is functional, but still marked as experimental due to some unresolved issues. Improvements in the new lobby include:
    • More compact game list
    • More chat space with new whisper/room interface
    • More general flexibility -- many aspects can be changed in WML without having to rebuild
  • to add a room system to the Wesnoth server, similar to IRC channels. It is working, however only the experimental lobby has a convenient interface for it. See MultiplayerRooms.
  • to offload some random number generation to the server to prevent cheating. Combats now rely on a random number provided by the server which is generated after the decision to attack has been made.
  • to simplify server moderation by allowing server mods to issue commands without having the game launched. While less interesting for players, this too has been done (with a big "thanks" to Soliton) and is working fine.
The results of the project can be seen in Wesnoth 1.7.3, to see the new lobby the --new-widgets command line switch must be used. Once the new lobby is declared stable, it will replace the old one and the switch will not be needed.
As you read in my opening line there was a sixth project (cjhopman - Optimize implementation of WML for memory usage) but this one was not finished due to some technical problems with the students computer stopping him from being able to work on things. But the good news is that he already said that he will try to have a look at things anyway, so maybe this project will be completed even though it then is outside summer of code.

In general Summer of Code went great for us. We managed to "recruit" some new developers who have already contributed lots of (very useful) work and who still work on things even though Summer of Code itself is by now done and over. Thanks to all students as well as mentors for their work over Summer of Code and I really hope that things continue this way.
User avatar
Posts: 528
Joined: June 11th, 2006, 8:13 pm
Location: canada

Re: Google Summer of Code 2009 wrapup

Post by tr0ll »

When combined with the new art projects also completed, this has been an awesome summer for Wesnoth! Thanks for all the mentors work setting up and supervising the projects.
...a sixth project (cjhopman - Optimize implementation of WML for memory usage) but this one was not finished due to some technical problems with the students computer stopping him from being able to work on things....
did his computer run out of memory? :P
Post Reply