larsiusprime / polymod

Atomic modding framework for Haxe
MIT License
159 stars 62 forks source link

Implement modding support for mobile builds #62

Open EliteMasterEric opened 2 years ago

EliteMasterEric commented 2 years ago

It would be cool to integrate Polymod into applications targeted at Android and iOS to allow modding for mobile games, something basically unheard of for the platform.

The problem is, what would this even look like? Simply accessing the app/mods folder like on desktop platforms is not a viable option.

Since Polymod injects itself into existing backends such as Lime, we can access the file system as long as Lime can, but where should we be having users place their files? Do we access mods from a folder on the user's local storage? Is there some other abstraction we can provide that would be better for this purpose?

EliteMasterEric commented 2 years ago

This enhancement isn't urgent in any way, but it's definitely something that has a lot of potential if it could be implemented. What does "installing a mod" look like on Android, which has limited file system capabilities that are unintuitive to the average user? What does "installing a mod" look like on iOS, where file systems are even more restricted?

It's absolutely an area with a ton of potential. The basics are simple integration of a level editor/custom levels into games built on Haxe, but the ceiling is fully moddable games on a mobile platform. Imagine if Minecraft Pocket Edition was as easy to mod as the desktop version!

@larsiusprime It'd be cool to know your thoughts, as an experienced designer, on Polymod's potential for mobile targets. On desktop it's simply a matter of "create a folder that users place mods into." What does Polymod look like on a phone?

larsiusprime commented 2 years ago

Hmmm, this is an interesting question. I have to admit I don't have a lot of experience with phones and a lot of it is going to come down to what the API's allow you to do. Apps clearly are able to ask for permission to access files that the user has, and I think the simplest way to make things work is going to be relying on mods that are bundled up as single files (zips or equivalent, presumably). Classic old-school mods would have to ask the mobile OS api for permission to launch the file picker (or perhaps grab something off of a service like google drive).

But in terms of UX what the mobile audience probably expects is for the game developer to hook into some cloud hosted mod service where they can browse available mods, manage, and install them, without ever "leaving" the app.

On Fri, Nov 19, 2021 at 10:21 PM Eric Myllyoja @.***> wrote:

This enhancement isn't urgent in any way, but it's definitely something that has a lot of potential if it could be implemented. What does "installing a mod" look like on Android, which has limited file system capabilities that are unintuitive to the average user? What does "installing a mod" look like on iOS, where file systems are even more restricted?

It's absolutely an area with a ton of potential. The basics are simple integration of a level editor/custom levels into games built on Haxe, but the ceiling is fully moddable games on a mobile platform. Imagine if Minecraft Pocket Edition was as easy to mod as the desktop version!

@larsiusprime https://github.com/larsiusprime It'd be cool to know your thoughts, as an experienced designer, on Polymod's potential for mobile targets. On desktop it's simply a matter of "create a folder that users place mods into." What does Polymod look like on a phone?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/larsiusprime/polymod/issues/62#issuecomment-974590842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFUN6CYCDJ6SLNU5W5CA7DUM4O3ZANCNFSM5IJIBXQA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- www.fortressofdoors.com -- My design & business of game development blog

EliteMasterEric commented 2 years ago

The idea I thought of is something like this:

  1. The user opens the mod menu; aside from the standard controls for enabling/disabling/reordering mods, there is a Install Mod button.
  2. The Install Mod button will pull up a QR code scanner.
  3. Users can scan QR codes, which will contain a URL linking to the mod ZIP.
  4. Once scanned, the app will CURL the mod into a mods folder on the device.
  5. Polymod then acts as normal, using the mods folder to load content.

The cloud-hosted mod service is a good idea for larger projects, but for smaller ones you don't want to have to maintain an account system etc.

I think the ability to use cURL to download mods should be an integrated utility in the library, since the functionality could also be used to create a mod updater. Making a separate issue for that idea.

larsiusprime commented 2 years ago

Ooh yeah that could work so long as api permissions allow it … suppose there are security concerns em to address eventually too

On Sat, Nov 20, 2021 at 8:40 PM Eric Myllyoja @.***> wrote:

The idea I thought of is something like this:

  1. The user opens the mod menu; aside from the standard controls for enabling/disabling/reordering mods, there is a Install Mod button.
  2. The Install Mod button will pull up a QR code scanner.
  3. Users can scan QR codes, which will contain a URL linking to the mod ZIP.
  4. Once scanned, the app will CURL the mod into a mods folder on the device.
  5. Polymod then acts as normal, using the mods folder to load content.

The cloud-hosted mod service is a good idea for larger projects, but for smaller ones you don't want to have to maintain an account system etc.

I think the ability to use cURL to download mods should be an integrated utility in the library, since the functionality could also be used to create a mod updater. Making a separate issue for that idea.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/larsiusprime/polymod/issues/62#issuecomment-974745336, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFUN6F54XGTXK5KIKAPXQDUNBLYRANCNFSM5IJIBXQA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- www.fortressofdoors.com -- My design & business of game development blog