Open main menu

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

→‎Describe your organization.: Shorten (read: butcher) the intro text to fit the textboxes of google
(distribute text according to the 17 questions in the gsoc faq)
(→‎Describe your organization.: Shorten (read: butcher) the intro text to fit the textboxes of google)
Line 30: Line 30:
= Application organized according to program FAQ =
= Application organized according to program FAQ =
=== Describe your organization. ===
=== Describe your organization. ===
The ScummVM project aims to allow users to run on modern hardware a variety of commercially available graphical point-and-click adventure games including Monkey Island, Simon the Sorcerer, Space Quest, and many more. To this end, ScummVM features a complete reimplementation of each supported game engine (Virtual Machine - VM) in a structured fashion using the C++ language. The development team works by either 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.
ScummVM is a collection of Virtual Machines which allow a variety of commercially available graphical point-and-click adventure games to run on modern hardware, often with improved features. 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 reimplementation of each supported game engine in a structured fashion using the C++ language. The development team works by either 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 works on popular game consoles (Nintendo DS, PlayStation 2, PlayStation Portable and more), smart phones and PDAs (WinCE, PalmOS, iPhone or Symbian based), and even on many not-so-mainstream systems (like BeOS, AmigaOS or OS/2).
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 works on popular game consoles (Nintendo DS, PlayStation 2, PlayStation Portable and more), smart phones and PDAs (WinCE, PalmOS, iPhone or Symbian based), and even on many not-so-mainstream systems (like BeOS, AmigaOS or OS/2).
 
ScummVM's high portability is a direct consequence of the flexible and modular structure of its architecture, which can be roughly divided into the following three major categories:
# Backends, which are responsible for supporting specific target devices, like PalmOS or WinCE,
# Engines, also called front ends internally, contain the actual game specific (VM) code, and
# Infrastructure code, which provides easy and portable baseline functionality, such as access to audio (including MIDI), graphics, user input, data access, a custom graphical user interface, and more.
 
The large team of developers is split in groups which focus in different aspects of the architecture, in a manner derived from the above mentioned categorization. The team members are often not strictly confined to their respective group. Developers may assume different roles in several teams. Currently, the developers are split in the following subteams:
* Porters: Responsible for a specific ScummVM port.
* Engine authors: Responsible for a specific game engine and its associated bug reports (support).
* Infrastructure development: Includes for example developers working on MIDI code, on the built-in custom GUI, etc.
* Packagers: Not all ports require dedicated backends. For example our SDL backend is highly portable, but it still requires somebody to test and compile it. Packagers execute this function.
* Documentation / web site management
* Project leads: There are currently three project leads. They all are also represented in one of the above categories, but besides this they organize and coordinate things, make decisions, solve disputes etc.
 
All of this enables us to be highly productive in a team of about 35 currently active developers (out of an all-time pool of over 60), who work together on a codebase almost 650,000 lines of code. In addition we have many non-developer contributors, and a huge and highly active community. We are among the most active projects hosted on sourceforge.net with well over 100,000 monthly downloads and ~10 million project web hits per month.


ScummVM has a highly productive team of about 35 currently active developers (out of an all-time pool of over 60), who work together on a codebase almost 650,000 lines of code. In addition we have many non-developer contributors, and a huge and highly active community. ScummVM is among the top ranking projects hosted on sourceforge.net with well over 100,000 monthly downloads and ~10 million project web hits per month.


=== Why is your organization applying to participate in GSoC 2008? What do you hope to gain by participating? ===
=== Why is your organization applying to participate in GSoC 2008? What do you hope to gain by participating? ===
116

edits