Mobile touchscreen performance expectation.

Started by
6 comments, last by Anri 5 years, 6 months ago

I'm working on a small arcade-style Android game for phones and tablets( using Android Studio and Java ) and I'm not 100% satisfied with the touch screen controls.  The game has five buttons for control;  left and right, and three buttons for firing three different bullet types( essential to the main mechanic of the game itself ).

The irony is that they respond very well even with scaling on different devices and the coding is bullet-proof( zero crashes or bugs since extensive testing ),  but as the game is as fast paced as Space Invaders or Columns it kinda falls apart as I switch between pressing buttons in the heat of the action.  I am now at the point where I'm having to slow the game down to make it easier to cope with the touch-screen buttons, or adopt a harsh attitude that the player will need an Android-compatible gamepad for the best possible experience...

Quality controls with standard input is something I take very seriously, but in this case I feel action games are not suited for tablets without a gamepad.  Would this be a correct assumption or could I do better?

Any thoughts would be most welcome - even if you are just a gamer.

 

Cheers.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

Advertisement

First you need to know whenever youre using java and override touch events they are spawned in another thread than main one so they are separated from drawing thread etc. Maybe you have synchronization problems.

Another thing would be to to poll events in main game loop so each frame you draw you first process the input then draw.

On my phone I noticed holding one point, then touching another while still holding, will make it forget the first, though it might depend on the app. Maybe you are experiencing something similar and could work around it?

Touchscreens do simply suck for a lot of game input, it is odd where we've ended up in a situation where having awful input controls is standard on phones, where there were even portable devices in 1980 that had better input...

https://en.wikipedia.org/wiki/Game_%26_Watch

It is one of those odd things, I don't know whether it is because google haven't encouraged game controllers, or that the market hasn't been buying devices with buttons. You could say that dedicated gamepads are the ideal solution, but then loads of games don't support gamepads, probably simply because they aren't standard, a chicken and the egg situation (and google makes it overly difficult to support them, they aren't even in the emulator for instance).

Another 'odd' decision is that android APIs don't seem to support right clicking with mice. Everything is touchscreen orientated, your mouse is a finger. Which makes it a challenge to make any kind of 'desktop like' app on android. I've love to know the (presumably commercial) reasoning behind actively degrading experience with mouse. One cynical reason is that google presumably make a lot of their money by people mistakenly clicking adverts by mistake with touchscreens, and this is less likely with mouse.

I appreciate the feedback and have done some more testing with it in mind...

The "touch" seems to work fine with connection with the tips of my thumbs, but not so much on the undersides - as you would with a gamepad.  I notice this is easier to do with a smaller device, and with my Huawei y300, where its not so much a problem and actually works very well...

However, it is harder to do on my Nexus 7 Tablet...which is because its clamped into a sodding protective cover!  Taking it out of the cover and suddenly its not so much a problem and a far better experience...

Sigh, if there was ever a time for face-palm then its definitely now!  So really, the problem appears to be a matter of thumb reach of the buttons.

Improvements I can think of is placing the left & right buttons closer to the left-hand side of the screen, and instead of the three buttons current "corner" arrangement I shall try them in a vertical arrangement alongside the right-hand side of the screen...

Once again, thank you all for the feed back and your time.  I feel I am much closer to a far better control system for my game.

Cheers!

Steve.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

12 hours ago, wintertime said:

On my phone I noticed holding one point, then touching another while still holding, will make it forget the first, though it might depend on the app. Maybe you are experiencing something similar and could work around it?

your input implementation just sucks alot, you need to implement your own system

11 hours ago, _WeirdCat_ said:

your input implementation just sucks alot, you need to implement your own system

Which, for me, was a pain in the ass but definitely worth it.  Pointer IDs and how they are stored as another finger is added and taken away reminds me of that bit in Clash of the Titans...

"They have but to solve a riddle..."

"A Riddle? Is that all?"

"Ah! But the riddle changes for each suiter..."

...the stress and frustration sent me to the land of nod!  If anyone is thinking of using a list to add or remove finger touches - DONT!  Create an array of set size and be done with it.  Five finger inputs should be plenty, unless one is an Octopuss...  o_O

 

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

This topic is closed to new replies.

Advertisement