Difference between revisions of "Summer of Code/Application/2016"

From ScummVM :: Wiki
Jump to navigation Jump to search
 
(75 intermediate revisions by 3 users not shown)
Line 18: Line 18:
|Project License: || GPLv2+
|Project License: || GPLv2+
|-
|-
|Ideas page: || [[GSoC Ideas]]
|Ideas page: || [[Summer of Code/GSoC Ideas 2016|Ideas 2016]]
|-
|-
|IRC channel: || #scummvm on irc.freenode.net
|IRC channel: || #scummvm on irc.freenode.net
Line 24: Line 24:
|Development mailing list: || https://lists.sourceforge.net/lists/listinfo/scummvm-devel
|Development mailing list: || https://lists.sourceforge.net/lists/listinfo/scummvm-devel
|-
|-
|Mentors: ||
* [[User:Strangerke|Arnaud Boutonné]], Google Account: arnaud.boutonne AT gmail.com link_id: strangerke
* <span style="color:red">[[USer:djwillis|John Willis]], Google Account: djwillis AT scummvm.org, link_id: djwillis </span>
* <span style="color:red">[[User:klusark|Joel Teichroeb]], Google Account: joelteichroeb AT gmail.com link_id: joelteichroeb </span>
* <span style="color:red">[[User:Somaen | Einar Johan Trøan Sømåen]], Google Account: somaen AT scummvm.org link_id: somaen </span>
* [[User:Sev|Eugene Sandulenko]], Google Account: sev.mail AT gmail.com link_id: sev
* <span style="color:red">[[User:LordHoto|Johannes Schickel]], Google Account: lordhoto AT gmail.com link_id: lordhoto</span>
* <span style="color:red">[[User:Digitall|David Turner]], Google Account: digitall AT scummvm.org link_id: digitall</span>
* <span style="color:red">[[User:Md5|Filippos Karapetis]], Google Account: md5 AT scummvm.org link_id: md5</span>
* <span style="color:red">[[User:Dreammaster|Paul Gilbert]], Google Account: paulfgilbert AT gmail.com link_id: dreammaster</span>
|-
|Backup Mentors: ||
* <span style="color:red">[[User:Aquadran|Paweł Kołodziejski]], Google Account: aquadran AT scummvm.org link_id: aquadran</span>
* <span style="color:red">[[User:Fuzzie|Alyssa Milburn ]], Google Account: fuzzie AT scummvm.org link_id: fuzzie</span>
* <span style="color:red">[[User:wjp|Willem Jan Palenstijn]], Google Account: wjp AT scummvm.org link_id: wjpalenstijn</span>
|}
|}


= Please address all items in <span style="color:red">RED</span> ;-) =
= Please address all items in <span style="color:red">RED</span> ;-) =
= Application organized according to program FAQ =
= Part 1 - Application Form =
=== Very Short Description of the Organization (80 char) ===
=== Why does your org want to participate in Google Summer of Code? (1000 characters) ===
ScummVM is a GSoC umbrella for game preservation projects
Every year from 2007 to 2014, the program has given us the opportunity to have talented and motivated students working with us.


=== Organization Category ===
We are particularly enthusiastic to participate this year as we are broadening our scope to include RPG games for the very first time, which brings with it a whole new group of potentially interested developers, students and users, and the opportunity to relive a new genre of classic games.
End user applications


=== Technology Tags ===
What we hope to gain is valuable code contributions, and new developers for the project. In previous years, we've had students take up and complete tasks which were on our Ideas page, including for example full new engines ports. But also, some students have come up with new functionality, proposing and finally implementing it. These have been our favorites.
C++, SDL, OpenGL


=== Topic Tags ===
A number of students have stayed involved after the summer to become full team members and continue working on their projects, and we hope to make this happen this year as well.
Game, Engines, Software Preservation


=== Short Description of the Organization (180 char) ===
=== How many potential mentors do you have for this year's program? ===
TODO
==== Mentors ====
# aquadran
# criezy
# djwillis
# dreammaster
# joostp
# <span style="color:red">klusark (joelteichroeb)</span>
# lordhoto
# md5
# sev
# somaen
# strangerke
# uruk


=== Long Description of the Organization (2000 char) ===
==== Backup Mentors ====
Since 2014, ScummVM is a GSoC umbrella for game preservation projects, such as its sister project, ResidualVM.
# <span style="color:red">botje (dharnie)</span>
# fuzzie
# wjp


