Open main menu

Difference between revisions of "Summer of Code/GSoC Ideas 2023"

→‎Add Text-to-Speech to more games: Adding mTropolis to the list of possible engines
(→‎Macromedia Director: enhanced description)
(→‎Add Text-to-Speech to more games: Adding mTropolis to the list of possible engines)
 
(4 intermediate revisions by 2 users not shown)
Line 151: Line 151:
* Technical contacts: sev
* Technical contacts: sev
* Difficulty: Easy
* Difficulty: Easy
* Size: 175 or 350 hours, depending on number of games
* Size: 175 or 350 hours, depending on the number of games


ScummVM includes a global fully configurable keymapper, but this requires engines to be adapted to use it. The feature documentation: [[Keymapper]], some reference implementations: Wintermute has [https://github.com/scummvm/scummvm/blob/master/engines/wintermute/keymapper_tables.h per-game keymaps]; [https://github.com/scummvm/scummvm/pull/2428 a pull request] with adding keymapper to HDB engine; [https://github.com/scummvm/scummvm/commit/cce713ee4c73504e97eba8b0ca9190e47d279e69 a commit] with adding Keymapper to a simpler engine, Griffon.
ScummVM includes a global fully configurable keymapper, but this requires engines to be adapted to use it. The feature documentation: [[Keymapper]], some reference implementations: Wintermute has [https://github.com/scummvm/scummvm/blob/master/engines/wintermute/keymapper_tables.h per-game keymaps]; [https://github.com/scummvm/scummvm/pull/2428 a pull request] with adding keymapper to HDB engine; [https://github.com/scummvm/scummvm/commit/cce713ee4c73504e97eba8b0ca9190e47d279e69 a commit] with adding Keymapper to a simpler engine, Griffon.
Line 163: Line 163:


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.
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.
=== Add Text-to-Speech to more games ===
* Technical contacts: sev
* Difficulty: Easy
* Size: 175 or 350 hours, depending on the number of games
ScummVM has [https://en.wikipedia.org/wiki/Text-to-speech Text-to-Speech] (TTS) functionality that we are using for the games that have no speech (or limited options for speech). That improved usability of the games and obviously, their accessibility.
So far, TTS has been [[:Category:Engines Supporting Text-to-Speech|added to a number of engines]]. Additional engines where it could be potentially added include: [[ADL]], [[AGI]], [[Cine]], [[CruisE]], [[DM]] (?), [[Draci]], [[Dragons]] (?), EFH (?), [[Gob]], [[Hugo]], [[Immortal]] (later), [[Kult]] (?), [[Lab]] (?), [[MADE]], [[MM]], [[mTropolis]], [[Parallaction]], [[Prince]] (for non-Polish), [[SCUMM]], [[SLUDGE]], [[Startrek]] (?), [[Sword25]] (for languages other than English or German), [[TeenAgent]], [[Trecision]] (?), [[WAGE]]
For each engine, the task varies from straightforward to a mid-complexity:
# Identify routines that show text on screen
# Potentially, clean up text from things like colors and fonts
# Feed this text to TTS
# Define GUI options for triggering the option


== Infrastructure Tasks ==
== Infrastructure Tasks ==
TrustedUser
567

edits