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

GSoC Week 12

GSoC 2017: Sludge Engine Week 12

Week task conclusion

Generally, this week is still focused on bug fixing and primary study of sound decoder.

Again, thanks to my mentors _sev(Eugene Sandulenko), t0by(Tobia Tesan) and all scummvm team members that has helped me during this week.

To make a brief conclusion about what we have achieved for this week :

  1. Bugs Fixed :
    1. Sprite darkness level bug
    2. Save&load looping sound bug
    3. zBuffer bug when burn sprites to backdrop
  2. A local branch in my fork for sound decoder has been created

As for the sound decoder, we’ve decided to use the the library micromod for it, which is a library including a converter from s3m, mod, xm to wav format. We find it impressive for its size and its capability to create a common loading structure for all three formats.

(Link to the repo on github : https://github.com/martincameron/micromod)

 

What’s for next week: Importing micromod sound decoders & Bug fixing

Tasks for next week :

  1. Import the micromod sound decoder into scummvm
  2. make the 3 win-only games work

GSoC Week 11

GSoC 2017: Sludge Engine Week 11

Week task conclusion

Generally, this week is focused on further bug fixing for the game Out Of Order and we are able to play from the begin to the end now.

Again, thanks to my mentors _sev(Eugene Sandulenko), t0by(Tobia Tesan) and all scummvm team members that has helped me during this week.

To make a brief conclusion about what we have achieved for this week :

  1. Bugs Fixed :
    1. Sprite depth
    2. Add thumbnail
    3. Save & load interface
      1. Add thumbnail
      2. Add saved file list
  2. Lightmap: 3
  3. Multiply blend mode for transparent surface

Things not achieved yet:

  1. Bugs left to be solved:
    1. Sometimes the menu can’t be called out by esc. This can be solved by restarting scummvm. Not sure when this bug will occur yet.
    2. The character sprite can be too dark sometimes.
    3. Save&Load game can cause some loop sound that shouldn’t be played there played
    4. When the credits show in the end, the zBuffer of the last scene remain
    5. At the beginning of the game, there is a moment the zbuffer doesn’t work. Don’t know why it is.
  2. The end of the game Out Of Order contains a short movie, so we’ll also need to see how to play it in scummvm
  3. By the way, the parallex is not used anywhere in any game. So I think it’s not necessary to implement it now.
  4. Still don’t know why the windows-only games don’t work.

What’s for next week: XM, IT, S3M Sound decoders

Tasks for next week :

  1. Fix the bugs that remain
  2. XM, IT, S3M sound decoders

GSoC Week 10

GSoC 2017: Sludge Engine Week 10

Week task conclusion

Since I didn’t have time to work on Sludge last week, I make this week the 10th week of GSoC Generally, this week is focused on bug tracking for the game Out Of Order. As the objectifying took longer than planned, we decided to back to it when we have time later and concentrate on bug fixing.

Again, thanks to my mentors _sev(Eugene Sandulenko), t0by(Tobia Tesan) and all scummvm team members that has helped me during this week.

To make a brief conclusion about what we have achieved for this week :

  1. Bug Fixing
    1. Backdrop bug :
      1. Clear screen
      2. Fix backdrop loading
      3. Fix crash when loading game
    2. zBuffer :
      1. zBuffer order bug
      2. Reset zBuffers when blank back drop
    3. Fix Off-screen cliping handling for Transparent Surface (in PR at present)
    4. Others :
      1. Quit game buit-in
      2. Correct pixel format for png writing
  2. New game situations :
    1. Out Of Order : Bugs concerning backdrop and z-Buffers are fixed
    2. The Interview : The crashing bug has been fixed with the update
    3. Life Flashes By: The bug concerning save & load file detection is unsolved, as it is not related to the built-in function FileExists as I expected. So still need to track down this problem.

What’s for next week: Bug fixing & Lightmap & Parallax

Tasks for next week :

  1. Test Out Of Order thoroughly and fix the bugs that remain
  2. Test other games and track bugs
  3. Add lightmap shader effect to sprite displaying
  4. Test and add parallax in Out Of Order (haven’t seen it in Out Of Order till now, maybe it is used in the scenes later)
  5. If time permits, try to figure out why the windows game doesn’t work. This may be something convoluted, the reason is still unknown

And for the week after the next, we will focus on making the decoder for multi-track sounds