Difference between revisions of "SummerOfCodeIdeas"

From The Battle for Wesnoth Wiki
m (Write a primitive library for Formual AI)
m (I want to be one of your Google Summer of Code students, what should I do...)
Line 18: Line 18:
 
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].
 
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].
  
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants to page at google] to submit your application. You have to submit it before '''Date to be supplied later''' or you have no chance to get in!
+
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants page at google] to submit your application. You have to submit it before '''Date to be supplied later''' or you have no chance to get in!
  
 
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==
 
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==

Revision as of 21:51, 13 March 2009

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
  • 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 learnt to know during the selection process
  • Contact one of our SummerOfCode people (Ivanovic, Sirp, Boucman, Mordante) to have your forum nick marked as a Summer of code student
  • 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
  • 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 Date to be supplied later or you have no chance to get in!

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.

Optimize implementation of WML for memory usage

Based on this idea: [1] optimize WML to minimize its memory usage. High memory usage has been a problem for Wesnoth, and this project will aim to reduce it.

Implement campaign statistics reports on stats.wesnoth.org

Wesnoth has an infrastructure which records details of campaigns that players play into a centralized MySQL database. However, we only have rudimentary reports based on this MySQL database available at this time, at [2].

This project would involve writing a stats reporting web site which would take the data from the MySQL database and produce reports in chart and table form. Campaign designers would be able to use these reports to gather feedback on their campaigns and get ideas for improvements.

A student could largely make their choice of infrastructure for creating the Website -- whether they prefer Python, Perl, Ruby, PHP, etc. This is a great opportunity for someone who doesn't want to dive into hardcore C++ to make a valuable contribution to Wesnoth.

Extending the Multiplayer server

Our multiplayer community is generally strong and healthy, but we believe its growth is limited by some problems in the interface of the multiplayer lobby.

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

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

Write a primitive library for Formula AI

Wesnoth has always had a simple C++ based AI. David (our lead developer) has been working on a simple language to write AI in Wesnoth: FormulaAI

The Wesnoth AI is used as an opponent in most campaigns, and as such is an important piece of code for the Wesnoth project. Unfortunately, because the skills required to understand and modify it are rather arcane, it is also one of the most neglected parts of the Wesnoth code. This is a place where a lot of research and useful work could be done. But keep in mind that writing an AI for Wesnoth is difficult.

Writing a whole AI is so complicated that we believe it can't be done in a single Summer of code. All proposals should keep that in mind and try to identify an interesting subset that would be workable in the limited time of a summer of code


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

Savegame reorganization

The savegame formats of Wesnoth for single player campaigns and multiplayer differ from each other. And they are processed differently as well. Now there is an additional request coming up: Multiplayer campaigns. The task will be to unify the savegames for all types of scenarios in order to provide a maintainable code again.

SoC Ideas Savegame - 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

GSoC Student Applicant Ideas

Every student interested to work on Wesnoth as part of Summer of Code should create a page of his own where several things should be listed. Here is a short list of what should be mentioned on the list (the more info for us, the better...):

  • Who are you? Please list your IRC and forum nickname in here and describe yourself so that we get you to know.
  • What do you want to work on? Please flesh out your personal ideas, so that we get to know what you plan to work on.
  • If you already submitted patches, please list those so that we have a reference.