1,513
edits
(→Macromedia Director: -- improved wording) |
|||
(15 intermediate revisions by 3 users not shown) | |||
Line 43: | Line 43: | ||
If you don't feel quite up to that level of challenge, we have lots of other suggestions: | If you don't feel quite up to that level of challenge, we have lots of other suggestions: | ||
=== Macromedia Director | === Macromedia Director=== | ||
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 === | ||
Technical contacts: [[User:Sev|sev]] | Technical contacts: [[User:Sev|sev]] | ||
Difficulty level: Medium | Difficulty level: Medium. | ||
[[ | 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. | ||
An additional target is to support Chinese version of ITE, that would require reverse engineering with Ghidra, in order to understand how the game does rendering of CJK glyphs. | |||
=== Wintermute 3D === | === Wintermute 3D === | ||
Line 72: | 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 | ||
=== The Immortal === | === The Immortal === | ||
Line 120: | Line 109: | ||
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 == | |||
Finally, there's always plenty of other practical tasks on our wishlist! | |||
=== Game packaging system === | === Game packaging system === | ||
Line 136: | Line 131: | ||
Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]] | Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]] | ||
ScummVM offers | 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. | |||
Examples are: Linux packages, Google Play, Apple App Store, Steam, ForgeTV store, and anything beyond that. | Examples are: Linux packages, Google Play, Apple App Store, Steam, ForgeTV store, and anything beyond that. | ||
Line 169: | Line 166: | ||
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 the Main Executable === | |||
Technical contacts: [[User:Sev|sev]], [[User:Criezy|criezy]] | |||
Difficulty: Medium | |||
ScummVM grows every year, and for decreasing the executable size, we have dynamic plugins system in-place. During detection, we are loading every plugin and try to detect files. The relevant code interface is called MetaEngine. This is not effective and quite slow. | |||
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. | |||
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. |