Difference between revisions of "GSoC Ideas"

From ScummVM :: Wiki
Jump to navigation Jump to search
m (Migrate IRC to Libera.chat)
 
(20 intermediate revisions by 7 users not shown)
Line 1: Line 1:
This page contains a list of ideas about projects/tasks for the ScummVM and the ResidualVM projects which we feel are relatively substantial (and so appropriate for at least ''part'' of a Google [[Summer of Code]] project), and accessible to newcomers with good C++ knowledge.
 
 
 
----
 
'''See [[Summer of Code/GSoC Ideas 2021|GSoC Ideas 2021]]''' for the 2021 version of this page.
 
----
 
 
 
 
 
 
 
 
 
 
<!--This page contains a list of ideas about projects/tasks for the ScummVM and the ResidualVM projects which we feel are relatively substantial (and so appropriate for at least ''part'' of a Google [[Summer of Code]] project), and accessible to newcomers with good C++ knowledge.


These are just the few projects that we have come up with ourselves, and there are many many other tasks which would be helpful to the project - many ScummVM engines have their own TODO lists, and there are large tasks related to ResidualVM engines.
These are just the few projects that we have come up with ourselves, and there are many many other tasks which would be helpful to the project - many ScummVM engines have their own TODO lists, and there are large tasks related to ResidualVM engines.
Line 30: Line 48:
* ''Email''
* ''Email''
* ''Online nicks''
* ''Online nicks''
: You should at least add your IRC (freenode) nickname here.
: You should at least add your IRC (libera.chat) nickname here.
* ''Project Title''
* ''Project Title''
: State precisely what you intend your project to be about. 40 characters is usually a good upper limit.
: State precisely what you intend your project to be about. 40 characters is usually a good upper limit.
Line 143: Line 161:


=== Adding text to speech support in Mortville Manor ===
=== Adding text to speech support in Mortville Manor ===
Technical contacts: Our IRC channel, our mailing list, or contact [[User:Strangerke|Arnaud Boutonné]]
Technical contacts: Our IRC channel, our mailing list, or contact [[User:Strangerke|Arnaud Boutonné]] or [[User:criezy|Thierry Crozat]]


The original Mortville Manor game was using a speech synthesis based on PC Speaker.  
The original Mortville Manor game was using a speech synthesis based on PC Speaker.  
Line 150: Line 168:
decent text to speech generation, in (at least) French, German and English.
decent text to speech generation, in (at least) French, German and English.


=== Adding speech synthesis of on-screen text for people with reduced sight ===
=== Adding speech synthesis of on-screen text for people with reduced sight or for learning to read ===
Technical contacts: Our IRC channel, our mailing list, or contact [[User:Strangerke|Arnaud Boutonné]]
Technical contacts: Our IRC channel, our mailing list, or contact [[User:Strangerke|Arnaud Boutonné]] or [[User:criezy|Thierry Crozat]]


Using the same library used in the previous task, add a similar text to speech generation for other games. The exact list of titles should be defined as soon as possible between the mentors and the student.
Using the same library used in the previous task, add a similar text to speech generation for other games. The exact list of titles should be defined as soon as possible between the mentors and the student.


This task would allow people suffering of sight issues to play more games in ScummVM.
This task would allow people suffering of sight issues to play more games in ScummVM, but it could also be very useful to help people to learn how to read.


=== Macromedia Director ===
=== Macromedia Director ===
Line 174: Line 192:


=== Port WebVenture engine ===
=== Port WebVenture engine ===
Technical contacts: Our IRC channel, our mailing list, or contact [[User:DJWillis|John Willis]],
Technical contacts: [[User:DJWillis|John Willis]], [[User:Md5|Filippos Karapetis]].


