Skip to content
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

Touchscreen support #120

Open
oxodao opened this issue May 11, 2015 · 12 comments
Open

Touchscreen support #120

oxodao opened this issue May 11, 2015 · 12 comments

Comments

@oxodao
Copy link

oxodao commented May 11, 2015

Hi,
I see that left and right click rotate the thing, but I highly suggest you to add a touchscreen support like SuperHexagon on Android.
Both side of the screen rotate left, maybe add a button at the bottom.

I recently bought a Asus T200 tablet on Windows, and I miss *Hexagon on it since the desktop version of SuperHexagon can't handle touchscreen neither..

@AutoUpdatingBSoD
Copy link

Hello, you've probably forgotten about this post @oxodao since it's been more than 6 years since you wrote this.

I have a small amount of Android experience via Godot Engine and Android Studio. I don't know whether the developers would be interested in someone developing an Android port or not, though I am aware of them wanting a MacOS port.

I can work on developing these features in my spare time, as they aren't difficult to implement given the current state of the game, and I've developed much harder given the tools that exist.

If the developers are OK with me attempting a port through Android Studio and touch support I'd be thrilled.

I also looked into Open-Source touch libraries briefly while writing this post and found this. Whether this is ideal is up to the developers. This seems like it's the best bet for multi-platform support for touch though.

@InfoTeddy
Copy link
Collaborator

Yes, you can go ahead and work on an Android port! A proof of concept would be super nice to have.

@oxodao
Copy link
Author

oxodao commented Jun 15, 2021

Hey !
Since that time I migrated back to an android tablet so I would definitely try it. I don't have enough time to help developing it though 😕

@AutoUpdatingBSoD
Copy link

AutoUpdatingBSoD commented Jun 18, 2021

@InfoTeddy sounds good. I was held up for a while but I'll let you know ASAP when and if I make a breakthrough. I'm looking into the libraries now.

@oxodao That's perfect! I don't exactly have the most powerful Android phone in the world so help here is greatly appreciated!

@oxodao
Copy link
Author

oxodao commented Jun 19, 2021

I got a OnePlus 6 so that should be enough to try it out !

@AutoUpdatingBSoD
Copy link

AutoUpdatingBSoD commented Jun 25, 2021

@InfoTeddy I'm sorry if this is an elementary question, but I can't for the life of me figure out all of the libraries are needed from Open Hexagon just from the build instructions. It does not help that different OS's have different libraries built-in so the build instructions help very little as a result.

Is there a collective list of libraries somewhere required for Open Hexagon that I can look at to see if it matches up with my Android Studio build files? (Edit: trying to narrow down some potential causes for errors) Thanks!

Edit: I've found SFML's dependencies per the Wiki, however, this doesn't change my question much. I am not a professional in any capacity at this kind of port job, I just want to see it happen which is why I'm doing it!

@AutoUpdatingBSoD
Copy link

I should also mention I'm in compilation hell right now in Android Studio, which is ( at least partially) leading me to believe I may not have the right libraries:

If I use the latest version of CMake within Android studio, it complains about naming conventions.

If I downgrade to any version below the latest, (.8 whole revisions below the latest), the Android Studio Shell complains about wanting (at minimum) version 3.14 or higher (the latest Android Studio provides is version 3.18.1)

But it gets better: The hotfixes suggest to downgrade to 3.10 or under variants that exist within Android Studio. Additionally, supplying my own version of CMake via configuration files (after figuring out how through days of research, mind you) fails when compiling JSON dependencies and skips some of the build libraries.

So right now I'm unsure if I even have the right CMake version I should be using. Sorry if that seems like a trivial question!

@Morxemplum
Copy link
Collaborator

Interesting. Are you trying to make a mobile version of Open Hexagon? If so, you'll have plenty of work you'll need to do in terms of the interface and get it to display reasonably on a mobile phone. Although I am very interested in what you'll accomplish in this area.

@AutoUpdatingBSoD
Copy link

AutoUpdatingBSoD commented Jun 25, 2021

@Morxemplum If it helps you in understanding the position I'm in with the UI, Plenty of Android games are locked horizontally (i.e. like a monitor). The two that come to mind are the 3DS Ace Attorney games that got Android ports. I'm not entirely sure that rotation must apply here. Various other Android games are locked vertically, such as Super Mario Run. Pokemon Go is locked vertically to only the top end of your screen! So rotation shouldn't be much of an issue, at least not for the initial build. Also, as I recall, Open Hexagon actually has the ability to span monitors, so visual transformation is already accounted for to some extent in the code. I'd just need to find where that is.

As for mobile development: I'm only able to adequately do that for Android at the moment. I am unable to build for the iOS platform since I do not have a Mac anymore and I want to touch as little of the code as possible, since XCode and Android Studio have C++ support built-in. I additionally want to make this as inexpensive to integrate as possible, so URE4's easy code import statements are sadly out the window. So Android Studio (and XCode should the devs want an iOS version in the future, may want a ticket for that tho...) is the way to go for this use case. I am of course well aware of Engines such as Unity and Godot that would make the actual finished product easier, but at the cost of the existing codebase. So those are out the window as well.

I will say this though, Aside from the touchscreen support, the UI devs did such a good job up to 2.0.6 that too much tweaking may not even be necessary in terms of scaling the UI. Android already has Xbox one and keyboard support built-in, so testing a proof-of-concept should be relatively easy (that's when all of the configurations are in order, of course!). After that experiment then I can worry about adding touch support, because while Android does have support for many of the same peripherals as Desktop platforms and those peripherals would make for great testing grounds, phones are meant for touch support. (Before someone mentions the several Android boxes with controller and keyboard support. Yes. I know. That's why I'm developing the Android version first before delving into touch to get my feet wet.)

I may ask on Reddit what I should do about the CMake issue thought. Searching shows that I should downgrade to 3.10 (Open Hexagon requires at minimum version 3.14). I do want to try to use Android's Cmake if possible, as the version I downloaded from CMake's Website may not be compatible with Android Studio. Just a hunch, but I can't find anything specific when searching myself because I've never ported C++ code to Android before and I have to find out somehow. I just want to help out because I really like what this project has accomplished over the years I've paid attention to it 💯

@AutoUpdatingBSoD
Copy link

AutoUpdatingBSoD commented Jun 25, 2021

For reference, if anyone knows what I'm dealing with in Android Studio at the moment, here's the log after passing --info in Android Studio with the CMake version from the website, as that's the only log parameter that provided anything useful

@AutoUpdatingBSoD
Copy link

Good News (kinda)

CMake isn't the culprit, I found out due to a complete fresh reinstall of Android Studio that SFML is the real culprit. This may be what @Morxemplum was referring to to getting it working. However, I found a guide which has SFML supported to some extent or another.

I'll take another stab tomorrow. Now that I'm getting in the weeds this is getting interesting.

@AutoUpdatingBSoD
Copy link

I know it's been a while since I last commented, but I've been on a roller coaster for better or worse. I still haven't forgotten this and want to still give both touch support and android porting a stab. I just need to dedicate some time.

@SuperV1234 I noticed you had commented on Stack Overflow about using MSYS2 with Android in a very similar means to what I'm looking at now for Open Hexagon. The issue I'm having at the moment is OpenAL support (which I'll have to recompile on Android Studio since Android Studio is most definitely out of date so bear with me on getting that fixed). Have you managed to get OpenAL running on Android using MSYS libraries? If so how would you recommend circumventing OpenAL's weird Android Support? In case I haven't already said it. I'm trying to touch as little of the code base as possible to get a proof-of-concept version working for android to see if it'll be feasible before working on getting things like mods and customization ported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants