SoC Information for Google
This page is related to Summer of Code 2010 |
See the list of Summer of Code 2010 Ideas |
Contents
- 1 SoC Information for Google
- 1.1 Organization Name:
- 1.2 Description:
- 1.3 Home page:
- 1.4 Main Organization License:
- 1.5 Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?
- 1.6 Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.
- 1.7 If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6 students passed in 2006.
- 1.8 If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?
- 1.9 What is the URL for your ideas page?
- 1.10 What is the main development mailing list for your organization? This question will be shown to students who would like to get more information about applying to your organization for GSoC 2010. If your organization uses more than one list, please make sure to include a description of the list so students know which to use.
- 1.11 What is the main IRC channel for your organization?
- 1.12 Does your organization have an application template you would like to see students use? If so, please provide it now. Please note that it is a very good idea to ask students to provide you with their contact information as part of your template. Their contact details will not be shared with you automatically via the GSoC 2010 site.
- 1.13 What criteria did you use to select the individuals who will act as mentors for your organization? Please be as specific as possible:
- 1.14 What is your plan for dealing with disappearing students?
- 1.15 What is your plan for dealing with disappearing mentors?
- 1.16 What steps will you take to encourage students to interact with your project's community before, during and after the program?
- 1.17 What will you do to ensure that your accepted students stick with the project after GSoC concludes?
- 1.18 Is there anything else you would like to tell the Google Summer of Code program administration team? :
- 1.19 Backup Admin (Link ID):
- 1.20 Admin Agreement:
SoC Information for Google
This is the info that we do submit to google as Application in Summer of Code (current status: 2010). The one submitting does automatically becomes primary Admin. Most entries are mandatory and have to be filled out before the application can be submitted.
Organization Name:
Battle for Wesnoth
Description:
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[1] (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, the latest stable release (1.8) anticipated in the next few weeks. 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.
We consider 1.8 to be one of the most stable wesnoth release so far. We plan our next developement cycle (1.9, leading to 1.10) to be much more disruptive with gameplay changes and new concepts to try.
This year is probably one of the best year for a SoC student to join, since this openness means much more space to develop novel ideas
Wesnoth has grown substantially and is considered one of the largest open source games around.
- two servers (stable and development) with a usual minimum load of more than a hundred players
- more than two thousands downloads a day
- 3 million downloads via sourceforge.net, many more via various mirrors of Linux Distributions
- best rated game at the linux game tome[2]
- game of the year 2007, 2008 and 2009 at linuxquestions.org[3]
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 six 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)
[1] http://www.wesnoth.org/wiki/WesnothPhilosophy
[2] http://www.happypenguin.org/list?sort=avg_rating
Home page:
Main Organization License:
GNU General Public License version 2.0 (GPLv2) [Dropdown box answer!]
Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?
Most of our developers have particular areas of interest in which they work. Though they are efficient in their areas, there are other, presently uncovered, areas of the code with a need for improvements but a high barrier to entry for casual contributors.
Our previous SoC experience shows that a motivated, full-time, student can be brought up to date in any area fairly quickly.
By bringing new people in and allowing them to be actively responsible for an area of code, we hope to kickstart some areas of the project that are currently lagging behind.
Moreover, our previous experiences has shown us that SoC developers tend to stay after the end of the summer of code and are usually valuable members of our community. We would like to take the chance to add valuable members to our community.
Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.
2008 results: Wesnoth participated in GSoC 2008 with four students. Out of these, two were great success (that is they became full-fledge developers before the actual start of GSoC), did huge improvement during GSoC (A new recruitment algorithm for the AI and the basic structure for a new map editor, the student finished this work after the summer), and are still active developers in the Wesnoth community.
Of the two other, one of them was very active for the first half of GSoC and provided some useful infrastructure for AI development that we used as base in GSoC 2009, but was much less active and didn't reach expectations for the second half of GSoC. The lesson we learned is that great students should be left on their own, that's the best way to have them work, but average students should be monitored much more closely than we did. If things seems to start to go wrong, it's important to react very quick, to meet with other mentors and get things back on track early.
Timezone problems were also a serious barrier for student/mentor communication, and we will take that more seriously into account when pairing mentors and students
For our other students, multiple problems collectively led to failure
- We should enforce IRC communication, E-mail is a barrier. This applies both for students and mentors. Both should be on IRC several hours a day, with a huge overlapping of the hours.
- We should be more strict about mid-term evaluation. If the student is slightly lacking at mid-term we should get the message clear that he needs to get back on track.
2009 results:
In 2009 we mentored 6 students as part of Summer of Code. Out of these 5 projects were a success. From those 5 developers 3 are still part of our core development group and still maintain and improve the work they submitted as part of Summer of Code. One of the students even became the "head" of our AI development department and wants to mentor a student this year. For a summary of the 2009 results have a look at [1].
Sadly one student was not able to continue his work past midterm due to his computer failing completely as well as personal problems that I won't explain further in here. This is basically an issue that noone can do anything about so sadly we were not in a situation where we could somehow have made this student succeed.
[1] http://forums.wesnoth.org/viewtopic.php?f=5&t=26955
If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6 students passed in 2006.
2008: 2/4 2009: 5/6
Add a Comment (optional):
(empty)
If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?
We applied and participated in GSoC 2008 and 2009.
What is the URL for your ideas page?
http://wiki.wesnoth.org/SummerOfCodeIdeas
What is the main development mailing list for your organization? This question will be shown to students who would like to get more information about applying to your organization for GSoC 2010. If your organization uses more than one list, please make sure to include a description of the list so students know which to use.
The main development mailing list is "wesnoth-dev@gna.org". Our main means of communications is our IRC channel on freenode. If you have questions you should ask them in #wesnoth-dev on irc.freenode.net and wait for a reply (might take some hours!). The Wesnoth related channels are logged in public and the logs tend to be read by developers.
What is the main IRC channel for your organization?
- wesnoth-dev on irc.freenode.net
Add a Comment (optional):
If you have questions you should ask them in #wesnoth-dev on irc.freenode.net and wait for a reply (might take some hours!). The Wesnoth related channels are logged in public and the logs tend to be read by developers.
We plan mainly to meet potential students through our IRC channel, but the following questions are Wesnoth specific and are worth pondering for any student, even if we don't need a formal answer.
1) Basics
1.1) Write a small introduction to yourself.
1.2) State your preferred email address.
1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?
1.4) Why do you want to participate in summer of code?
1.5) What are you studying, subject, level and school?
1.6) What country are you from, at what time are you most likely to be able to join IRC?
1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
2) Experience
2.1) What programs/software have you worked on before?
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
2.3) Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
2.5) Gaming experience - Are you a gamer?
2.5.1) What type of gamer are you?
2.5.2) What type of games?
2.5.3) What type of opponents do you prefer?
2.5.4) Are you more interested in story or gameplay?
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
We do not plan to favor Wesnoth players as such, but some particular projects require a good feeling for the game which is hard to get without having played intensively.
2.6) If you have contributed any patches to Wesnoth, please list them below. You can also list patches that have been submitted but not committed yet and patches that have not been specifically written for GSoC. If you have gained commit access to our SVN (during the evaluation period or earlier) please state so.
3) Communication skills
3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.
3.2) What spoken languages are you fluent in?
3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.
3.4) Do you give constructive advice?
3.5) Do you receive advice well?
3.6) Are you good at sorting useful criticisms from useless ones?
3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want
4) Project
4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?
4.2) If you have invented your own project, please describe the project and the scope.
4.3) Why did you choose this project?
4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".
4.5) Include as much technical detail about your implementation as you can
4.6) What do you expect to gain from this project?
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
5) Practical considerations
5.1) Are you familiar with any of the following tools or languages?
- Subversion (used for all commits)
- C++ (language used for all the normal source code)
- STL, Boost, Sdl (C++ libraries used by Wesnoth)
- Python (optional, mainly used for tools)
- build environments (eg cmake/autotools/scons)
- WML (the wesnoth specific scenario language)
- Lua (used in combination with WML to create scenarios)
5.2) Which tools do you normally use for development? Why do you use them?
5.3) What programming languages are you fluent in?
5.5) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!
In general please try to be as verbose as possible in your answers and feel free to elaborate.
What criteria did you use to select the individuals who will act as mentors for your organization? Please be as specific as possible:
Our first criterion was that all the people had to be volunteers. According to other open source projects and our experience from the last two years, being a SoC mentor takes a lot of time and the person has to be ready to spend quite some time with the student.
Boucman is one of the oldest active developers around. He has rewritten the whole animation engine and made it an easily pluggable system allowing artists to easily specify exactly how they want the units to appear. He also started many community oriented projects like the Art Contribution[1] section of the wiki (now deprecated) and the WML Reference Manual[2]. He is responsible for dispatching and sorting the patches at http://patches.wesnoth.org that has created the new developer process we currently use. Boucman was a mentor in 2008 and 2009.
Yurii Chernyi (Crab) has joined the team in 2009, taking part in Google Summer of Code 2009, and staying with the project as a developer after successful completion of GSoC. He's an expert on all aspects of current Wesnoth AI codebase (having fully reorganized it as part of GSoC 2009), and has fixed numerous bugs all over Wesnoth. He is experienced in teaching other people, in areas like programming languages and math.
Mordante is one of the most active developers on our IRC channel. Not only has he done preliminary studies and coding in multiple areas that are candidates for Summer of Code ideas, he also is one of the coders with the best overview of the Wesnoth code. A large part of his work involves refactoring and polishing existing code. Next to that he's very active with fixing bugs which leads him to all areas in the code base. He is currently completing a rewrite of the Wesnoth GUI library, making all windows configurable through WML. This should make it easier to use Wesnoth on different resolutions, from small handheld devices to large 30 inch screens. Mordante was a mentor in 2008 and 2009.
All other developers listed in the ideas page are the leading capacities we do have for the respecting areas. Have a look at our list of "people who to contact" [3] for an easy reference. In general all our developers will mentor all students. That is, questions should just be asked in our IRC channel, where basically every developer who has an idea can and will directly answer.
When choosing the mentors, we have kept in mind that most developers can answer most technical questions, and we have chosen people that are well known for interacting with new-comers/external developers and can provide general guidance and design advice, more than people with specific technical knowledge.
[1] http://wiki.wesnoth.org/UnsortedContrib
[2] http://wiki.wesnoth.org/ReferenceWML
[3] http://wiki.wesnoth.org/SoC_People_to_bug_on_IRC
What is your plan for dealing with disappearing students?
The first thing to do is to avoid this situation altogether.
Wesnoth is a game, and as such has lots of developers that are not coders. In particular, artists are well known in the Wesnoth community for being very sensitive about criticism and our community is used to people being sensitive to critics.
We will try to choose students that accept criticism and are able to filter constructive criticism from useless one. The Wesnoth developer community is used to judging people according to these criteria and the special title we are going to give to applicants will allow us to easily spot any such problems and discuss them before they grow out of control.
If a student disappears, their mentor will be in charge of recontacting the student to see what is going wrong (available time, tension with other developers, with members of the community etc...). Depending on the actual problem, the mentor and the student will have to agree on possible ways to defuse the problem.
If a student disappears completely and there is no way to get back to them, there is little the project can do except salvaging whatever can be salvaged from the code (the students will have SVN write access, so most of the work will be committed either to trunk or to a specific branch) and find a core developer to take on the job. This will probably be slower and less effective for the project, but it's the best we can do.
What is your plan for dealing with disappearing mentors?
All our mentors are long time developers that volunteered for the job, so we don't expect that to happen. We observed in 2008 the amount of time required to mentor, and our mentors accepted the job knowing the amount of work it involved. Most of them were mentors last year too.
However, should it happen, we would continue to mentor as a developer community the student until we find a new "official" mentor to take on the job.
What steps will you take to encourage students to interact with your project's community before, during and after the program?
Wesnoth has a particularly healthy community, both for developers and for players.
Our general policy regarding new coders has always been "two (non trival) patches... you're in". With other words, anybody that is able to get two non-trivial patches applied is offered commit privileges. We have a developer responsible for applying patches and guiding new developers into our community. This is a well known and effective process we plan to apply to students, directing them to our EasyCoding pages [1] (these projects are usually a couple of hours long and hve been chosen to provide easy access to the respective area of code).
Usually, patches go back and forth a couple of times, to make sure that all secondary things are in place (indenting, coding style, modified buildfiles etc.) The idea is that coder education should take place before the coder gets commit rights, but that getting new coder in is one of the most important things to keep our project alive.
If the student is proactive and ready to join IRC, all the developers are usually very welcoming, and good at directing newcomers to quickly give useful results.
In 2008 and 2009 all students that were accepted (and a couple more) managed to have commit access before the start of the coding phase. We consider that this policy was successful and we plan to keep it this year.
We also plan to give a special forum title to any students. This will allow all forum members to tell them apart from normal users and give them read/write access to the developer only forums. This will also allow us to quickly spot any problem they might have interacting with the player community. We have a very mature developer community, but our player community is made of all sort of people of all age and education, and it can sometimes be rough.
[1] http://wiki.wesnoth.org/EasyCoding
What will you do to ensure that your accepted students stick with the project after GSoC concludes?
Since our community has a history of having developers join easily and quickly, we expect the student to be a full-fledged developer quite fast (probably a little after the end of the bonding period).
Thus there will be no "end of GSoC" transition. At the end of the Summer of code we expect the student to be responsible for the part he developed, and to continue taking care of it, just as other developers are responsible for their part. In general we show students that we appreciate their work by directly having most of the work happen directly in trunk. So their work is included in each development release right from the start. No need for any merging of external branches or the likes. Their work is handled like the work of any other developer we have.
In 2008 both students that succeeded stayed and are still active developers. Three of the students from 2009 are still active developers, one even applying to be mentor this year.
Is there anything else you would like to tell the Google Summer of Code program administration team? :
There is nothing more to say.
Add a Comment (optional):
(empty)
Backup Admin (Link ID):
noy
Admin Agreement:
(some terms of service by Google that have to be agreed upon)