Summer of Code/Application/2021

From ScummVM :: Wiki
< Summer of Code‎ | Application
Revision as of 10:57, 10 February 2021 by Strangerke (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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: 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007
Organization administrator: strangerke
Organization co-administrator: sev
Backup administrator: criezy
Project License: GPLv2+
Ideas page: Ideas 2021
IRC channel: #scummvm on
Discord Server: Development mailing list:

Please address all items in RED ;-)

Part 1 - Application Form

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

Almost every year since 2007, the program has given us the opportunity to have talented and motivated students working with us. It also gave us the opportunity in 2016 to broaden our scope to RPG 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 functionalities or game engines, proposing and finally implementing them. 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.

What would your org consider as a successful summer? (500 Characters)

We consider that having the opportunity of coaching motivated students is already a successful summer. Obviously, it's even better if they stay with us at the end of the summer.

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

6 (Category 6-10 for Google) Hopefully more people will be added, to be updated


  1. aquadran
  2. criezy ??
  3. dreammaster ??
  4. sev
  5. somaen ??
  6. strangerke If it's possible without a working communication tool? (as IRC and email seems to be abandoned)

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 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. 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? (1000 characters)

We require students to give a detailed schedule for their project as part of their GSoC application. This helps the students in splitting the work into small manageable tasks and organizing their work. This also helps to make sure that the project is achievable and realistic, and help us determine when the student is expected to be working according to the new timeline.

As the GSoC is no longer considered as a full time job, We'll determine with the students the days we expect a feedback in the detailed scheduled, so that the students don't disappear silently. We also ask the students to blog at least once a week about their progress, except if the student planned to take a week off.

In parallel, mentors check the progress to make sure the schedule remains realistic. 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? (1000 characters)

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. Google SoD helped us to improve it significantly during the past year.
  • 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? (1000 characters)

Since GSoC 2014, we have 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 is 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?


Which years did your org participate in GSoC?

2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020

How many students did your org accept for 2020


How many of your org's 2020 students have been active in your community those past 60 days


For each year your organization has participated, provide the counts of successful and total students (e.g. 2016: 3/4)

  • 2020: 4/4
  • 2019: 3/4
  • 2018: 3/4
  • 2017: 2/2
  • 2016: 3/4
  • 2014: 5/5
  • 2013: 4/4
  • 2012: 3/4
  • 2011: 1/2
  • 2010: 4/4
  • 2009: 4/5
  • 2008: 5/6
  • 2007: 5/7

If your org has applied for GSoC before but not been accepted, select the years:

  • 2015

What year was your project started?


Where does your source code live?

Is your organization part of any government?


Part 2 - Organization Profile



Website URL

Very Short Description of the Organization (80 char)

ScummVM is an Adventure and Role-Playing game preservation project

Primary Open Source License


Organization Category

End user applications

Technology Tags (Max 5 tags)

C++, SDL, OpenGL, Assembly, Lua

Topic Tags (Max 5 tags)

games, game engines, software preservation, software archeology

Idea List

Short Description of the Organization (180 char)

ScummVM is a FOSS game preservation project focused on reliving games by providing a replacement for their executables on modern platforms.

Long Description of the Organization (2000 char)

ScummVM is a game preservation projects celebrates its 20th anniversary this year. Originally focused on 2D Point&Click adventure games, its scope widened in 2016 to RPG thanks to a successful GSoC students, and to 3D games in 2020 after the merge with its sister project, ResidualVM. The purpose is only to replace the game executable, not to enhance or replace the game assets.

ScummVM supports classic 2D adventure games such as Monkey Island, Simon the Sorcerer, Space Quest, and many more. We have also started work to support 2D RPG games such as Dungeon Master and Hyperspace Delivery Boy. 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 thounsands of 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 30 currently active developers (out of an all-time pool of over 130), working together on a codebase of 3,300,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community.

Since its merge with ResidualVM, ScummVM is also a 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.

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.

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 an estimate of how much time they will take. Based on that, we will ask you a realistic planning for the entire GSoC, including the deliverable expected at each partial term and at the end of the GSoC. 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.

As the GSoC schedule has significantly changed this year, we also ask you to determine which days you'll give us feedback. Ideally, we expect feedback one working day out of two at least.

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.

In order to help you structure your application, we summarized our requirements in a template:

Proposal Tags (Max 10 tags)

2d game engine, 3d game engine, reverse engineering, gui, rendering

Contact Methods