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

Jump to navigation Jump to search
m
 
(9 intermediate revisions by 3 users not shown)
Line 34: Line 34:


If you're looking for more inspiration for ideas, beware of our [[TODO]] (and the other TODO lists linked from there) and our [[OpenTasks]] pages. Many of the tasks listed there might be incomplete or outdated, or too difficult for a new developer. The best thing to do is to come and talk to us!
If you're looking for more inspiration for ideas, beware of our [[TODO]] (and the other TODO lists linked from there) and our [[OpenTasks]] pages. Many of the tasks listed there might be incomplete or outdated, or too difficult for a new developer. The best thing to do is to come and talk to us!
== GUI Tasks ==
Our current GUI could use refreshing and updating, in particular to improve how
it works with newer platforms such as iOS or Android. We have a few suggested
tasks:
=== Improve touchscreen GUI <span style="color:red">(To be confirmed)</span>===
Technical contacts: [[User:Sev|sev]].
Difficulty level: Easy (code) / medium (architecture). You'll need a touchscreen device which can run ScummVM, to test on.
Our launcher/options GUI has been designed for keyboard/mouse input, and does
not work well in practice on modern touchscreen devices.
Since it is theme based, part of the problem can be resolved by using a custom
theme. However, our GUI code will need extensions to allow it to behave like a
proper touchscreen application. See [[OpenTasks/Generic/Touch GUI]] for more details.
=== Improve Main GUI <span style="color:red">(To be confirmed)</span>===
Technical contacts: [[User:Sev|sev]].
Difficulty level: Easy.
We have a wishlist for improved GUI widgets; we'd like better sliders, multiline text widgets, an improved list widget, and better widgets for PopUps.
Also, several years ago, we switched to a new XML-based and vector-based GUI, but unfortunately during this transition number of nice touches were lost. In particular, the current GUI lacks soft shadows and antialiasing in number of places. We'd like them back! At the same time, it would be nice to add support for transparent PNG files.
Finally, it would be nice to have support for a scalable GUI which looks good at modern resolutions, which would require changes to our theme format, among other improvements.
See [[OpenTasks/Generic/Improve GUI Look]] for more details.


== Game Tasks ==
== Game Tasks ==
Line 76: 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 <span style="color:red">(To be confirmed)</span>===
=== Macromedia Director</span>===
Technical contacts: [[User:Sev|sev]]
Technical contacts: [[User:Sev|sev]]


Line 83: Line 50:
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.
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.


=== Networking code for Moonbase Commander <span style="color:red">(To be confirmed)</span>===
=== Networking code for Moonbase Commander===
Technical contacts: [[User:Sev|sev]]
Technical contacts: [[User:Sev|sev]]


Line 120: Line 87:


=== Hyperspace Delivery Boy ===
=== Hyperspace Delivery Boy ===
Technical contact: [[User:sev|sev]]
Technical contact: [[User:sev|sev]] or [[User:DJWillis|DJWillis]]  


Difficulty level: Medium to hard. Good knowledge of C++ and some knowledge of Lua are required.
Difficulty level: Medium to hard. Good knowledge of C++ and some knowledge of Lua are required.
Line 134: Line 101:
=== Mission Supernova games ===
=== Mission Supernova games ===


Technical contacts: [[User:Strangerke|Strangerke]] or [[User:Criezy|Criezy]] - <span style="color:red">Criezy will most likely not be available</span>
Technical contacts: [[User:Strangerke|Strangerke]] or [[User:Criezy|Criezy]]


Difficulty level: Medium. Good knowledge of C++ and basic knowledge of C and ASM is required. Some knowledge of German language would also help.  
Difficulty level: Medium. Good knowledge of C++ and basic knowledge of C and ASM is required. Some knowledge of German language would also help.  
Line 180: Line 147:
Finally, there's always plenty of other practical tasks on our wishlist!
Finally, there's always plenty of other practical tasks on our wishlist!


=== Improve Android port <span style="color:red">(To be confirmed)</span>===
=== Improve Android port</span>===
<span style="color:red">Fuzzie is certainly not available. Is there a mentor for this one?</span>


Technical contacts: [[User:Fuzzie|Fuzzie]]
Technical contacts: [[User:Sev|Sev]]


Difficulty level: Medium/hard. You'll need some knowledge of C++, Java and ideally Android development and OpenGL. Access to at least one Android device is probably also necessary.
Difficulty level: Medium/hard. You'll need some knowledge of C++, Java and ideally Android development and OpenGL. Access to at least one Android device is probably also necessary.
Line 189: Line 155:
Our current Android port is in need of improvement, especially combined with modern versions of Android. We'd like to improve the GUI and the input code in particular, but hopefully you also have your own ideas if you've tried the port (if you haven't: do so!). There are some patches already available, and it should be possible to merge code from other projects (such as SDL 2). A native configuration GUI could also be an option.
Our current Android port is in need of improvement, especially combined with modern versions of Android. We'd like to improve the GUI and the input code in particular, but hopefully you also have your own ideas if you've tried the port (if you haven't: do so!). There are some patches already available, and it should be possible to merge code from other projects (such as SDL 2). A native configuration GUI could also be an option.


=== Game packaging system <span style="color:red">(To be confirmed)</span>===
=== Game packaging system ===


Technical contacts: [[User:Sev|sev]]
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 descibe a game, e.g. provide screenshots, game descriptions, metadata, and package it for different platforms, so we could put them to different applicaiton distribution systems.
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 descibe a game, e.g. provide screenshots, game descriptions, metadata, and package it for different platforms, so we could put them to different applicaiton distribution systems.
Line 197: Line 163:
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.


=== Support for shaders and arbitrary scalers <span style="color:red">(To be confirmed)</span>===
=== Support for shaders and arbitrary scalers ===


Technical contacts: [[User:Sev|sev]]
Technical contacts: [[User:Sev|sev]]
Line 210: Line 176:


We need to have it tested on desktops and at least Android, but preferably also Windows and iOS.
We need to have it tested on desktops and at least Android, but preferably also Windows and iOS.
=== Text to speech <span style="color:red">(To be confirmed)</span>===
Technical contacts: Our IRC channel, our mailing list, or contact [[User:Strangerke|Arnaud Boutonné]] or [[User:criezy|Thierry Crozat]] - <span style="color:red">Criezy will most likely not be available</span>
We have two suggested tasks in the direction of text-to-speech:
'''Adding text-to-speech support in Mortville Manor'''
Difficulty: Easy (depending on how you want to approach the task); just knowledge of C++ and some experience programming should suffice.
The original [[Mortville Manor]] game used a speech synthesis system based on PC Speaker.
Our hope for this task would be to replace this obsolete speech synthesis with an external dependency which would allow the implementation of modern text-to-speech generation, in (at least) French, German and English. We have some ideas for which libraries would be suitable, but we're also open to suggestions (and offering the option of platform-specific APIs is also a possibility).
'''Adding speech synthesis of on-screen text for people with reduced sight or for learning to read'''
Difficulty: Medium. You'll need to be comfortable enough with C++ to be able to (quickly) understand enough of the existing engine code in order to add this functionality.
Using the same library used in the previous task, it would be nice to have similar text-to-speech generation for other games. The challenge here would (hopefully) be to add the necessary interfaces for providing the text, and any needed other information (such as timing), to individual game engines. Part of your preparatory work would be working out (with our help) which engines to target.
This task would allow people suffering from sight issues to play more games in ScummVM, and it could also be very useful to help people who are learning to read.
Alternatively (or additionally), you could consider adding other accessibility features.
208

edits

Navigation menu