ScummVM is a collection of game engines for playing classic graphical point-and-click adventure games on modern hardware.
<11-15>


ResidualVM is a sister project of ScummVM and was created in 2003. ResidualVM shares large blocks of common code with ScummVM, some developers and even a mentor.
=== How will you keep mentors engaged with their students? (1000 characters) ===
First of all, we have an internal rule that GSoC students have 2 mentors and not only one, for the highest possible availability.


RogueVM is another sister project of ScummVM and was created this year. It shares the common code with ScummVM, as well as some developers and mentors.
Then, we want our mentors to have the following qualities:
* Be a volunteer and be able to commit to participating for the entire duration of the program. They have to be available to their students and the mentor team.
* Have a considerable track record hacking on ScummVM or ResidualVM. They can help the students more effectively and in an immediate fashion this way.
* Have the patience and skills to explain to their respective students how to tackle their tasks. Also, to be able to help the students out when they are in sticky situations.
* Have a clear vision on how a task should proceed, both in broad strokes as well as in the technical details level, with of course some freedom movement to the students.
* Be regularly present on our #scummvm-gsoc channel, where we continuously inform each others of the progresses and issues of the students.


- ScummVM supports classic 2D adventure games 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 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 (over 30). ScummVM has a highly productive team of about 45 currently active developers (out of an all-time pool of over 110), working together on a codebase of 2,400,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community.  
=== How will you help your students stay on schedule to complete their projects? ===
<span style="color:red">We ask our student to give regular feedback to their mentors, at least once every 2 days. We also ask them to blog at least once a week about their progress.</span>
<span style="color:red">We also strongly encourage the students to ask questions on our IRC channel. As an empirical fact, on IRC any student will be able to get support literally 24/7, as our developers are scattered all over the globe.</span>


- ResidualVM is a cross-platform 3D game interpreter which allows you to play some 3D adventure games, such as Cyan's Myst 3 and LucasArts' Lua-based 3D adventures: Grim Fandango and Escape from Monkey Island, provided you already have their data files. ResidualVM replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! To this end, the VM (called Engines) are complete reimplementations (in C++) of the engines used in the original games.
<span style="color:red">With those rules in place, it's very easy for the mentors to detect any difficulty a student may experience, and help them to fix it or work around it.</span>


- RogueVM is a multi-platform collection of game engines for playing 2D RPG games. The game engines are complete reimplementation of the games in C++.
<span style="color:red">In parallel, the mentors regularly check if the plans are achievable and realistic. If the student is ahead of schedule, some extra work may be discussed. At the opposite, if the student is behind schedule, discussions will occur very early among the mentors and then with the student to define what can be put in place so that the student completes the projects nevertheless.</span>


=== Application Instructions (1500 char) ===
=== How will you get your students involved in your community during GSoC? ===
TODO
<span style="color:red">Before and during GSoC, we'll consider students as special developers, but developers nonetheless.
They will therefore have equivalent rights, privileges and duties. For instance,
- We first ask our students to write introductory letters to our development list and their blog so everyone is familiar with their background, skills and assigned task.
- We created documentation in order to help the students to familiarize themselves with the project, particularly 'Developer Central' and our wiki.
- They are encouraged to take part in discussions, whatever the medium on which these discussions occur.
- They will be able to get support from and chat with the team 24/7 on our IRC channels. They are voiced (+v) so that everybody knows who they are.
- We noticed during previous summers that merging the student code early make them feel more involved, so we plan to do it again this year.</span>


=== What Open Source Initiative approved license(s) does your project use? ===
=== How will you keep students involved with your community after GSoC? ===
GNU General Public License version 2.0 or later (GPL-2.0+)
<span style="color:red">The latest two times we participated, we decided to require the GSoC student code to be merged into our Master tree much earlier in the process if possible. Our past experience told us it should be very motivating for students to directly interact with our main repository and that this could potentially make some of them stay after the end of GSoC: it seems we were right as several former students have kept contributing for more than a year afterwards. This is obviously a very positive sign for us and we plan to proceed in the same way this year again.</span>


