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

Jump to navigation Jump to search
m
Fixed my nick
(→‎Infrastructure Tasks: remove native macOS port task - I feel the switch to SDL2 fixes the issues we had with the SDL port)
m (Fixed my nick)
(7 intermediate revisions by 4 users not shown)
Line 29: Line 29:
== Tasks ==
== Tasks ==


General contacts: Our IRC channel, our mailing list, or contact [[User:Sev|Eugene Sandulenko]], [[User:DJWillis|John Willis]], [[User:Strangerke|Arnaud Boutonné]], [[User:LordHoto|Johannes Schickel]]
General contacts: Our IRC channel, our mailing list, or contact [[User:Sev|sev]], [[User:DJWillis|John Willis]], [[User:Strangerke|Arnaud Boutonné]]


The ideas here are meant to be just that - '''ideas'''. We hope they help inspire your proposals, but you should also consider suggesting your own completely new project ideas. Pick something you really want to see improved/fixed, and come and talk to us about it!
The ideas here are meant to be just that - '''ideas'''. We hope they help inspire your proposals, but you should also consider suggesting your own completely new project ideas. Pick something you really want to see improved/fixed, and come and talk to us about it!
Line 43: Line 43:
=== Improve touchscreen GUI ===
=== Improve touchscreen GUI ===


Technical contacts: [[User:Sev|Eugene Sandulenko]].
Technical contacts: [[User:Sev|sev]].


Difficulty level: Easy (code) / medium (architecture). You'll need a touchscreen device which can run ScummVM, to test on.
Difficulty level: Easy (code) / medium (architecture). You'll need a touchscreen device which can run ScummVM, to test on.
Line 56: Line 56:
=== Improve Main GUI ===
=== Improve Main GUI ===


Technical contacts: [[User:Sev|Eugene Sandulenko]].
Technical contacts: [[User:Sev|sev]].


Difficulty level: Easy.
Difficulty level: Easy.
Line 70: Line 70:
== Game Tasks ==
== Game Tasks ==


Technical contacts: Our IRC channel, our mailing list, or contact [[User:Sev|Eugene Sandulenko]], [[User:DJWillis|John Willis]], [[User:Strangerke|Arnaud Boutonné]], [[User:Md5|Filippos Karapetis]],
Technical contacts: Our IRC channel, our mailing list, or contact [[User:Sev|sev]], [[User:DJWillis|John Willis]], [[User:Strangerke|Arnaud Boutonné]], [[User:Md5|Filippos Karapetis]],


If you already have reverse engineering experience, you could consider working on one of the external in-development game engines, or even on support for a new game. However, doing this kind of work is very difficult and time-consuming - you would have to convince us that you have the necessary skills to actually be sufficiently productive, probably by demonstrating some actual progress first.
If you already have reverse engineering experience, you could consider working on one of the external in-development game engines, or even on support for a new game. However, doing this kind of work is very difficult and time-consuming - you would have to convince us that you have the necessary skills to actually be sufficiently productive, probably by demonstrating some actual progress first.
Line 77: Line 77:


=== 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.
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 ===
Technical contacts: [[User:Sev|sev]]
Difficulty level: Medium. You'll need a reasonable level of programming experience, and some network development experience.
[[Moonbase Commander]] is a SCUMM-based strategy game. The original supported up to 4 network players. We have the source code for the original game, but it is based on top of Microsoft DirectPlay. We need to do a clean reimplementation, not necessarily compatible with the original. It may also require some basic server side for discovery. The networking libraries libcurl and SDL_Net are already part of ScummVM.


=== Wintermute 3D ===
=== Wintermute 3D ===
Line 98: Line 106:


'''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
=== Stark Engine improvements ===
Technical contacts: [[User:bgK|bgK]]
Difficulty level: Medium
The Longest Journey is a 2.5D point and click adventure game released in 1999 by Funcom. ResidualVM has a reimplementation for most of the game engine. However some important parts are missing:
* The original menus
The game menus allow displaying the main character's diary, viewing past cutscenes, loading and saving, ... Implementing the original menus is valuable to the players because of the very nice art they display.
The menus are semi-data driven. This task involves implementing the shared draw logic as well as the screen-specific gameplay logic.
* The characters' shadows
ResidualVM uses programmable pipeline OpenGL (shaders) to display the game world. For this task, it is required to write the code responsible for drawing the characters' shadows using a technique such as shadow mapping.
Working on Stark can be a great experience to learn game engine programming. The engine behind The Longest Journey was very well designed. Most concepts still apply in more recent 3D game engines.
'''ResidualVM project.''' For details see http://wiki.residualvm.org/index.php/TLJ_TODO_list


=== Mission Supernova games ===
=== Mission Supernova games ===
Line 103: Line 128:
Technical contacts: [[User:Strangerke|Strangerke]] or [[User:Criezy|Criezy]]
Technical contacts: [[User:Strangerke|Strangerke]] or [[User:Criezy|Criezy]]


Difficulty level: Medium. Knowledge of German language would be a 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.


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.
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.
Line 144: Line 169:
=== Game packaging system ===
=== Game packaging system ===


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


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 152: Line 177:
=== Support for shaders and arbitrary scalers ===
=== Support for shaders and arbitrary scalers ===


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


Difficulty: Medium
Difficulty: Medium
Line 187: Line 212:


Alternatively (or additionally), you could consider adding other accessibility features.
Alternatively (or additionally), you could consider adding other accessibility features.
=== 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.

Navigation menu