GSoC/GCI Archive
Google Summer of Code 2014


License: GNU General Public License version 2.0 (GPLv2)

Web Page:

Mailing List:

ScummVM is a collection of Virtual Machines for playing classic graphical 2D point-and-click adventure games on modern hardware. For the first year, ScummVM also accepts students willing to work on ResidualVM, its sister project for 3D games. 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 and ResidualVM results in efficient code, which has been ported to numerous Operating Systems. Besides both 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 with over 100,000 monthly downloads and ~10 million project web hits per month.


  • CGE2 Engine Sfinx is a Polish game based on the CGE engine. This engine is written in C and ASM and is an evolution of another game already supported by ScummVM, Soltys. The important parts of this task would be to fix the extraction/compacting tools, to define how similar the engine is compared to CGE1, then to rework and refactor the sources heavily, and to integrate it into ScummVM as a new engine.
  • Full rewrite of ‘The Prince and the Coward’ game for ScummVM The project allows to implement ‘The Prince and the Coward’ game in ScummVM and translate it into English language.
  • Improving ResidualVM Support for Escape from Monkey Island Escape from Monkey Island (EMI) support is currently incomplete in ResidualVM. This project intends to improve the playability of the game in ResidualVM by completing stubbed functions in the Lua scripting engine, solving graphical bugs and fixing game logic issues. This work will be completed through reverse engineering the original EMI binary and rewriting missing functionality as well as play testing the game in ResidualVM.
  • Improving the "Escape from Monkey Island" engine in ResidualVM The purpose of this project is firstly to improve the graphical appearance and audio of the PC version of "Escape from Monkey Island" running in the ResidualVM 3D game interpreter to better match the original game. Secondly, ResidualVM's compatibility with the PlayStation 2 version of the game will be improved.
  • TinyGL refactoring and optimization My project aims to provide two main advantages to the community: the optimization that this project will yield to the TinyGL runtime will allow more users to have access to the engine and it will also give a better user experience to all those people that are already making use of the software renderer by giving a more stable frame rate of execution.