KeymashGame / game-tracker

Official Bugtracking Repository for all Keyma.sh issues
6 stars 0 forks source link

Accuracy/Speed registering incorrectly. #134

Closed nathannguyen650 closed 3 years ago

nathannguyen650 commented 3 years ago

Describe the bug I just blasted a dictionary text at approximately 183 WPM and with 100% accuracy. However, it registered as 163 WPM and 97%.

image

Notice how there are no mistakes listed, yet it registered as 97% accuracy.

image

Here's the graph. You can see three points where I dipped down to 99.15 WPM. Each of those three points were typed at exactly 99.15 WPM (which is something only a robot could do).

"mix should true say crease yes seven rock move try which value face practice noise parent take world may water lost hope laugh should populate effect few vowel question experience pair die dark good center eat divide melody record come show meant rub usual put mind city molecule flow lead"

This is the dict text in question. It is 289 characters. Each word is five characters. 19 seconds elapsed. I'm terrible at math, but it should be approximately 183 WPM

180 dictionary

This is a dict text with 277 characters with 18.5 seconds. It registered at 180. This is a screenshot from v1.

To Reproduce I have literally no idea how to reproduce it. I suspect it's due to my lag. Silvermium had the exact same problem and Aevi looked into it. You can ask him about it. Apparently it was something about some extreme lag between the inputs.

Desktop (please complete the following information): Windows 10, Firefox

Additional context Was racing as a guest account. Don't have any records of it. This has happened to me at least once before, but probably more.

CameronCT commented 3 years ago

Yeah this issue will be insanely hard to debug. It's truly possible that you had a missed packet which caused the error (maybe it was a mistake on the space).

nathannguyen650 commented 3 years ago

Yeah this issue will be insanely hard to debug. It's truly possible that you had a missed packet which caused the error (maybe it was a mistake on the space).

No worries, I understand. But to get 97% accuracy, I would have to make a mistake on the space bar quite a few times. I remember very clearly it was a perfect race because I did me a little fist pump :(

btw yes, I've been lagging super hard this week. It could be a missed packet. But also I've only encountered this bug after v2.

I know this because my favorite mini-game is guessing my WPM before the result finalizes. I am always within 10 WPM. Usually within 5 WPM. That's how I knew something was off because my guess was wrong by 20 WPM.

CameronCT commented 3 years ago

Well I feel better knowing you experienced this in v1 too, so I know it's not something new in that sense.

nathannguyen650 commented 3 years ago

Well I feel better knowing you experienced this in v1 too, so I know it's not something new in that sense.

No, no. Sorry to burst your bubble but it didn't happen in v1 :(

CameronCT commented 3 years ago

I mis-read, I thought you said you did ;(

nathannguyen650 commented 3 years ago

image

This race was approximately 173'ish (guesstimate), but registered at 154. The text has 282 characters (including spaces).

282/5 = 56.4 [characters divided by five] 56.4 / 0.33 = 170.91 [words divided by minute]

I used 0.33 because I rounded up to 20 seconds (It was technically 19.98 seconds). The confirmed speed is 171.

image

That huge cliff is where the lag spike occurred. Notice that I got 100% and I did not stutter nor pause on any word.

I have to emphasize it's a pretty serious issue affecting about 1/3 races on average (every race at worst). When it does affect the race, it's by about 10 WPM usually. At worst, it affects the race by 20 WPM. I was actually glancing at my ping while racing and saw exactly when it had a spike.

Strangely enough, I think the timer is actually accurate (90% sure but needs to be verified). Perhaps there's a different way to calculate WPM using the elapsed timer and characters?

nathannguyen650 commented 3 years ago

btw, smol flex. I guessed that it was 173 by literally just instinct.

I just did the math using a formula I found literally two minutes ago. The confirmed speed is 171. I'm telling you, I'm good at feeling my speed.

Also, in the original post, I guessed it was at least 180+ before I made any calculations. I was so certain, I told Aevi I'd bet my ENTIRE bank account on it; that's how sure I was. After I did the calculations, it was over 183.

The following screenshot is about an hour before I made the Github post.

image

All I'm saying is that when I feel the WPM is off, I am extremely likely to be right. That's just the product of completing thousands of dict races.

CameronCT commented 3 years ago

Well with your mistake that's likely why your WPM dropped - this is still all latency based as of right now. To clarify I am not saying you did or didn't make a mistake

All the accuracy does is (correct characters / (correct characters + incorrect characters)) / * 100 which makes sense if you had latency and it gave a typo based off packets catching up.

There's no real approach as making the test run every second time for example would pose the risk of incorrect data, which poses the risk of incorrect keylogs, which poses the possibility of false-positives in terms of Anticheat and manually reviewed cheating bans.

nathannguyen650 commented 3 years ago

This is also happening to Silvermium. Here's a screenshot of his dictionary race on the average ladder:

image

The text is 270 characters with space and 21.3 seconds elapsed. Using those numbers, the correct WPM should equate to 152.11. His problem is actually worse than mine.

Also, take a look at his accuracy. He only made two mistakes, yet it registered as 84%.

What do you think about having a system that double-checks the characters/elapsed time at the end of the race?

CameronCT commented 3 years ago

If I added a system that double-checked, then it would still run into the same issue with cheating / anticheat issues.

CameronCT commented 3 years ago

Due to the complexity of this issue, I have opened another Cloudflare ticket and we will see if we get a response.

nathannguyen650 commented 3 years ago

image

I just want to confirm that this isn't a problem exclusive to just dictionary. It happens to quotes as well. I still stand by my statement that it affects 1/3 races.

After calculating, the correct score should have been 180.1801 WPM. Yes, there was a ping spike :(

But the thing is, I never had problems with the ping spike affecting the WPM in v1.

CameronCT commented 3 years ago

Again, I submitted an actual ticket. Until then there's not much I can do.

CameronCT commented 3 years ago

Also WPM will be based off first keystroke delay on top of elapsed time - the two aren't mutually extracted from eachother.

CameronCT commented 3 years ago

Closing this until Cloudflare responds.