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

osu! touch input doesn't always behave as expected #22556

Closed
dokkkku opened this issue Feb 8, 2023 · 21 comments
Closed

osu! touch input doesn't always behave as expected #22556

dokkkku opened this issue Feb 8, 2023 · 21 comments
Labels
platform/mobile priority:1 Very important. Feels bad without fix. Affects the majority of users. ruleset/osu! type:input

Comments

@dokkkku
Copy link

dokkkku commented Feb 8, 2023

Type

Game behaviour

Bug description

mobizen_20230208_155649-compressed.mp4

(Sorry for the bad quality)

To be short: Lazer doesn't know which input is supposed to be which. Im trying to drag and click with my other fingers, but at the start of the map, it just doesn't know which is which. It happens occasionally during gameplay aswell, leading to missing or failing.

Screenshots or videos

No response

Version

2023.207.0-Lazer

Logs

database.log
network.log
performance.log
runtime.log

@JeromTWinL
Copy link

JeromTWinL commented Feb 8, 2023

Happened to me, to play without failing (with tap streaming)

Touch should be in an object (to make lazer detect it as cursor).

If you released your finger in break time (or starting), click on an object (circle, slider) and lazer will detect it as cursor (if you didn't, osu!lazer will detect it as click), that's how it coded (mentioned in changelog video)

@bdach
Copy link
Collaborator

bdach commented Feb 8, 2023

I'm not entirely sure what I'm looking at, but are you tapping with one hand, and following the objects with the other hand, but also lifting the other hand as you're following the objects?

That can't really work with the way we have implemented things. As things stand, the "following" touch must be continuous. As in you can't lift it, you need to keep it pressed all the time while you're following the objects.

I'm not sure it can work any other way. If we did anything to "detect" which touch is the "object" touch based on positioning, then you could just spam touches all over and have one of them register as a hit.

@Naozumi520
Copy link

Naozumi520 commented Feb 9, 2023

I mentioned the same problem in the release video, but seems peppy didn’t saw my updated comments with video.

https://youtu.be/IKDoMMlPTr4

So far I have to not touch the screen until the first note appears, otherwise it doesn't recognize drag and touch. I'm sure what has been implemented works fine, but for some reason it doesn't start until the first note appeared.

https://youtu.be/IKDoMMlPTr4

The first attempt was when my pen on the screen before note appeared, and the second attempt was when I didn’t drag and touch before I saw the first note.

are you tapping with one hand, and following the objects with the other hand, but also lifting the other hand as you're following the objects?

Yes and its not working. osu! just see spam touches as the cursor, I can’t really drag.

This problem also seems to exist with the relax mod. When you drag before the first note appears, it won't click! And when u drag the cursor at the song loading screen, after entered gameplay drag won’t snap the cursor! It’s absolutely relate to this issue and not the touch implementation.

This two problems exists on both of my iPhone and iPad.

@dokkkku
Copy link
Author

dokkkku commented Feb 9, 2023

I first tried to drag with my right index and tap with my other 2 fingers. It detected the other 2 fingers as cursor inputs even though my right finger was already pressed.

On the second try, i tried tapping the notes first (not dragging, just tapping) and then started dragging with clicking. It worked for a moment, but then the other 2 inputs (the ones clicking, not dragging) get recognized as cursor inputs.

sorry i can't explain it better or more accurately.

@JeromTWinL
Copy link

JeromTWinL commented Feb 9, 2023

@dokkkku you're right, even if i clicked on the object (to detect it as cursor), after playing a few clicks, the cursor goes to tap-streaming (clicking) finger area in touch screen (that really disappointed me), so I play it just like normally clicking the objects (lifting up my finger and click the objects), I thought it could be my phone performance, so I took my performance tablet (Xiaomi Pad 5) and installed osu!lazer, it still happened.

I tried:
To use one finger for clicking.
To have my entire finger tip on my touchscreen. (I thought it could be poor performance of touchscreen)

Nothing did work. (Cursor keeps going to clicking area)

@JeromTWinL
Copy link

JeromTWinL commented Feb 9, 2023

This isn't an issue i guess (it's because if we clicked when cursor isn't in an object, click area will be detected as cursor), but this makes "if you leave a mistake, you should drag it again from an object to continue play" In touch devices.

@Naozumi520
Copy link

Naozumi520 commented Feb 9, 2023

This isn't an issue i guess (it's because if we clicked when cursor isn't in an object, click area will be detected as cursor).

What did you mean isn't an issue? For me I can't drag the cursor anyway when I clicked. The moment that I pressed with two other fingers it unregistered my Apple Pencil as cursor to touch but two fingers as the cursor. But what peppy say is as soon as we tap the screen then the finger will no longer be detected as holding and the two other fingers will registers as click. There must be something wrong, obviously.

but this makes "if you leave a mistake, you should drag it again from an object to continue play" In touch devices.

So far, no one has made a mistake here. You can see the OP's video and my video start over with the finger on the screen the whole time.

@JeromTWinL
Copy link

JeromTWinL commented Feb 9, 2023

This isn't an issue i guess (it's because if we clicked when cursor isn't in an object, click area will be detected as cursor).

What did you mean isn't an issue? For me I can't drag the cursor anyway when I clicked. The moment that I pressed with two other fingers it unregistered my Apple Pencil as cursor to touch but two fingers as the cursor. But what peppy say is as soon as we tap the screen then the finger will no longer be detected as holding and the two other fingers will registers as click. There must be something wrong, obviously.

As i already told "i guess" I'm not sure if it's my fault to be missed away

but this makes "if you leave a mistake, you should drag it again from an object to continue play" In touch devices.

So far, no one has made a mistake here. You can see the OP's video and my video start over with the finger on the screen the whole time.

Maybe it's not clicking when there's no objects. I was wrong.

@JeromTWinL
Copy link

JeromTWinL commented Feb 9, 2023

I carefully watched @dokkkku's video, (0.25 playbackspeed) at 0:19 his/her click didn't got recognised and detected the click as cursor (slider number: 1, combo colour: light brown) as proof, there's no slider follow circle in that slider.

@Naozumi520
Copy link

Yes. It's definitely an issue, and we've been talking about it. Try to drag with relax mod. If you hold the screen before the first note appeared there may have a chance that the relax mod stopped working.

@Naozumi520
Copy link

Naozumi520 commented Feb 15, 2023

edit.01.mp4

Sorry for the bad quality, record using laptop camera.

Recorded a video again, but using my phone in this time (iPhone 13 Pro), and the same thing happened.

Please note this is not a temporary issue, the same issue occurs on both my devices every single try, and I have reinstalled osu! on my phone (this video as result.)

@JeromTWinL
Copy link

JeromTWinL commented Feb 18, 2023

The fix is to have a "empty" tap streaming area with border line (to let users note which is which).Which shouldn't be detected as cursor, should be detected as "click" action. Just like osu!droid. (left side tap streaming area with border)

@Naozumi520
Copy link

The fix is to have a "empty" tap streaming area with border line (to let users note which is which).Which shouldn't be detected as cursor, should be detected as "click" action. Just like osu!droid. (left side tap streaming area with border)

I'm not sure if it will work cuz the touch implementation actually works, but touching before the first note makes it detect wrong (for me), which is something need to be improved. So idk if it's a good idea to change how two-fingers touch is implemented.

@JeromTWinL
Copy link

JeromTWinL commented Feb 19, 2023

I'm not sure if it will work cuz the touch implementation actually works, but touching before the first note makes it detect wrong (for me)

Touching before the first note won't detect wrong for you only, cuz it was coded like "objects = cursor" and "no objects = not cursor" if we started clicking (or dragging cursor) the cursor dragging finger will be cancelled by the clicking finger (and detect clicking finger as cursor), if you had click the first note with cursor finger, the clicking finger won't cancel the cursor (won't pull away the cursor from the cursor dragging finger), as you keep holding the cursor dragging finger on the touch screen. If you took away your cursor dragging finger (in the break time), then you should click the first note and continue dragging your finger.

Even after I just read the changelog that "side tapping feature" i tried it (after updating osu!lazer) it didn't work as I expected, and I decided to view the changelog video, they mentioned "object = cursor" that's how I understand that clicking/dragging before the first note appear won't detect it as permanent cursor, instead it will get pulled by clicking finger.

So no possibilities that you can play like osu!droid player. (dragging before first note)

@Naozumi520
Copy link

So no possibilities that you can play like osu!droid player. (dragging before first note)

I see. If that's how it's implemented, there's really nothing wrong with it. I can just tap the first note then click with two fingers as you said. But I still wish I could play exactly like osu!droid.

@NiceAesth
Copy link
Contributor

NiceAesth commented Feb 19, 2023

This also happens during a play which can cause random fails if you ever release input (can happen with an apple pencil even if you don't physically lift it!) while playing as it will start inputting movement from tapping. As it stands, I've found the feature to be a cool gimmick but far from usable.

Spinners also have the same effect as releasing input as a sidenote

@dumbuz
Copy link

dumbuz commented Mar 9, 2023

This problem would be prevented by only intending you to click OUTSIDE the playfield, which most people would do anyway. [Source: trust me bro]
Touches outside the playfield shouldn't be counted as direct touches in my opinion, but this would cause problems with people who haven't memorized their playfield exactly being confused when some inputs seemingly don't go through.

This is really difficult to make understandable almost immediately.
My only idea to make this visually clear is to show the playfield border before the map starts with text inside of it that says something like "cursor tracking" and outside the playfield border that says "button clicking"

@dumbuz
Copy link

dumbuz commented Mar 9, 2023

This also happens during a play which can cause random fails if you ever release input (can happen with an apple pencil even if you don't physically lift it!)

This does happen on my 2018 iPad Pro. It seems that Apple Pencils really do not like long strokes like what's needed to play osu!

@peppy peppy self-assigned this Mar 15, 2023
@peppy peppy changed the title 2 Hand Touchscreen issues osu! touch input doesn't always behave as expected Mar 15, 2023
@peppy peppy added the priority:1 Very important. Feels bad without fix. Affects the majority of users. label Mar 15, 2023
@peppy peppy removed their assignment Jul 26, 2023
@frenzibyte
Copy link
Member

Is there anything left to address here? Besides maybe making the touch input mapper handle touches prepared before gameplay is started (but that part is probably gonna land in PassThroughInputManager territory and into discussions that I think I'm better off not being in).

@peppy
Copy link
Member

peppy commented Dec 24, 2024

If you think the issues are fixed, I'd close for now and wait for people to report any remaining issues.

@frenzibyte
Copy link
Member

From my testing I would say so 👌🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform/mobile priority:1 Very important. Feels bad without fix. Affects the majority of users. ruleset/osu! type:input
Projects
None yet
Development

No branches or pull requests

8 participants