=== 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 2016.** ===
=== Has your org been accepted as a mentoring org in Google Summer of Code before? ===
* [http://wiki.scummvm.org/index.php/GSoC%20Ideas http://wiki.scummvm.org/index.php/GSoC Ideas]
Yes
=== Which years did your org participate in GSoC? ===
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014


=== What is the main development mailing list for your organization? ===
=== What is your success/fail rate per year? ===
* scummvm-devel AT lists.sourceforge.net
*2014: Pass 5 / 0 Fail
*2013: Pass 4 / 0 Fail
*2012: Pass 3 / 1 Fail
*2011: Pass 1 / 1 Fail
*2010: Pass 4 / 0 Fail
*2009: Pass 4 / 1 Fail
*2008: Pass 5 / 1 Fail
*2007: Pass 5 / 2 Fail


=== What is the main IRC channel for your organization? ===
=== Are you part of a foundation/umbrella organization? ===
* <nowiki>#scummvm on irc.freenode.net</nowiki>
No


=== Who will be your backup organization administrator? ===
=== What year was your project started? ===
* <span style="color:red">wjpalenstijn</span>
2001


=== If you chose "veteran" in the checkbox, please summarize your involvement in Google Summer of Code and the successes and challenges of your participation. Please also list your pass/fail rate for each year. ===
= Part 2 - Organization Profile =
We have participated in the GSoC program for eight years, from 2007 to 2014.
=== Very Short Description of the Organization (80 char) ===
ScummVM is a GSoC umbrella for game preservation projects


Below are details of the successes and challenges we have encountered grouped by year.
=== Organization Category ===
End user applications


2015: We were not accepted as a mentoring organization.
=== Technology Tags ===
C++, SDL, OpenGL, Assembly


2014: 5 students mentored by 8 mentors and co-mentors.
=== Topic Tags ===
Game, Engines, Software Preservation


All the students passed. Two of them were working on ScummVM tasks, three of them on the ResidualVM tasks. Two students are still active, <span style="color:red">and consider participating again in GSoC this year as a student</span>. Merging the code early still showed benefits, so we'll keep this rule during our next GSoC.
=== Short Description of the Organization (180 char) ===
ScummVM is a GSoC umbrella for game preservation projects focused on reliving games by providing a replacement for their executables on modern platforms.


2013: 4 students mentored by 6 team members. Each mentor was also co-mentor of another task.
=== Long Description of the Organization (2000 char) ===
Since 2014, ScummVM acts as a GSoC umbrella for game preservation projects, such as its sister project, ResidualVM. The purpose is only to replace the game executable, not to enhance or replace the game assets.


All the students passed, and 2 students are still actively contributing the project and one student is still regularly on our IRC channel. One of the active students would also like to participate again in GSoC this year as a student. Merging code earlier gave excellent results and we'll do the same if possible this year in order to build on the great results of this year.
ScummVM is a collection of game engines for playing classic graphical point-and-click adventure games on modern hardware.


2012: 4 students mentored by 5 team members. Each mentor was also the co-mentor of another task.
ResidualVM is a sister project of ScummVM and was created in 2003. ResidualVM shares large blocks of common code with ScummVM, some developers and even a mentor.


3 students passed, and one failed at mid-term. One student is still actively contributing to the project and volunteered each year to be a mentor since GSoC 2013, which is really awesome. Based on discussion with other projects and our experience one of the key outcomes from this year was to look at merging student code earlier in the GSoC process and encouraging students to be much closer to mainline development. We modified our processes accordingly for the next year.
- ScummVM supports classic 2D adventure games 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 number of engines is constantly growing thanks to a very agile and diversified development team and ScummVM is currently 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 (over 30). ScummVM has a highly productive team of about 45 currently active developers (out of an all-time pool of over 110), working together on a codebase of 2,400,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community.  


2011: 2 students mentored by 4 team members. Each mentor was also the co-mentor of another task.
- ResidualVM is a cross-platform 3D game interpreter which allows you to play some 3D adventure games, such as Cyan's Myst 3 and LucasArts' Lua-based 3D adventures: Grim Fandango and Escape from Monkey Island, provided you already have their data files. Like ScummVM, ResidualVM replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed.


1 student succeeded in objectifying the CruisE engine, which really needed it. The other student unfortunately gave up fairly quickly after starting work (although the work done was eventually merged into our main repository, after being worked on further by a team member). After stepping back to review our processes, we feel we can still consider them to be mature. Part of the problems which caused the student to quickly give up came from internal tensions, that we have since addressed by redefining the project management structure.
- This year, we will also accept that students propose a task for RPG games, in the scope of our soon to be announced sister project RogueVM, also based on the ScummVM OSystem framework.


2010: 4 students mentored by 6 team members. Each mentor was also the co-mentor of another task.
=== Application Instructions (1500 char) ===
 
Your application has two important purposes: It should clearly identify the goals of your project, and it should convince us that you are the right person for this task.
All four passed the finals this time, and we merged in their code. One student still continues to contribute to the project. We addressed several long standing project needs and this was a very good year for the project.
 
2009: 5 students mentored by 6 team members. Some co-mentoring happened.
 
4 of our students passed, and one failed the finals. The year was a the success and all the students' code was merged within three months into the main development line. We considered this to be a good outcome.
 
2008: 6 students mentored by 7 mentors.
 
5 of our students were so successful that their code is included in the mainline of ScummVM, and we consider it a great achievement that 4 of the students continued to contribute to the project afterwards.
 
2007: 7 students mentored by 4 mentors.
 
5 of our students passed. Two of our students continued to become active, regular developers in the team after having their respective code contributions integrated in the codebase. Two of the students did not succeeded in their projects.
 
All in all, we maintain that we have been refining our method of student selection and balancing the workload and commitment required to achieve great outcomes in the past years and this refinement leads to generally better results each year.
 
The discussions, testimonials and proposed actions which the mentor summit has raised - and which we have participated in during our involvement with GSoC - have helped us a great deal. Our new wider management organization has also proven its efficiency during these last 4 years. Being an umbrella for ResidualVM made us work together more than ever before, and we hope to continue improving the experience for all parties in the future.
 
Summary pass/fail: 2014: 5/0 2013: 4/0 2012: 3/1 2011: 1/1 2010: 4/0 2009: 4/1 2008: 5/1 2007: 5/2
 
=== Why is your organization applying to participate in Google Summer of Code 2016? What do you hope to gain by participating? ===
<span style="color:red">
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 a new functionality, proposing and finally implementing it. These have been our favorites.
 
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.
</span>
<span style="color:red">
We've been successful in the past eight years, and we're really looking forward to great results from the program this year too.
</span>
 
=== How many potential mentors do you have for this year's program? What criteria did you use to select them? ===
==== Mentors ====
# <span style="color:red">aquadran</span>
# criezy
# <span style="color:red">djwillis</span>
# <span style="color:red">dreammaster</span>
# <span style="color:red">joostp</span>
# <span style="color:red">klusark (joelteichroeb)</span>
# <span style="color:red">lordhoto</span>
# <span style="color:red">md5</span>
# sev
# <span style="color:red">somaen</span>
# strangerke
 
==== Backup Mentors ====
<span style="color:red">
# botje (dharnie)
# fuzzie
# wjp
</span>
==== Description ====
<span style="color:red">
We have 14 potential (co) mentors or backup mentors this year.
</span>
 
We want our mentors to have the following qualities:
# 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.
# Have a considerable track record hacking on ScummVM or ResidualVM. They can help the students more effectively and in an immediate fashion this way.
# Have the patience and skills to explain to their respective students how to tackle their tasks. Also, to be able to help the students out when they are in sticky situations.
# 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.
# 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 and/or ResidualVM for several years. They feel comfortable around the current code and can guide students to perform their tasks. The majority of the mentors have also participated in past 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 while others have supervised students doing internships in the industry. 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 following 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 at least once every other day. 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 who 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 and ResidualVM 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 several 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 last disappearing student (in 2011). The current umbrella management structures 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 support this claim. In order to be even more efficient this year, <span style="color:red">five</span> of our mentors are project leaders, core team members or project administrators for ScummVM and/or ResidualVM 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 four 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) and org admins 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? ===
In particular, your application is your opportunity to show us that you understand what you'll be doing for the task, and to demonstrate that you've spent some time thinking about it, its difficulties, strategies for overcoming these, and have a good estimate of how much time they will take. Based on that, we will ask you a realistic planning for the 12 weeks of GSoC, including the deliverables expected at mid-term and at the end of the GSoC. In order to be complete, we also expect you to make a pull request, for example for a bug fix. The purpose is to ensure you know how to use Git, and that you had a look at our coding conventions.
The development team actively uses the project resources, including forums, IRC, Wiki and the development mailing list during project development.  


We consider our 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.
We don't expect you to produce a perfect application without any help at all. We strongly encourage you to discuss your plans and your application with us while you're preparing it, to ensure your ideas align well with our own thoughts on the tasks, and that your objectives are achievable. It is also the perfect chance to already get to know your potential mentors and the rest of the team. Don't hesitate to join the IRC channels and ask questions: keep in mind that there are no stupid questions!


;Support and feedback is not only a function provided by the mentors, but the entire development team and community, are encouraged to communicate constructively with the students. The students are marked with a special flag on our IRC channel (voice), so everyone knows who they are. We require the students to write introductory letters to our development list and their blog so everyone will have a sensible background about them, their skills and their assigned task (of course).
In order to help you structure your application, we summarized our requirements in a template:
http://wiki.scummvm.org/index.php/GSoC_Application


;In order to help the students familiarize themselves with the project, we also have created several key pieces of documentation for them. In particular, we have an exhaustive 'developer central' on our Wiki where we describe the all-important internals of ScummVM and finding your way around the project. This is highly valuable as a quick reference as well as during the initial explorations of the codebase.
=== Proposal Tags ===
new game engine, scummvm, residualvm, roguevm, refactoring


=== What will you do to encourage your accepted students to stick with the project after Google Summer of Code concludes? ===
=== Contact Methods ===
In our last two participations, we decided to require the GSoC student code be merged into our Master tree much earlier in the process, if possible. <span style="color:red">Our past experience was telling us it should be very motivating for students to directly interact with our main repository and that this 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 in the same way this year again.</span>
*IRC Channel: http://wiki.scummvm.org/index.php/Summer_of_Code/GSoC_Contact
*Mailing List: http://wiki.scummvm.org/index.php/Summer_of_Code/GSoC_Contact
*General Email: admin@scummvm.org


=== Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here ===
=== Links ===
=== Are you an established or larger organization who would like to vouch for a new organization applying this year? If so, please list their name(s) here ===
*Google+: https://plus.google.com/100512255374893262465
=== Is there anything else we should know or you'd like to tell us that doesn't fit anywhere else on the application? ===
*Twitter: https://twitter.com/scummvm
We are very grateful for all the benefits we reaped over the previous years thanks to your program and we would like to thank you again
*Blog URL: http://planet.scummvm.org/

Latest revision as of 23:44, 18 February 2016

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: 2015, 2014, 2013, 2012, 2011, 2009, 2008, 2007
Organization administrator: strangerke
Organization co-administrator: sev
Backup administrator: wjpalenstijn
Project License: GPLv2+
Ideas page: Ideas 2016
IRC channel: #scummvm on irc.freenode.net
Development mailing list: https://lists.sourceforge.net/lists/listinfo/scummvm-devel

Please address all items in RED ;-)

