Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit) (+1)

I see; I’ll see if I can somehow get this supported despite also having F-Droid, as I assume most users of Mitch also have F-Droid installed. And it’s really annoying I can’t use the same signing key on F-Droid and Itch, unless I wait a week for F-Droid’s build and then manually download F-Droid’s APK and upload it here.

For now I put the F-Droid link in the description here.

Thank you for your quick responses and careful consideration.

I just tried the F-Droid version on my Android device. It’s an Anbernic RG353P (one of these emulation handhelds from China) and I’m having a few issues with the game.

Firstly, this system has a 4:3 aspect ratio and the game seems to display in 16:9 letterboxed. The screen is already a bit small, and this letterboxing reduces visibility even further.

Secondly, there doesn’t seem to be any controller support. I tried pushing all the buttons on the integrated gamepad fruitlessly. While it’s certainly possible to use the touchscreen on this device, it’s small and hard to press compared to a smartphone. Furthermore, there’s many Android devices out there without a touchscreen such as the Nvidia Shield, Amazon Fire TV, and the infamous kickstarter console OUYA.

Lastly, I switched the graphics settings to lowest and it’s still a bit choppy to play which is surprising due to the 2D nature of the game.

If you’re interested, I’ve been journeying through itch and I’ve compiled a list of games I found working perfectly for this device. https://itch.io/c/3059442/anbernic-rg353p

(+1)

I agree it’s not running optimally on mobile yet.

As for aspect, this is actually important for gameplay, so I will not change that. Letterboxing is necessary here.

Controller support works for me - when I plug in an Xbox game pad into my Pixel phone via USB Type-C to Type-A adaptor, it just works. However, I do not know what decides whether a controller is supported or not. With another gamepad I have, I get no success but just this message in logcat:

01-27 19:17:43.488 15781 15814 I GoLog : 2023/01/28 00:17:43.488626 [ERROR] gamepad Generic X-Box pad (05000000d620000002280000ff073f00) has no standard layout - cannot use

This is likely a bug in Ebitengine that should be possible to fix soon. Not sure if you get the same message.

Performance is indeed a rough spot - I am rather sure it could be faster if Ebitengine did a better job, but it doesn’t. But do note that the visibility overlay (what makes those shadows) is quite a performance eater - on my Moto G7 Play, which I consider performance-wise the absolute minimum, only lowest settings are smooth (the game does however notice that and after about a minute automatically downgrades to those settings). Without those shadows, however, this game outright cannot work.

So I do not consider Android a recommended platform for it yet. Maybe once performance issues get better.

(1 edit) (+1)

Seems like the condition for gamepads right now is being listed in https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt#L1560 for Android.

When I clone the line of another Xbox gamepad with my ID, my game recognizes the aforementioned Xbox knockoff without problems.

Aspect ratio being important for gameplay is something I’ve noticed before, so that’s understandable. Perhaps you could add a “fullscreen” option which maintains the aspect ratio but fills the whole screen. I’m not generally a fan of the stretched look but in some cases, it can be an acceptable compromise.

Your mention of the Xbox controller sounds familiar to me. I had a similar discussion with the developer of another game https://dunkelgrau.itch.io/obgoose/comments

I think what’s happening is that indie developers tend to implement controller support on Android and test functionality with the standard Xbox controller and there’s some fundamental difference that prevents other more generic gamepads from working. I know it’s possible to support gamepads pretty universally on Android as that’s what the games in the collection I linked seem to do. However, I don’t know the specifics for Ebitengine.

(+1)

Yeah; I will see if I can patch Ebitengine to support that. It is actually rather weird that it does not and I didn’t expect that, as on Android’s own APIs the buttons are already all mapped to standard layout.

So good chances this will be a simple patch.

(+1)

As for aspect ratio, “soon” there will be an option for it, but I am waiting for Ebitengine 2.5 to stabilize first, as the code for this is in a way that differs from the Ebitengine 2.4 way of doing this so I put this on my 2.5 branch.

In the place where the desktop setting has a fullscreen option, the mobile version will have a stretch/letterbox option.

(+1)

FYI current release has massive fixes for controller support on Android - I wonder if that helps with your device. Now finally, controllers not listed in gamecontrollerdb.txt should work, in particular virtually any Xbox and PlayStation 5 compatible controllers should work.

(3 edits)

Controller support is working pretty great now, but it would be nice if there was a way to hide the on-screen controls. Perhaps by detecting when a controller is being used and hide them automatically or by a toggle in the settings menu.

I also had great difficulty using the UI editor to move and resize the on-screen controls. Like the zone you have to aim for is so small and it would only resize a little at a time before stopping. Also I would accidentally “reset to defaults” because I’m pressing on the controls as I’m trying to move them around.

(2 edits)

I need to look into that, that touch controls “do something” while moving them is not intended. Can’t find the cause in code, but will try to see if I can reproduce it anywhere.

The area to hit for resizing is the edge quarter - so top 25% resize upwards, middle 50% move, bottom 25% resize downwards.

As for auto-hiding touch controls when controller is used - yeah, will do, there’s similarly an auto-show of touch controls when touch is used on “no touch by default” platforms, could basically reverse that. Filed https://github.com/divVerent/aaaaxy/issues/221 for that.