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

Jump to navigation Jump to search
→‎Macromedia Director: -- improved wording
(→‎Macromedia Director: -- improved wording)
 
(7 intermediate revisions by 3 users not shown)
Line 46: Line 46:
Technical contacts: [[User:Sev|sev]]
Technical contacts: [[User:Sev|sev]]


Difficulty level: Medium. You'll need a reasonable level of programming experience, and probably some Director games.
Difficulty level: Medium. You'll need a reasonable level of programming experience, and probably some [[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.


=== Enhance SAGA engine ===
=== Enhance SAGA engine ===
Line 74: Line 74:


'''ResidualVM project.''' See [http://wiki.residualvm.org/index.php/GSoC_Ideas#In_Cold_Blood_engine_refactor ICB engine refactor] for more details
'''ResidualVM project.''' See [http://wiki.residualvm.org/index.php/GSoC_Ideas#In_Cold_Blood_engine_refactor ICB engine refactor] for more details
=== Maupiti Island ===
Technical contacts: [[User:Strangerke|Strangerke]]
Difficult level: Medium to Hard. Good knowledge of C++ and some knowledge of Pascal and Assembly are required. Some knowledge of French could also help a bit, though Strangerke could translate anything on demand.
Maupiti Island is the sequel of Mortevielle Manor, both released by Lankhor. Both games were best sellers at the time and were games of the year in France. Nevertheless, best sellers of the time were still selling low volumes and Maupiti Island is nowadays pretty rare ans unknown.
Partial Pascal sources of Maupiti Island (Atari ST) have been secured recently. Some utility functions are missing, which were written using a mix of Pascal and assembly. So, the whole harcoded logic is available with most of the utility functions. Some reverse engineering may be required if the equivalent functions in Mortevielle are not working out of the box for the DOS version.
The purpose of this task is to reimplement a Maupiti Island engine for the DOS variants of the game in at least two languages, using Mortevielle Manor and the original sources as documentation.
[https://www.mobygames.com/game/dos/maupiti-island/screenshots/gameShotId,732668/ Screenshots on Mobygames]


=== The Immortal ===
=== The Immortal ===
Line 121: Line 108:
Please come talk to us to see if we have a mentor who would be interested in
Please come talk to us to see if we have a mentor who would be interested in
working with you on such a game. We'd be happy to help out.
working with you on such a game. We'd be happy to help out.
== Smaller Tasks ==
=== Unicode and BiDi support for GUI ===
Technical contacts: [[User:Sev|sev]]
Difficulty: Easy. It will take up to 2 weeks to implement. C++ knowledge required.
ScummVM GUI is based on char size strings, so we have to rely on code pages. With this task, you would need to switch our GUI to usage of Common::U32String, thus making it Unicode-friendly.
Along the way, we would need support for right-to-left languages, and basically flip the widgets horizontally.


== Infrastructure Tasks ==
== Infrastructure Tasks ==
Line 130: Line 131:
Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]]  
Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]]  


ScummVM offers 8 freeware games for download, but they need to be downloaded and installed manually. It would be great to develop a universal system which would let us describe a game, e.g. provide screenshots, game descriptions, metadata, and package it for different platforms, so we could put them to different application distribution systems bundled together with ScummVM. For example, we could have Beneath a Steel Sky bundled together with ScummVM, with its own logo, description and instructions on how to add another game along the way.
ScummVM offers 9 freeware games for download, but they need to be downloaded and installed manually. It would be great to develop a universal system which would let us describe a game, e.g. provide screenshots, game descriptions, metadata, and package it for different platforms, so we could put them to different application distribution systems bundled together with ScummVM. For example, we could have Beneath a Steel Sky bundled together with ScummVM, with its own logo, description and instructions on how to add another game along the way.


Potentially and in the future this system could also be used for DLC on platforms which support it, like Steam, Android Play Store or Apple App Store, though support for Android and iOS is out of scope for this project.
Potentially and in the future this system could also be used for DLC on platforms which support it, like Steam, Android Play Store or Apple App Store, though support for Android and iOS is out of scope for this project.
Line 166: Line 167:
The scope of the project is to design and implement the base system in ScummVM for Windows and Unix (using Named pipes / Unix domain sockets for communication), and to write a high quality companion application for one of the game engines in ScummVM.
The scope of the project is to design and implement the base system in ScummVM for Windows and Unix (using Named pipes / Unix domain sockets for communication), and to write a high quality companion application for one of the game engines in ScummVM.


=== Move Detection Code to Main Executable ===
=== Move Detection Code to the Main Executable ===


Technical contacts: [[User:Sev|sev]]
Technical contacts: [[User:Sev|sev]], [[User:Criezy|criezy]]


Difficulty: Medium
Difficulty: Medium
Line 176: Line 177:
What is needed in this task, is changing our plugin system, so detection-related part of MetaEngine goes straight into the main ScummVM executable, and the engines are not required to load for detection.
What is needed in this task, is changing our plugin system, so detection-related part of MetaEngine goes straight into the main ScummVM executable, and the engines are not required to load for detection.


You need a medium knowledge of C++ for this task.
Benefits would be faster game detection as well as the ability to detect games even if the corresponding plugin is missing, and let the user know which plugin is missing and needed to play that game.
 
You need a medium knowledge of C++ for this task. Some bash shell knowledge is a plus.

Navigation menu