Open main menu

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

→‎Infrastructure Tasks: Merging two ideas
(→‎Game Tasks: add penumbra)
(→‎Infrastructure Tasks: Merging two ideas)
Line 130: Line 130:
Finally, there's always plenty of other practical tasks on our wishlist!
Finally, there's always plenty of other practical tasks on our wishlist!


=== Game packaging system ===
=== Automated system for packaging freeware games with ScummVM ===


Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]]<br/>
Technical contacts: [[User:Sev|sev]] or [[User:DJWillis|DJWillis]]<br/>
Size: Full GSoC
Size: Full GSoC


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 that 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.
==== Background ====


Potentially and in the future this system could also be used for DLC on platforms that support it, like Steam, Android Play Store or Apple App Store, though support for Android and iOS is out of scope for this project.
ScummVM is distributed on our website as a standalone app without any games included, which cannot be used until games are added.


Examples are: Linux packages, Google Play, Apple App Store, Steam, ForgeTV store, and anything beyond that.
Thanks to generous support from game authors, the ScummVM website [offers eleven freeware games for download](http://scummvm.org/games/), but they need to be manually downloaded and added to ScummVM.


=== In-app downloads of demos, freeware games, and addons ===
==== Proposal ====
Technical contacts: [[User:Sev|sev]]


==== Background ====
It would be great to develop a game-agnostic, automated system that would let us describe a game, e.g. provide screenshots, game descriptions, metadata, and package it for different platforms. For example, we could have ''Beneath a Steel Sky'' bundled together with ScummVM, with its own logo, description, with the resulting distributables ready to upload to various platforms (Linux packages, Google Play, Apple App Store, Steam, ForgeTV store, and anything beyond that).
Similar to "Game packaging system", provide a means for users to download [https://www.scummvm.org/demos/ demos], [https://www.scummvm.org/games/ freeware games], and game [https://www.scummvm.org/games/#addons addons] (e.g. subtitle packs) from within the ScummVM app.


These downloads are all currently hosted on https://www.scummvm.org/. In order to use them, the user must go to the website, find the listing, download and extract the files, place them in a location of their choosing, open ScummVM, navigate to the downloaded files, and then navigate through any additional dialogs.
==== User Benefits ====
 
==== Proposal ====
It would be much better to add functionality to ScummVM allowing for users to


# Browse demos and freeware games within the app
Users will be able to download a single distributable for a particular game, such as ''Beneath a Steel Sky'', and run it without any additional configuration. This is especially useful on platforms where apps are typically distributed through an app store (such as iOS).
# Click a button to download and automatically add it to ScummVM (behind the scenes, it downloads to a path such as the "Application Support" folder, just like ScummVM preferences and logs)
# Manage and delete existing installations downloaded in this manner


This feature would be able to be able to be enabled or disabled during compilation. It would presumably be enabled on general desktop releases (e.g. Windows, macOS, Linux), but disabled on bundled releases (e.g. version included with GOG.com or Steam games) and releases for limited hardware or no internet connectivity (e.g. handheld console ports).
By being a platform-agnostic automated process, this would allow for wider distribution on


User benefits would be a better first-time experience (no more opening ScummVM and finding they can't do anything yet), greater discoverability of the sorts of games that ScummVM supports, and greatly simplifying what is now a multi-step process.
These automated scripts will also provide a reference for game authors who want to bundle their own games with ScummVM to be sold for their own.


==== Examples ====
==== Future Ideas ====
Examples of this sort of in-app download feature in other open-source projects include:


* The [https://github.com/OpenRA/OpenRA/pull/11375 content installer] in [https://www.openra.net OpenRA] (allows for downloading ''Command & Conquer'' games released as freeware by EA)
Potentially and in the future this system could also be used for DLC on platforms that support it, like Steam, Android Play Store or Apple App Store. However, DLC support for Android and iOS is out of scope for this project.
* The [https://github.com/OpenEmu/OpenEmu/blob/28ef6e493aadea2be7815158ccb05d37ad43ae17/OpenEmu/HomebrewViewController.swift "homebrew tab"] in [https://openemu.org OpenEmu] (allows for downloading "fanmade" homebrew ROMs with no commercial assets, freely released by the authors)


=== Support for shaders and arbitrary scalers ===
=== Support for shaders and arbitrary scalers ===
TrustedUser
567

edits