Open main menu

Introduction & overview

This is the application of the ScummVM project for the Google Summer of Code. Let's start with a quick overview of the facts before turning to the more elaborate parts of this document.

Project: ScummVM
Participation in prior SoCs: Yes
Applications for prior SoCs: 2013, 2012, 2011, 2009, 2008, 2007
Organization administrator: strangerke
Organization co-administrator:
Backup administrator: wjpalenstijn
Project License: GPLv2
Ideas page: GSoC Ideas
IRC channel: #scummvm on irc.freenode.net
Development mailing list: https://lists.sourceforge.net/lists/listinfo/scummvm-devel
Mentors:
Backup Mentors:

Please address all items in RED ;-)

Application organized according to program FAQ

Description of the Organization

ScummVM is a collection of Virtual Machines for playing classic graphical point-and-click adventure games on modern hardware. Supported games include favorites such as Monkey Island, Simon the Sorcerer, Space Quest, and many more. To this end, the Virtual Machines (called Engines) are complete reimplementations in C++ of the engines used in the original games. The development team works either by reverse engineering game executables (usually with the permission of creators of the game), or by using the original source code of the games provided by the creators. The number of engines is constantly growing thanks to a very agile and diversified development team and ScummVM is able to run more than 200 games. The VM approach followed by ScummVM results in efficient code, which has been ported to numerous Operating Systems. Besides running on all mainstream desktop environments, namely Windows, Mac OS X and most Unix variants (Linux, *BSD, Solaris), ScummVM also runs on popular game consoles (Wii, Nintendo DS, PlayStation 2, PlayStation Portable, Dingoo and more), smart phones and PDAs (Android, WinCE, iPhone or Symbian based), and even on many not-so-mainstream systems (like BeOS, AmigaOS or OS/2). ScummVM has a highly productive team of about 51 currently active developers (out of an all-time pool of over 110), working together on a codebase of 2,100,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community. ScummVM is among the top ranking projects hosted on sourceforge.net with over 100,000 monthly downloads and ~10 million project web hits per month.

What Open Source Initiative approved license(s) does your project use?

GNU General Public License version 2.0 (GPL-2.0)

What is the URL for your Ideas list? **This is the most important part of your proposal. Please make sure we can access it and it is complete when you submit this proposal. “Placeholder” or inaccessible ideas pages will be grounds for an automatic rejection for participation in Google Summer of Code 2014.**

What is the main development mailing list for your organization?

  • scummvm-devel AT lists.sourceforge.net

What is the main IRC channel for your organization?

  • #scummvm on irc.freenode.net

Who will be your backup organization administrator?

  • wjpalenstijn

Why is your organization applying to participate in Google Summer of Code 2014? What do you hope to gain by participating?

Each year since 2007, the program gave us the opportunity to have talented and motivated students working with us. We also love the GSoC mentor summit where we have the opportunity to share our knowledge with mentors from other projects and to learn a lot from them. That's why we wait impatiently, each year, for the announcement of a new GSoC program!

As usual, what we hope to gain is valuable code contributions. In previous years, we've had students take up and complete tasks which had been marked as "to-do", but the main developers had no time to implement them. The students took these up as self-contained GSoC projects and realized them. But also, some students have come up with new functionality, proposing and finally implementing it. These have been our favorite.

In addition, we hope to gain new developers for the project. We hope that after their projects, students will stick around and improve them or work on other interesting tasks. We hope that GSoC brings the students in touch with open source and, in our case, brings them in touch with game development. We hope these students will add their piece of code to this project, but will also keep on contributing afterwards.

We've been successful in the past seven years, and we're really looking forward to great results from the program this year too.

How many potential mentors do you have for this year's program? What criteria did you use to select them?

Mentors

  1. djwillis
  2. lordhoto (TBC)
  3. sev (TBC)
  4. somaen
  5. strangerke

Backup Mentors

  1. wjp
  2. fuzzie
  3. aquadran

We want our mentors to have the following qualities:

  1. Be able to commit to participating for the entire duration of the program. They first and foremost have to be available to their students and the mentor team.
  2. Have a considerable track record hacking on ScummVM. They can help the students more effectively and in an immediate fashion this way.
  3. Have the patience and skills to explain to their respective students on how to tackle their tasks. Also, to be able to help the students out in sticky situations.
  4. Have a clear vision on how a task should proceed, both in broad strokes as well as in the technical details level. Allowing, of course, some freedom of movement to the students, where this is applicable.
  5. Be regularly present on our #scummvm-gsoc channel, where we continuously inform each others of the progresses and issues of the students