Part 1 - Application Form

Why does your org want to participate in Google Summer of Code? (1000 characters)

Every year from 2007 to 2014, the program has given us the opportunity to have talented and motivated students working with us.

We are particularly enthusiastic to participate this year as we are broadening our scope to include RPG games for the very first time, which brings with it a whole new group of potentially interested developers, students and users, and the opportunity to relive a new genre of classic games.

What we hope to gain is valuable code contributions, and new developers for the project. In previous years, we've had students take up and complete tasks which were on our Ideas page, including for example full new engines ports. But also, some students have come up with new functionality, proposing and finally implementing it. These have been our favorites.

A number of students have stayed involved after the summer to become full team members and continue working on their projects, and we hope to make this happen this year as well.

How many potential mentors do you have for this year's program?

Mentors

  1. aquadran
  2. criezy
  3. djwillis
  4. dreammaster
  5. joostp
  6. klusark (joelteichroeb)
  7. lordhoto
  8. md5
  9. sev
  10. somaen
  11. strangerke
  12. uruk

Backup Mentors

  1. botje (dharnie)
  2. fuzzie
  3. wjp

<11-15>

How will you keep mentors engaged with their students? (1000 characters)

First of all, we have an internal rule that GSoC students have 2 mentors and not only one, for the highest possible availability.

