-
-
Notifications
You must be signed in to change notification settings - Fork 375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iOS support #7043
Comments
Hi @ribtoks , as of now we don't have plans to release fheroes2 on iOS due to lack of resources. Android release was necessary due to openness of the platform and amount if potential players. iOS is much more restrictive in this matter and also we have no copyright rights to ask any money for the engine. So free is the only option. As a conclusion, we are not saying a no but for now we can't focus on it unless someone steps in and helps with porting to iOS. |
Thank you for your response @ihhub . I hope the situation with iOS will change in the future and I wish best for fheroes2 project! |
@ihhub I'm an iOS engineer. I'm new to this project but a long time heroes fan. Just curious, if I wanted to explore adding to iOS support does the project have a general idea on how iOS support would be added? I'm wondering if looking at the Android implementation and straight porting relevant code or investigating however Android reused code would be useful. |
Technically, the GPL does not prevent you from asking for money for the engine :)
Most of Android code is related to the "companion" toolset app which is used to provide the assets of the original game and manage the save files (since on modern Android versions you can't just read contents of some public directory on SD card or tell a user to copy assets to the app data directory - exactly the same as on iOS by the way). The only our Android class that is directly related to the game engine itself is this one, and it's relatively straightforward. Here is a checklist, as well as a kind of retrospective of porting this game to Android, many things that are necessary for the game to work on handheld devices with touchscreen (such as emulation of right mouse button) are already implemented. SDL in addition to Android also supports iOS, so technically everything is possible, I believe. |
Awesome thank you for all of this, I'll start checking it out. |
Hi @dbratcher , also if you think of an easier way for end-users to install ipa file please feel to suggest. |
AFAIK there is no way to install an ipa file without jailbreaking. |
Yea I'm not aware of another way. I think listing on the Apple App Store for free shouldn't pose too much trouble. It would be easy to have a donate button that would probably pay far more than the fee of having an account. |
@dbratcher @oleg-derevenetz this is not true and it's possible to install - see VCMI instructions. In fact, I have VCMI installed on iPad (using Kodi guide), signed by my developer certificate and it works. The first hard thing is to build an |
So end user needs to have the developer certificate which means that we are no longer actually talking about the "end user" :) People with developer certificate can just build fheroes2 from source using Xcode (and don't use ipa at all), but what is the percentage of such people among the total number of iOS users? And if they did not enroll the App Store Developer program, then their developer certificates will only survive for 7 days. |
This is a valid point. I would just note that a) it will be at least some way to use it on iOS and b) it's good to start somewhere |
Can I build it today using XCode and install on an iOS device? |
No, not today :) At a minimum, some refinement will be required, although, I hope, not much (compared to desktop -> Android), since some changes (related to handheld devices in general) are universal. |
I'm working to add support here: https://github.com/dbratcher/fheroes2/tree/ios_support |
I suppose a kind of "launcher" UI will be needed on iOS as well to handle issues with original game assets in some user-friendly way. Also I'm not sure how iOS works with MIDI (macOS has native support for MIDI playback). |
Hi @dbratcher , once you are ready please create a pull request. I believe we can do a launcher later. Also are you able to build it using GitHub Actions? |
@ihhub I'll clean up the code first, I'd be a bit embarrassed to make a PR in its current state 😅 things on my radar:
Long term efforts
|
Hi @dbratcher ,
Are you sure about it? Don't you use a demo version of the game? |
Yea I'm sure, if you look at my code it's real hacky. I use a good old game version |
Hey @dbratcher No pressure really, just curious if you had any luck with your proof-of-concept? Do you think what you did is somewhat reproducible so that for example I can try it "on my computer"? |
@ribtoks unfortunately I haven't touched it since that first effort awhile back. If you wanted to try and replicate what I did you could checkout my branch and then look at how I added the required data files in this commit. The data files are ignored by the git repo so they're not checked in and you'll need to get them from a game install. That commit also shows the very hacky code I added to load the data files, I don't know c++ and had a lot of trouble with it. You have to make sure the files are copied over to the app bundle as well I believe. Let me know if you try anything out and get it working 😁 If not, I do still plan on making this easier to set up and use when I get some more time. |
+1 would love to play this on iPad similar as H3 VCMI |
Being able to play on iOS devices is fantastic VCMI project forced me to handle how to operate with AltStore to play H3, Thank you for your contribution! |
hey all, really sorry I haven't been able to spend more time on this. I put what I had in a pull request here. Unfortunately I can't spend much time on it right now, but maybe it can help someone else if they want to clean it up for possible future iOS support |
Preliminary checks
Describe the problem requiring a solution
I think this game would be perfect on an iPad, but currently there's no way to launch it...
Describe the possible solution
You could provide an .ipa file (like the VCMI project) for side-loading. Ideally it will of course be a paid app on the AppStore (so that you could receive some money)
Additional info
No response
The text was updated successfully, but these errors were encountered: