Skip to content

Conversation

vitorleone
Copy link

This commit introduces a new feature that allows the Android application to download the game data from a Cloudflare R2 bucket, extract it, and then launch the game.

The following changes were made:

  • Added a new DownloadActivity to handle the download and extraction process.
  • Modified the InitActivity to check for the existence of the game data and launch the DownloadActivity if it's not present.
  • Added the INTERNET permission to the AndroidManifest.xml file.
  • Added the OkHttp dependency to the build.gradle file.
  • Implemented the download and extraction logic in DownloadActivity.java.
  • Streamlined the application flow to launch the game directly after the download is complete.
  • The user is now able to play the game after downloading the game data from the Cloudflare R2 bucket.

This commit introduces a new feature that allows the Android application to download the game data from a Cloudflare R2 bucket, extract it, and then launch the game.

The following changes were made:
- Added a new `DownloadActivity` to handle the download and extraction process.
- Modified the `InitActivity` to check for the existence of the game data and launch the `DownloadActivity` if it's not present.
- Added the `INTERNET` permission to the `AndroidManifest.xml` file.
- Added the OkHttp dependency to the `build.gradle` file.
- Implemented the download and extraction logic in `DownloadActivity.java`.
- Streamlined the application flow to launch the game directly after the download is complete.
- The user is now able to play the game after downloading the game data from the Cloudflare R2 bucket.
@Ghabry
Copy link
Member

Ghabry commented Oct 14, 2025

Thank you for your contribution and the effort put into this feature. While we appreciate the intent to streamline the initial game setup process via automatic download and extraction of game data, we cannot accept this pull request at this time for several important reasons:

1. Bundling Game Data via Network is Problematic:
Hardcoding a download URL (especially one pointing to an external Cloudflare R2 bucket) raises security, privacy, and maintenance concerns. It assumes trust in an external, potentially volatile data source, and breaks the principle of keeping game assets separate from the engine.

2. Not Aligned with EasyRPG Project Philosophy:
The EasyRPG Player is a general-purpose RPG Maker engine interpreter. Automatically downloading a specific game’s data on startup shifts the Player's focus away from being a general engine and toward being a launcher for a specific game, which is outside the project's scope.

(Also you completely removed the game browser and standalone mode)

3. Increased Permissions and Footprint:
Requiring INTERNET permission and adding new network libraries like OkHttp expands the app's permissions and binary size, which is something we try to avoid unless absolutely necessary. This change introduces an additional dependency and potentially impacts users who prefer offline functionality.

4. UX and Error Handling Concerns:
While the DownloadActivity is a helpful utility, the current implementation lacks retry mechanisms, download cancellation, and fallback support, which are critical for a good user experience in unreliable network conditions.

We encourage you to consider implementing such functionality in a fork or as part of a separate launcher app for distributing your game. If you need help understanding how to better structure this for a game-specific fork, feel free to reach out.

Thanks again for your contribution and understanding.

@Ghabry Ghabry closed this Oct 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants