Open main menu

Summer of Code/GSoC2012

< Summer of Code
Revision as of 14:48, 13 March 2013 by Strangerke (talk | contribs) (Add WME and testing framework, remove some reference to 2011, update some links)

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

Saving anywhere

Student
Upthorn
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
(partial) 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
(partial) 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
(TBD)
Outcome
(partial) Success. Code has been merged in Master.
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 sub-set 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