Then, we want our mentors to have the following qualities:

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

How will you help your students stay on schedule to complete their projects?

We ask our student to give regular feedback to their mentors, at least once every 2 days. We also ask them to blog at least once a week about their progress. We also strongly encourage the students to ask questions on our IRC channel. As an empirical fact, on IRC any student will be able to get support literally 24/7, as our developers are scattered all over the globe.

With those rules in place, it's very easy for the mentors to detect any difficulty a student may experience, and help them to fix it or work around it.

In parallel, the mentors regularly check if the plans are achievable and realistic. If the student is ahead of schedule, some extra work may be discussed. At the opposite, if the student is behind schedule, discussions will occur very early among the mentors and then with the student to define what can be put in place so that the student completes the projects nevertheless.

How will you get your students involved in your community during GSoC?

Before and during GSoC, we'll consider students as special developers, but developers nonetheless. They will therefore have equivalent rights, privileges and duties. For instance, - We first ask our students to write introductory letters to our development list and their blog so everyone is familiar with their background, skills and assigned task. - We created documentation in order to help the students to familiarize themselves with the project, particularly 'Developer Central' and our wiki. - They are encouraged to take part in discussions, whatever the medium on which these discussions occur. - They will be able to get support from and chat with the team 24/7 on our IRC channels. They are voiced (+v) so that everybody knows who they are. - We noticed during previous summers that merging the student code early make them feel more involved, so we plan to do it again this year.

