Summer of Code/GSoC2023

From ScummVM :: Wiki
< Summer of Code
Revision as of 09:01, 8 June 2023 by Sev (talk | contribs) (Page WIP, 3/5 students)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page lists students and projects for the Summer of Code 2023. See also Google's ScummVM organization info page.

Macromedia Director

Student:
Harishankar Kumar, blog: HSK
Mentors:
sev
Code:
Work in Progress
Outcome:: In Progress
Technical contacts:
sev
Size:
Large
Original task description:

Many 90s-era adventure games were developed using the Macromedia (now Adobe) Director tool. We added so far support for Director 3 and Director 4, but there is much more work related to the specific Xtras, increasing compatibility and working on Director 5 support.

These days, due to the relatively high compatibility our approach is taking an interesting Director title, trying to play it and fix any issues along the way, thus making the process pretty fun. During playback, we often compare the titles and behaviours with the original.

For this year, it would be great to have Total Distortion fully working and Meet MediaBand. The latter will require working with QuickTime playback code.

Often we implement stubs for XObjects which are extensions for Director functionality.


CRAB engine

Student:
Kartik Agarwala, blog: Kartik
Mentors:
sev, Strangerke
Code:
Work in Progress
Outcome:: In Progress
Technical contacts:
Size:
Large
Original task description:

Bring your own Adventure or RPG Reimplementation (only existing games).

The original engine repository Wikipedia page of the game Unrest


Optimize blending code for AGS

Student:
Wyatt Radkiewicz, blog: eklipsed
Mentors:
criezy, somean, ccawley
Code:
Work in Progress
Outcome:: In Progress
Technical contacts:
Criezy
Size:
Medium
Original task description:

One of the main bottleneck in term of performances for AGS games in ScummVM lies in the way sprites are blended together. The AGS engine has 10 different blending modes, and they are currently implemented in a generic way with the colors for both sources being decomposed into their RGBA components before being blended, and then the resulting color being composed back. Those generic decompositions and composition operations are slow and in many cases could be eliminated when implementing specialised versions of the blending functions for a specific pixel format. The task will consist in first changing the blending code so that it can benefit from specialised implementations (for example use template functions or a function pointer). Then specialized optimized implementations of the blending functions can be added for the most commonly used input and output pixel formats combinations.