For this year, and this holds for our previous participations too, our mentors have volunteered to work with GSoC. This means that they primarily want to be involved in the program and that they are not dragged in to participate. Moreover, they have all been contributors to ScummVM for several years. They feel comfortable around the ScummVM code and can guide students to perform their tasks. The majority of the mentors have also participated in past ScummVM GSoCs so they know their way around the procedures and have also refined their mentoring style. Some of them have been GSoC students one of the previous years. Some of them are/have been part of academia, guiding real students. They have seen the student mentalité in-action and have experience helping people along. We are drawing the best available from our pool of developers to mentor GSoC students this year again.

What is your plan for dealing with disappearing students?

We know that the students can do that. We learned this the hard way the first time 'round the GSoC ride :-) The measures we set in place during the previous years almost eradicated this problem.

As in the last few years, we will again be sure to enforce certain rules at the program start; we will clearly explain that this work should be considered as full-time, and if that is in any doubt, we will not let the student enter the program.

We have also introduced the policy that students have to provide status to their mentors on a bi-daily basis at most. If a student disappears for more than 3 days without notifying his/her mentor, the student will fail the project. The students will be made immediately aware of this during their applications. We have positively identified that frequent and meaningful communication goes a long way in keeping the students engaged and interested.

Of course, comprehensive timelines will be required as usual, and we will accept only those of the students which will set realistic goals, thus minimizing the risk of getting intimidated. This factor too frequently leads to the student disappearing.

During the program, we will make sure that the students will feel comfortable with their tasks. Our mentors already have experience with that. Moreover, in difficult situations in the past there was not just a single person feeling responsible for a particular student, but rather the whole project was trying to help when needed. These reflexes on behalf of the mentor group but also on behalf of the active team members of ScummVM have proven to be a pretty good "tool" and we are going to do our best this year too.

Based on our more negative experience two years ago, we will also make sure that internal project tensions stay internal and under control, since they were an identified cause of demotivation of our disappearing student in 2011. The current project management structure should make sure that it will not as easily happen in the future.

What is your plan for dealing with disappearing mentors?

For the mentors, the risk is relatively low; our past experiences absolutely verify this claim. In order to be even more efficient this year, three of our mentors are project leaders, core team members or project administrators and are reachable virtually 24/7 (in case of emergencies).

We all have exchanged sufficient contact information (including cell phone numbers etc.) to be able to discover our whereabouts. Should something really bad happen which precludes a mentor from fulfilling his duties (including personal reasons), we will attempt to shift students to new mentors among the existing mentors, or drawn from our backup pool of mentors. This will depend on the number of students we have to mentor.
We also defined for the last three years a co-mentoring system so the students have a primary and a secondary mentor, which comfort us in the idea that, in any case, the students will not be left hanging for any reason at all, no matter what happens.
On top of that, we have a specific #scummvm-gsoc channel on IRC where mentors (and only them) are connected all the time. We use this channel to keep ourselves informed constantly of the situation of each task, each student and eventually each mentor. A mentor wouldn't disappear without being noticed very quickly by this mean too.

What steps will you take to encourage students to interact with your project's community before and during the program?

The development team actively uses the forums, IRC, Wiki and the development mailing list during the entire project development. We consider out students to be special, but developers nonetheless. Each developer including our students is encouraged to take part in discussions, whatever the means these discussions occur. As a pragmatic fact, on IRC any student will be able to get support literally 24/7, as our developers are scattered all over the globe.

Not only the mentors, but also the entire development team, are encouraged to communicate with the students. The students are marked with a special flag on our IRC channel, so everyone knows who they are. And we require the students to write introductory letters to our development list, so everyone will have an impression about them, their skills and their assigned task (of course).
In order to help the students familiarize themselves with the project, we also have created several pieces of documentation for them. In particular, we have an exhaustive developer central where we describe the all-important internals of ScummVM. This is valuable as a quick reference as well as during the initial explorations of the codebase.

What will you do to encourage that your accepted students stick with the project after Google Summer of Code concludes?

Last year we decided to require the GSoC student code be merged into our Master tree much earlier in the process, if possible. Our past experience was telling it should be very motivating for students to directly interact with our main repository and could potentially make some of them stay after the end of GSoC: it seems we were right as 2 students out of 4 are still actively contributing, while a 3rd one is still present from times to times. This is obviously for us a very positive sign and we plan to proceed the same way this year again.

If you chose "veteran" in the organization profile dropdown, please summarize your involvement and the successes and challenges of your participation. Please also list your pass/fail rate for each year.

TO BE DONE

Is there anything else we should know or you'd like to tell us that doesn't fit anywhere else on the application?

TO BE DONE