How will you keep students involved with your community after GSoC?

The latest two times we participated, we decided to require the GSoC student code to be merged into our Master tree much earlier in the process if possible. Our past experience told us it should be very motivating for students to directly interact with our main repository and that this could potentially make some of them stay after the end of GSoC: it seems we were right as several former students have kept contributing for more than a year afterwards. This is obviously a very positive sign for us and we plan to proceed in the same way this year again.

Has your org been accepted as a mentoring org in Google Summer of Code before?

Yes

Which years did your org participate in GSoC?

2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014

What is your success/fail rate per year?

  • 2014: Pass 5 / 0 Fail
  • 2013: Pass 4 / 0 Fail
  • 2012: Pass 3 / 1 Fail
  • 2011: Pass 1 / 1 Fail
  • 2010: Pass 4 / 0 Fail
  • 2009: Pass 4 / 1 Fail
  • 2008: Pass 5 / 1 Fail
  • 2007: Pass 5 / 2 Fail

Are you part of a foundation/umbrella organization?

No

What year was your project started?

2001

Part 2 - Organization Profile

Very Short Description of the Organization (80 char)

ScummVM is a GSoC umbrella for game preservation projects

Organization Category

End user applications

Technology Tags

C++, SDL, OpenGL, Assembly

Topic Tags

Game, Engines, Software Preservation

Short Description of the Organization (180 char)

ScummVM is a GSoC umbrella for game preservation projects focused on reliving games by providing a replacement for their executables on modern platforms.

Long Description of the Organization (2000 char)

Since 2014, ScummVM acts as a GSoC umbrella for game preservation projects, such as its sister project, ResidualVM. The purpose is only to replace the game executable, not to enhance or replace the game assets.

ScummVM is a collection of game engines for playing classic graphical point-and-click adventure games on modern hardware.

ResidualVM is a sister project of ScummVM and was created in 2003. ResidualVM shares large blocks of common code with ScummVM, some developers and even a mentor.

- ScummVM supports classic 2D adventure games 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 number of engines is constantly growing thanks to a very agile and diversified development team and ScummVM is currently 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 (over 30). ScummVM has a highly productive team of about 45 currently active developers (out of an all-time pool of over 110), working together on a codebase of 2,400,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community.

- ResidualVM is a cross-platform 3D game interpreter which allows you to play some 3D adventure games, such as Cyan's Myst 3 and LucasArts' Lua-based 3D adventures: Grim Fandango and Escape from Monkey Island, provided you already have their data files. Like ScummVM, ResidualVM replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed.

- This year, we will also accept that students propose a task for RPG games, in the scope of our soon to be announced sister project RogueVM, also based on the ScummVM OSystem framework.

Application Instructions (1500 char)

Your application has two important purposes: It should clearly identify the goals of your project, and it should convince us that you are the right person for this task.

In particular, your application is your opportunity to show us that you understand what you'll be doing for the task, and to demonstrate that you've spent some time thinking about it, its difficulties, strategies for overcoming these, and have a good estimate of how much time they will take. Based on that, we will ask you a realistic planning for the 12 weeks of GSoC, including the deliverables expected at mid-term and at the end of the GSoC. In order to be complete, we also expect you to make a pull request, for example for a bug fix. The purpose is to ensure you know how to use Git, and that you had a look at our coding conventions.

We don't expect you to produce a perfect application without any help at all. We strongly encourage you to discuss your plans and your application with us while you're preparing it, to ensure your ideas align well with our own thoughts on the tasks, and that your objectives are achievable. It is also the perfect chance to already get to know your potential mentors and the rest of the team. Don't hesitate to join the IRC channels and ask questions: keep in mind that there are no stupid questions!

In order to help you structure your application, we summarized our requirements in a template: http://wiki.scummvm.org/index.php/GSoC_Application

Proposal Tags

new game engine, scummvm, residualvm, roguevm, refactoring

Contact Methods

Links