Google Summer of Code is coming to an end. Thanks to my mentors, it has been a pleasant experience.
Here are the things I have worked on during this Summer:
Universal Packaging Script
- Identify metadata requirement for DLC download support for various distribution stores. It has been compiled here.
- Create schema for metadata and JSON files like
export-platforms.jsonto maintain all required metadatas for games and how to process those metadatas for different distribution stores.
- Write a python script that takes game location, platform type and the ScummVM binary location as parameter. It will determine the output based on the
dlc-games.json. E.g. For Android Play Store, we will get a new AAB file bundled with games.
- Add entry for Android Play Store in
export-platforms.jsonand all required dependencies (bundletool.jar, python scripts, etc.).
- It takes a lot of time to package games one by one. Create an option to mass package games from a folder.
- There are some dependencies that are required to be installed on the host computer. E.g. specific version of Android SDK, Java, Python, etc. Utilize container based approach for quick setup.
In-app DLC Downloader
- Create GUI dialogs and widgets to interact with the DLC Downloader and to show download progress, in-progress DLCs, etc.
- Create DLC Manager to manage downloading DLCs.
- Create an abstract class called
Store. Different distribution store will need to implement this class using their store-specific API/SDK.
- Create a new path called
dlcspathfor storing the downloaded DLCs.
- Create a new compile time flag,
USE_DLCfor including DLC downloading support. This is disabled by default. To enable it, use
./configure. It will only be included on backends where it is supported (
- GUI dialog for DLC Downloader could see some visual overhaul like list with game icons.
- Generalize DLC to allow other types of data like themes, icons, shaders, etc. Currently, only games is supported.
ScummVM Cloud Integration for DLC Downloader
- Implement ScummVM Cloud to download games from a URL (ScummVM’s server) by utilizing existing networking methods.
- Handle zip extraction and deletion of zip after extraction.
- Improve existing method
Android Play Store Integration for DLC Downloader
- Implement Play Store DLC support by using Play Core SDK for Java.
- Create JNI methods in C++ to interact with Java code for Play Store or vice-versa. Java code utilizes the SDK to implement functions necessary for handling download.
- Create script to generate the list of assets with required details like –
nameand detection keys for ScummVM configuration like
descriptiondirectly by utilizing the