Summer of Code/GSoC2012

From ScummVM :: Wiki
Jump to navigation Jump to search

This page lists students and projects for the Google Summer of Code 2012.

Saving anywhere

Student:
Jody Northup
Mentors:
Alyssa Milburn
Code:
N/A
Outcome:
Failed mid-term
Original task description:

On phones and other mobile devices, ScummVM may need to be shut down abruptly - for example, due to memory pressure caused by an incoming call, or another background task.

It would be very nice to be able to (automatically) save at any point when you have to shut down ScummVM suddenly - including in cutscenes, conversations, etc... at the moment, most engines don't allow this.

Since saving is something that every engine implements separately, a GSoC project might consist of implementing this for a number of engines.

See OpenTasks/Generic/Saving Everywhere for more details.

Scaler Plugin System

Student:
Eric Culp
Mentors:
Johannes Schickel
Code:
(TBD)
Outcome:
Success. The code is still being polished
Technical Contacts:
Eugene Sandulenko, Johannes Schickel
Original task description:

Our SDL-based backends (a backend is roughly equivalent to a 'port'), such as the one used by default on desktop machines, use 2D scaler functions to 'scale up' the game screen to a larger size, such as plain 2x/3x scalers and HQ2x/HQ3x.

Right now, they are all hardcoded into the build, which means that adding new scalers is inconvenient, especially since they all have to be built into ScummVM. This means that, at the moment, we have stopped adding new scalers to the code. If our plugin system could be extended to allow for scalers to be provided as plugins, then these problems would be solved.

Once this is done, and the existing scalers changed to be plugins, then support could be added for scalers supporting higher bit depths (32bpp) - which would allow us to use a 32bpp overlay for the GUI. And finally, new scalers could be added (there have been several patches submitted already).

See OpenTasks/Generic/Scalers for more details

Testing Framework for ScummVM

Student:
Danil Ishkov
Mentors:
Eugene Sandulenko
Code:
(TBD)
Outcome:
Success. The code is still being polished
Original task description:

The number of ScummVM supported games grows with each release. Since 0.8.0 we are performing extensive prerelease testing. Basically, it is game replaying to find regressions. This becomes a somewhat tiresome process and takes up a lot of time.

In fact, there should be no changes in the gameplay in most cases, so event recording and proper replaying should be enough. There is some code for that based on the action recorder patch, but the recordings are not played consistently. The main problem is that there is no guarantee of the events to be in sync with other engine parts, so the playback may deviate, depending on the machine speed.

See OpenTasks/Generic/Add_Testing_Framework_Engines for more details

Wintermute integration in ScummVM

Student:
Einar Johan Trøan Sømåen
Mentors:
Arnaud Boutonné
Code:
Wintermute Engine in ScummVM tree
Outcome:
Great success. The code has been merged into Master right after GSoC.
Technical Contacts:
Arnaud Boutonné, Eugene Sandulenko
Original task description:

The Wintermute Engine (WME) is a set of tools for creating and running graphical adventure games. It's originally MS-Windows oriented, and lets the user create 2D, 2.5D (using 3D characters in a 2D environment) and 3D games for free. During the first semester of 2011, a WME developer, Mnemonic, created WME Lite in a move to make WME more portable. WME Lite runs "only" WME 2D and 1rst person games with a subset of available features and runs on Windows, iOS, and MacOS.

After some discussion with Mnemonic, it appears that the engine should be backward compatible and that development since the last version (v1.9.1, on 1/1/2010) has been slow, so it's a good time to work on the integration of the Wintermute Engine (2D) into ScummVM. This will be based on WME Lite sources, available on Google Code.

See OpenTasks/Engine/Wintermute for more details