GSoC 2017 Summary

GSoC 2017: Sludge Engine

Summary

Project description

During GSoC 2017, I worked for the org ScummVM, which is a program that allows running some classic graphical point-and-click adventure games on multiple platforms (Win, MacOS, Linux, Android, etc.), with game data file provided.

My project has been importing the Sludge engine into ScummVM and adding full support at least for the game Out Of Order. At the start, I had Sludge engine source code as base to work on, which is an open source project licensed under GNU LGPL version 2.1.

Goals achieved

Now I’d like to make a summary of what I’ve achieved:

1. Sludge engine

Sludge engine has largely been imported into ScummVM now with capability to run the games below:

  • Out of Order
  • Frasse and the Peas of Kejick
  • The Interview
  • Life Flashed By
  • The Game That Takes Place on a Cruise Ship
  • Cubert Badbone, P.I.
  • Robin’s Rescue (Tutorial game for sludge engine)

I tested the game Out Of Order from the beginning to the end and the first scenes in other games. There doesn’t seem to be serious problems.

2. Other features

    1. CMD :
      • As the entry barrier for GSoC program, I made a PR for the command line to get games detected and added. This feature has been polished and enriched by two other summvm members criezy and tobiatesan later.
    2. GRAPHICS :
      • I added Multiply blend mode for Transparent Surface: PR.
      • I fixed a minor bug about off-screen clipping handling for Transparent Surface : PR
    3. IMAGE :
      • I made a small modification to make it possible to write png from surfaces of 4-byte pixel format : commit 1 2

Future work

      • Unimported Sludge features :
        • Play movie
        • Color transition animation
      • Continue to track down game bugs
      • Code objectifying for sludge
      • I’m still working on adding support for .mod .s3m and .xm tracker sounds in my own fork.

Code

The code for sludge engine is in an individual folder in the repo:

https://github.com/scummvm/scummvm/tree/master/engines/sludge

The commits that I made :

https://github.com/scummvm/scummvm/commits?author=yinsimei