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

Jump to navigation Jump to search
→‎Game Tasks: Remove outdated SCI task
(Copied over page from 2016)
 
(→‎Game Tasks: Remove outdated SCI task)
 
(8 intermediate revisions by one other user not shown)
Line 77: Line 77:


=== Macromedia Director ===
=== Macromedia Director ===
Technical contacts: [[User:Fuzzie|Fuzzie]]
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 Python code available which can parse and display the contents of Director 2 and Director 3 'movie' files. This should be enough to implement a ScummVM engine to allow some early Director adventures to be played; for example, parsing the movie files, implementing the frame-based playback system, drawing bitmaps and shapes, playing sounds and running some basic (Lingo) scripting.
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.
 
=== Port WebVenture engine ===
Technical contacts: [[User:DJWillis|John Willis]], [[User:Md5|Filippos Karapetis]].
 
Difficulty level: Medium. You'll need to understand JavaScript, as well as a good level of C++.
 
It would be great to support games which were written for the [https://en.wikipedia.org/wiki/MacVenture MacVenture] engine from ICOM Simulations.  It was used in the late 80s and in the early 90s for 4 games. The MacVenture games are still available for purchase from [http://www.zojoi.com/ Zojoi].
 
The [http://seancode.com/webventure/ WebVenture] [https://github.com/mrkite/webventure engine] by Sean Kasun is a reimplementation of this engine, so we (hopefully) already know enough about how it works. Of course, the current code is written in JavaScript, which means we can't use it directly; a new engine needs to be written (in C++) and integrated into ScummVM.


=== Wintermute 3D ===
=== Wintermute 3D ===
Line 108: Line 99:
'''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


=== Improve SCI support ===
=== Mission Supernova games ===
 
Technical contacts: Our SCI team; talk to us on IRC, or send an e-mail.
 
Difficulty level: Hard. Good C++ knowledge and some knowledge of x86 assembly.
 
ScummVM has stable support for the older Sierra SCI games, but the newer ones -- such as Space Quest 6, Quest for Glory 4, Gabriel Knight 1 -- still need extensive work. As this is also something we are very actively working on ourselves, please come talk to us if you would be interested in helping out with reverse engineering and re-implementation.
 
=== Dink Smallwood engine (Cancelled) ===
 
Technical contacts: [[user:strangerke|strangerke]], [[User:dreammaster|dreammaster]]


Difficulty level: Medium. Good C++ knowledge.
Technical contacts: [[User:Sev|Sev]]


<strike>Dink Smallwood is an action RPG video game, developed by Robinson Technologies, at the time consisting of Seth Robinson, Justin Martin, and Greg Smith. It was first released in 1998 before being released as freeware on October 17, 1999. The game has a small but constant fan following that continues to develop add-ons for the game more than 15 years after its release. The game is also notable for its humorous dialogue and surrealistic themes in various scenes between the gameplay.</strike>
Difficulty level: Medium. Knowledge of German language would be a help


<strike>The purpose of the task is to port the available sources of Dink Smallwood on top of ScummVM's OSystem framework and to make sure it also have a good support of fan's MOD. (about 350 games currently)</strike>
There were several adventure games by Steffen Dingel, which are freeware now: http://outpost.simplicity.de/ Among them were Mission Supernova and Mission Supernova 2.


'''''This task has been cancelled due to the existence of the very good and active project [http://www.gnu.org/software/freedink FreeDink]. The scope of this project has been misunderstood when the task was added. All our apologies.'''''
We got hold of the original source code written in C with some x86 assembler. We need to rewrite these in a portable C++ and add support both Missions in one engine. If possible, a translation of the game texts into English, or developing tools for performing such translation could be a great advantage.


=== Dungeon Master engine ===
=== SLUDGE engine ===


Technical contacts: [[user:strangerke|strangerke]], [[User:dreammaster|dreammaster]]
Technical contacts: [[User:Sev|Sev]]


Difficulty level: Medium. Good C++ knowledge.
Difficulty level: Medium/Hard


Dungeon Master was released on 15 December 1987 on the Atari ST, and by early 1988 was a strong seller, becoming the best-selling game for the computer of all time.
[https://opensludge.github.io/ SLUDGE] is an engine and adventure game development environment, developed by Hungry Software, and open sourced in 2008. It has number of games created with it. The goal of this project is to port the Engine to ScummVM, so games, made with SLUDGE, could be run.
It then was ported to Amiga, PC DOS and many other platforms, with the same success. It's considered nowadays to be a reference in RPG game, possibly the title who made the genre popular.
 
The purpose of the task is to port Dungeon Master's engine and implement it on top of ScummVM's OSystem framework and to make sure it also have a good support of fan's MOD.


=== Bring your own Adventure or RPG ===
=== Bring your own Adventure or RPG ===
Line 172: Line 150:
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.


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


Technical contact: [[User:LordHoto|Johannes Schickel]].
Difficulty level: Medium. You'll need to know C++ and Objective C (and ideally have some Cocoa experience), and have a Mac.


Difficulty level: Medium. You'll need enough C++ experience and knowledge to design a suitable solution.
ScummVM's current OS X port is based on SDL 1.2, which is a dead project (having been replaced by SDL2); this means that the current state of the OS X port seems to degrade with each new OS X release. Also, functionality added in newer releases of OS X (such as the new full-screen modes introduced in 10.7) are not available for use in ScummVM.
 
One option for solving this would be to create a backend for OS X that doesn't use SDL. This would mean writing/porting replacement code for the parts where SDL currently handles things (i.e. at least audio, video and input, and ideally other details too). Preferably, such a project would be to retain backwards compatibility with 10.2 as we have today, while also allowing for a good user experience on the very latest OS X versions.


Our configuration currently doesn't support all the audio and MIDI options we would like, and even common configurations cannot always be conveniently specified.
=== Game packaging system ===


See [[OpenTasks/Audio/Audio Output Selection]] and [[OpenTasks/Audio/MIDI Device Configuration]] for more discussion and some technical details of two possible tasks in this direction.
Technical contacts: [[User:Sev|Sev]]


=== Hardware accelerated blitting ===
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.
Technical contacts: preferably [[User:LordHoto|Johannes Schickel]], otherwise [[User:somaen|Einar Johan Trøan Sømåen]], [[User:Fuzzie|Alyssa Milburn]] or [[User:Digitall|David G. Turner]]


Difficulty level: Medium. Some knowledge of graphics APIs (ideally OpenGL) would help, and ideally a mobile device of some kind which can run ScummVM, to experiment with.
Examples are: Linux packages, Google Play, Apple App Store, Steam, ForgeTV store, and anything beyond that.


Some engines (such as Wintermute and Broken Sword 2.5) would greatly benefit from hardware acceleration for their graphics code. Since this is not possible for all ports, an important part of this work would be developing a suitable API.
=== Support for shaders and arbitrary scalers ===


See [[OpenTasks/Graphics/Hardware Acceleration]] for more details.
Technical contacts: [[User:Sev|Sev]]


=== Native OS X port ===
Difficulty: Medium
Technical contacts: [[User:somaen|Einar Johan Trøan Sømåen]], [[User:aquadran|Paweł Kołodziejski]].
 
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] needs to be completed, basically, it is just rebasing of the patch. The rebasing was started here: https://github.com/digitall/scummvm/tree/gsoc2012-scalers-cont


Difficulty level: Medium. You'll need to know C++ and Objective C (and ideally have some Cocoa experience), and have a Mac.
Modern systems often have OpenGL with shader support. RetroArch project shaders are standard for them in open source gaming. LordHoto started work on adding support for those to ScummVM. His unfinished work could be found here: https://github.com/lordhoto/scummvm/tree/libretro-shader


ScummVM's current OS X port is based on SDL 1.2, which is a dead project (having been replaced by SDL2); this means that the current state of the OS X port seems to degrade with each new OS X release. Also, functionality added in newer releases of OS X (such as the new full-screen modes introduced in 10.7) are not available for use in ScummVM.
We need to add both improvements to our scaler system. Recent PSP2 port already adds some basics for scalers, particularly in GUI, so that could be reused too.


One option for solving this would be to create a backend for OS X that doesn't use SDL. This would mean writing/porting replacement code for the parts where SDL currently handles things (i.e. at least audio, video and input, and ideally other details too). Preferably, such a project would be to retain backwards compatibility with 10.2 as we have today, while also allowing for a good user experience on the very latest OS X versions.
We need to have it tested on desktops and at least Android, but preferably also Windows and iOS.


=== Text to speech ===
=== Text to speech ===
Line 223: Line 204:


Alternatively (or additionally), you could consider adding other accessibility features.
Alternatively (or additionally), you could consider adding other accessibility features.
=== Cloud integration ===
Technical contacts: [[User:Sev|Eugene Sandulenko]], [[User:uruk|Peter Bozso]] or talk to us on IRC or send an e-mail
Difficulty: Medium. You'll need knowledge of C++, and learn or know about APIs of selected cloud services.
Cloud integration would make it possible to transparently share savegame and game data files between devices. The more providers (Google Drive/Dropbox/OneDrive/OwnCloud/etc...) we could support, the better. ScummVM supports many platforms (Windows, Mac OS X, Linux, iOS, Android, and many others), so any solution would also need to be sufficiently portable.
It would be also nice to have an option for users who don't want to use a cloud service or can't access their device's file system fully (for example on iOS), where they can configure their own server as the data provider.


=== SCI tools ===
=== SCI tools ===
178

edits

Navigation menu