Open main menu

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

 
(28 intermediate revisions by 6 users not shown)
Line 19: Line 19:
One popular type of task is to improve our support for the games you love, whether this means a new game engine, or helping us to perfect an existing one.
One popular type of task is to improve our support for the games you love, whether this means a new game engine, or helping us to perfect an existing one.


Sometimes source code is available - in recent summers, students integrated code supporting games such as [[Sfinx]] ([http://urukgsoc.blogspot.com/ blog]), [[The Prince and the Coward]] ([http://lukaslwgsoc.blogspot.com/ blog]) and [[Avalanche]] into ScummVM. In fact, our support for the [[Wintermute]] engine was not only started by a GSoC student ([http://summermute2012.blogspot.com/ blog]), who integrated the code into our tree, but also [[Wintermute/Games|drastically improved]] by another student a year later ([https://icodelikeacow.wordpress.com/ blog]).  
Sometimes source code is available - in recent summers, students integrated code supporting games such as [[Sfinx]] ([http://urukgsoc.blogspot.hu/search/label/CGE2 blog]), [[The Prince and the Coward]] ([http://lukaslwgsoc.blogspot.com/ blog]) and [[Avalanche]] ([http://urukgsoc.blogspot.hu/search/label/Avalanche blog]) into ScummVM. In fact, our support for the [[Wintermute]] engine was not only started by a GSoC student ([http://summermute2012.blogspot.com/ blog]), who integrated the code into our tree, but also [[Wintermute/Games|drastically improved]] by another student a year later ([https://icodelikeacow.wordpress.com/ blog]).  


[[File:GSOC_EMI.png|160px]] [[File:GSOC_zvision.png|152px]] [[File:GSOC_EMI_asm.png|147px]]
[[File:GSOC_EMI.png|160px]] [[File:GSOC_zvision.png|152px]] [[File:GSOC_EMI_asm.png|147px]]
Line 99: Line 99:
In 2012, support for games using the Wintermute engine was merged into ScummVM, but it still lacks support for games which use 3D graphics. It would be great to be able to play these games in ResidualVM!
In 2012, support for games using the Wintermute engine was merged into ScummVM, but it still lacks support for games which use 3D graphics. It would be great to be able to play these games in ResidualVM!


See [http://wiki.residualvm.org/index.php/GSoC_Ideas#Wintermute_3D_port Wintermute 3D] for more details.
'''ResidualVM project.''' See [http://wiki.residualvm.org/index.php/GSoC_Ideas#Wintermute_3D_port Wintermute 3D] for more details.


=== In Cold Blood engine refactor ===
=== 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]]
Technical contacts: [[User:somaen|Einar Johan Trøan Sømåen]], [[User:aquadran|Paweł Kołodziejski]], [[User:joostp|Joost Peters]]


Difficulty level: Medium/hard
Difficulty level: Medium/hard. You'll need to be able to understand the relevant parts of the engine.


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 ===
=== Improve SCI support ===


Technical contacts: TBD
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.
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.
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.
<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>
<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>
'''''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.'''''
=== Dungeon Master engine ===
Technical contacts: [[user:strangerke|strangerke]], [[User:dreammaster|dreammaster]]
Difficulty level: Medium. Good C++ knowledge.
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.
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 ===
Technical contacts: Talk to us on IRC, or send us an email.
Difficulty: Hard. You'll need good knowledge of C++, as well as knowledge of (reading) assembly.
Our project consists of re-implementations of classic games, and we have listed
a number of potential new game engines that you could work on here on our ideas
page. However, you may have a classic 2D Adventure game or Role Playing Game
(RPG) you are interested in yourself that is suitable for ScummVM that you
would like to reverse engineer and re-implement. If so, great!
Adding a completely new game engine is not easy, and you will have to convince
us that you are aware of the challenges involved, that the game you are
interested in is feasible, and that you have the necessary skills. Preferably,
you will already have done some preliminary investigation, into for example
data file formats, disassembly, etc.
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.


== Infrastructure Tasks ==
== Infrastructure Tasks ==
Line 127: Line 171:


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 iOS port of ResidualVM ===
Technical contacts: [[User:aquadran|Paweł Kołodziejski]], [[User:somaen|Einar Johan Trøan Sømåen]]
Difficulty level: Medium. You'll need to know C++, Objective C, and have some experience with iOS development. You'll also need a (jailbroken) iOS device, preferably both iPhone and iPad, and the official iOS development environment (on a Mac).
Currently ResidualVM has an (in-progress) Android port, but it lacks an iOS port. This task is about to make it for iPhones and iPads.
See [http://wiki.residualvm.org/index.php/GSoC_Ideas#iOS_port_of_ResidualVM iOS Port] for more details


=== Improve audio device configuration ===
=== Improve audio device configuration ===
Line 189: Line 223:


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 ===
Technical contacts: our SCI team; talk to us on IRC, or send an e-mail
Difficulty: Medium. You'll need to know or learn about SCI internals.
We're in the process of reverse engineering modern SCI games (SCI32 games, from the generation of Gabriel Knight 1, Quest for Glory 4, Space Quest 6, etc.). For testing and debugging purposes, having access to good tools to study data files, resources, scripts, and run-time behaviour can be very useful. A number of such tools already exist, including some of our own tools, tools from FreeSCI which need porting to ScummVM, and a few external tools. You may identify gaps in the currently available tools, and in discussion with our SCI development team, propose ways of improving or integrating these tools, with the goal of making it easier to develop support in ScummVM for SCI32 games.
81

edits