Open main menu

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

Fixed task sizes
(Fixed task sizes)
Line 47: Line 47:


Difficulty level: Medium. You'll need a reasonable level of programming experience, and probably some [[Director]] games.<br/>
Difficulty level: Medium. You'll need a reasonable level of programming experience, and probably some [[Director]] games.<br/>
Size: Full GSoC
Size: 350 hours


[[Director/Games|Many 90s-era adventure games]] were developed using the Macromedia (now Adobe) Director tool. It would be nice to be able to play these games in ScummVM! We have a WIP engine in ScummVM tree, but it requires much more work in order to implement all hundreds of Lingo commands.
[[Director/Games|Many 90s-era adventure games]] were developed using the Macromedia (now Adobe) Director tool. It would be nice to be able to play these games in ScummVM! We have a WIP engine in ScummVM tree, but it requires much more work in order to implement all hundreds of Lingo commands.
Line 55: Line 55:


Difficulty level: Medium.<br/>
Difficulty level: Medium.<br/>
Size: Half GSoC
Size: 175 hours


We have been supporting the [[Inherit the Earth]] game for a long while. However, Amiga versions are not yet supported by this target. We have the original source codes, and the main difference is the data bundles format.
We have been supporting the [[Inherit the Earth]] game for a long while. However, Amiga versions are not yet supported by this target. We have the original source codes, and the main difference is the data bundles format.
Line 64: Line 64:


Difficulty level: Hard. Good knowledge of C++ and assembly (x86 or 68K or 6502) is required.<br/>
Difficulty level: Hard. Good knowledge of C++ and assembly (x86 or 68K or 6502) is required.<br/>
Size: Full GSoC
Size: 350 hours


The immortal was released in 1990 by Electronic Arts. It's a mix of genres involving RPG elements with action and puzzles.
The immortal was released in 1990 by Electronic Arts. It's a mix of genres involving RPG elements with action and puzzles.
Line 78: Line 78:
Technical contacts [[User:aquadran|aquadran]] or [[User:Sev|sev]]
Technical contacts [[User:aquadran|aquadran]] or [[User:Sev|sev]]
Difficulty level: Hard. OpenGL knowledge is required<br/>
Difficulty level: Hard. OpenGL knowledge is required<br/>
Size: Full GSoC
Size: 350 hours


Fictional Games has released full sources for their HPL1 engine under GPL3 license [https://github.com/FrictionalGames/HPL1Engine link], around 100k lines of code. This is accompanied with the game-specific code for Penumbra and two Amnesia games. [https://github.com/FrictionalGames/PenumbraOverture Link], around 37k lines of code.
Fictional Games has released full sources for their HPL1 engine under GPL3 license [https://github.com/FrictionalGames/HPL1Engine link], around 100k lines of code. This is accompanied with the game-specific code for Penumbra and two Amnesia games. [https://github.com/FrictionalGames/PenumbraOverture Link], around 37k lines of code.
Line 90: Line 90:


Difficulty: Hard. You'll need good knowledge of C++, as well as knowledge of (reading) assembly.<br/>
Difficulty: Hard. You'll need good knowledge of C++, as well as knowledge of (reading) assembly.<br/>
Size: Full GSoC
Size: 350 hours


Our project consists of re-implementations of classic games, and we have listed
Our project consists of re-implementations of classic games, and we have listed
Line 113: Line 113:


Difficulty: Easy<br/>
Difficulty: Easy<br/>
Size: Half or Full GSoC, depending on number of games
Size: 175 or 350 hours, depending on 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 122: Line 122:


Difficulty: Medium<br/>
Difficulty: Medium<br/>
Size: Half GSoC
Size: 175 hours


Last year we enhanced our GUI for supporting Unicode output. Now we need to enhance our input system, so Unicode input is supported as well. This includes RTL support (we have FriBiDi employed for output).
Last year we enhanced our GUI for supporting Unicode output. Now we need to enhance our input system, so Unicode input is supported as well. This includes RTL support (we have FriBiDi employed for output).
Line 133: Line 133:


Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]]<br/>
Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]]<br/>
Size: Full GSoC
Size: 350 hours


==== Background ====
==== Background ====
Line 162: Line 162:


Difficulty: Medium<br/>
Difficulty: Medium<br/>
Size: Half GSoC
Size: 175 hours


ScummVM uses software scalers for graphics enhancements. In 2012 we were running GSoC for turning them into plugins. [https://github.com/scummvm/scummvm/pull/271 That work] It was recently merged in ScummVM but could require some more love like adding xBRZ scalers.
ScummVM uses software scalers for graphics enhancements. In 2012 we were running GSoC for turning them into plugins. [https://github.com/scummvm/scummvm/pull/271 That work] It was recently merged in ScummVM but could require some more love like adding xBRZ scalers.
Line 178: Line 178:


Difficulty: Medium<br/>
Difficulty: Medium<br/>
Size: Full GSoC
Size: 350 hours


ScummVM requires game data files to operate. Very often, especially when copying from the old media, the files could be damaged. Thus, we need a system that could let the end-users compute all the checksums and compare them with the reference.
ScummVM requires game data files to operate. Very often, especially when copying from the old media, the files could be damaged. Thus, we need a system that could let the end-users compute all the checksums and compare them with the reference.