GSoC/GCI Archive
Google Summer of Code 2013

ScummVM

Web Page: http://wiki.scummvm.org/index.php/GSoC_Ideas

Mailing List: http://sourceforge.net/mailarchive/forum.php?forum_name=scummvm-devel

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. 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 42 currently active developers (out of an all-time pool of over 110), working together on a codebase almost 1,700,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.

Projects

  • Avalanche Engine ScummVM is a virtual machine that supports many game engines by now. Avalanche Engine will be one of the next ones, which will allow playing the game called Lord Avalot d'Argent. My project is to implement this engine.
  • GUI Extensions and Improvements, mainly focusing on Touchscreen Devices While ScummVM has support for direct input mode for touchscreen devices, many of the controls using this mode feel awkward due to them being optimized for mouse/keyboard usage. This project aims to create a beautiful looking user interface that can be navigated on a smaller screen with fingers, focusing on landscape mode, on modern touchscreen devices. The goal is to make ScummVM feel like a native application without sacrificing too much functionality.
  • Improve Wintermute Engine for Scummvm The Wintermute Engine in ScummVM has a number of issues and areas for optimization and it has not yet reached "supported" status. Improve it.
  • Integrating Marisa Chan's Z-Engine Implementation into the ScummVM set of Engines The ZVision is used in the games Zork Nemesis and Zork Grand Inquisitor. Marisa Chan created a C implementation of the engine, but it is only for desktop and requires configuration files. This project aims to create a ScummVM engine using Marisa Chan’s implementation code as a guide into the Zork file structure and engine design. That is, it will not simply adapt the current implementation to the ScummVM engine structure. Rather, it will create a new engine, using the file structures and event implementations in Marisa Chan’s code as a reference. ScummVM will allow these games to be played on a variety of platforms and a redesign will remove the need for configuration files. Lastly, it will mean that ScummVM will support all of the Zork point'n'click adventure games.