Game Packaging/Android

From ScummVM :: Wiki
Jump to navigation Jump to search

Play Store Distribution

Android Play Store is one of the target platforms to allow downloading DLC from Play Store's server. For Play Store, the base ScummVM APK must be bundled together with games in an AAB (Android App Bundle) format.

The following metadata is required to package games:

  1. id (Required): It could be any string to uniquely identify the game. To start the download, id is required. Also, the download key for the game entry in ScummVM configuration file will equal to id.
  2. name (Required): Name of the game visible on DLC dialogs.
  3. The detection data for ScummVM config game entries: description, engineid, extra, gameid, guioptions, language, platform. For the data not available leave them as empty string. You might need to run the game detection code by adding a game to get these values.

The current temporary workflow for creating the ready-to-upload Play Store AAB distribution with DLC support is:

  1. Enable DLC support by using --enable-dlc with ./configure. It is disabled by default.
  2. Create the base AAB (containing only base ScummVM APK) by make -j8 androidbundlerelease or make -j8 androidbundledebug.
  3. If applicable, hardcode a new game entry with required metadata in PlayStore::getAllDLCs() function. And also, add new entry to packaging/dlc-games.json.
  4. For each game, run the packaging/package.py with --export-platform android --game [game key as per dlc-games.json] --game-location [directory for the extracted game folder] --binary-location [directory for the AAB]. You can find the ready-to-upload AAB (with all games) in packaging/output/android.