The [http://seancode.com/webventure/ WebVenture] [https://github.com/mrkite/webventure engine] by Sean Kasun is a reimplementation of the [https://en.wikipedia.org/wiki/MacVenture MacVenture] engine from ICOM Simulations.  
The [http://seancode.com/webventure/ WebVenture] [https://github.com/mrkite/webventure engine] by Sean Kasun is a reimplementation of the [https://en.wikipedia.org/wiki/MacVenture MacVenture] engine from ICOM Simulations.  
Line 183: Line 201:


'''This task requires C++ and JavaScript knowledge.'''
'''This task requires C++ and JavaScript knowledge.'''
=== Port WAGE engine ===
Technical contacts: [[User:Sev|Eugene Sandulenko]].
The WAGE engine is an engine behind [http://en.wikipedia.org/wiki/World_Builder World Builder], an early system for authoring adventure games on Mac.
Alexei Svitkine has a basically [https://code.google.com/p/wage-engine/ working implementation in Java], and [[User:Sev|sev]] has started
efforts on porting the engine to ScummVM awhile ago: [https://github.com/sev-/scummvm/tree/wage/engines/wage github link].
Alexei continued its development, and sev abandoned the effort due to other projects within ScummVM.
Current ScummVM implementation is able to load the game assets and runs scripts. However it lacks support for QuickDraw pictures used everywhere
in the game. Originally sev wanted to provide pixel perfect implementation, which was the primary reason why development stalled. But several years ago
Apple has [http://www.computerhistory.org/atchm/macpaint-and-quickdraw-source-code/ released full sources] of their QuickDraw 1.0 code, which makes
achieving this goal possible. However, Alexei's engine is using standard Java gfx classes, and that looks to be sufficient.
Your task is to finish the porting efforts, complete the engine, and probably increase the compatibility.
'''This task requires C++ and Java knowledge.'''


=== Native OS X port ===
=== Native OS X port ===
Technical contacts: [[User:somaen|Einar Johan Trøan Sømåen]].
Technical contacts: [[User:somaen|Einar Johan Trøan Sømåen]], [[User:aquadran|Paweł Kołodziejski]].


ScummVM's current OS X port is SDL 1.2 based, which is a dead project, having been replaced by SDL2, and Apple has a tendency to change and deprecate functionality with each version of their OS, as such, the current state of the OS X port seems to degrade with each new OS X release. Functionality added in newer releases of OS X, such as the new Full-screen modes introduced in 10.7 are also not available for use in ScummVM with the current SDL1.2 port.
ScummVM's current OS X port is SDL 1.2 based, which is a dead project, having been replaced by SDL2, and Apple has a tendency to change and deprecate functionality with each version of their OS, as such, the current state of the OS X port seems to degrade with each new OS X release. Functionality added in newer releases of OS X, such as the new Full-screen modes introduced in 10.7 are also not available for use in ScummVM with the current SDL1.2 port.
Line 244: Line 245:


See [http://wiki.residualvm.org/index.php/GSoC_Ideas#Wintermute_3D_port Wintermute 3D] for more details.
See [http://wiki.residualvm.org/index.php/GSoC_Ideas#Wintermute_3D_port Wintermute 3D] for more details.
=== In Cold Blood engine refactor ===
Technical contacts: [[User:somaen|Einar Johan Trøan Sømåen]], [[User:aquadran|Paweł Kołodziejski]], [[User:joostp|Joost Peters]]
See [http://wiki.residualvm.org/index.php/GSoC_Ideas#In_Cold_Blood_engine_refactor ICB engine refactor] for more details


=== iOS port ===
=== iOS port ===
Line 251: Line 257:


See [http://wiki.residualvm.org/index.php/GSoC_Ideas#iOS_port_of_ResidualVM iOS Port] for more details
See [http://wiki.residualvm.org/index.php/GSoC_Ideas#iOS_port_of_ResidualVM iOS Port] for more details
=== Multichannel 3D sound support ===
Technical contacts: [[User:aquadran|Paweł Kołodziejski]]
Currently ResidualVM has only stereo audio output for emulated 3D sounds.
See [http://wiki.residualvm.org/index.php/GSoC_Ideas#Multichannel_3D_sound_support Multichannel 3D sound support] for more details


=== Sources for other ideas ===
=== Sources for other ideas ===


Technical contacts: ResidualVM IRC channel (#residualvm on freenode.net), or contact [[User:aquadran|Paweł Kołodziejski]], [[User:somaen|Einar Johan Trøan Sømåen]]
Technical contacts: ResidualVM IRC channel (#residualvm on libera.chat), or contact [[User:aquadran|Paweł Kołodziejski]], [[User:somaen|Einar Johan Trøan Sømåen]]


=== New game engines ===
=== New game engines ===


Technical contacts: ResidualVM IRC channel (#residualvm on freenode.net), or contact [[User:aquadran|Paweł Kołodziejski]], [[User:somaen|Einar Johan Trøan Sømåen]]
Technical contacts: ResidualVM IRC channel (#residualvm on libera.chat), or contact [[User:aquadran|Paweł Kołodziejski]], [[User:somaen|Einar Johan Trøan Sømåen]]


If you already have reverse engineering experience, you could consider working on one of the external in-development game engines, or even on support for a new game. However, doing this kind of work is very difficult and time-consuming - you would have to convince us that you have the necessary skills to actually be sufficiently productive, probably by demonstrating some actual progress first.
If you already have reverse engineering experience, you could consider working on one of the external in-development game engines, or even on support for a new game. However, doing this kind of work is very difficult and time-consuming - you would have to convince us that you have the necessary skills to actually be sufficiently productive, probably by demonstrating some actual progress first.
-->

Latest revision as of 12:36, 27 May 2021



See GSoC Ideas 2021 for the 2021 version of this page.