Open MBmasher opened 5 years ago
Thanks for your contribution! Do you have some code ready so we can test this?
Thanks for the code. I've made some tests, got some mixed results. Tests were made using http://osuskills.com/user/Kert/skill/memory
Streamy maps got buffed too much: marisa map +HDHRFL 456 -> 663 tori no uta +HDHRFL 465 -> 621 thunder tornado +HDHRFL 300 -> 542
While some harder (imo) maps got even less points after the change: No, thank you +HDHRFL 652 -> 602 (faster + more jumps) Utsukushiki Mono +FL 574 -> 433 (just larger jumps) Gleaming Sky +FL 456 -> 416 (sheer length of it and sometimes objects are too far so you must memorize)
Most likely this happened because of the removal of zero-points-for-observable-objects condition. Though I do agree this probably needs to be toned down a little
Still I am pretty excited we're getting some traction!
okay two problems which is probably what's up with the first few maps
After that last edit, it leads me to think that the reason for the high value is solely the observable thing you mentioned. Then the problem is, how can the algorithm tell apart a simple stream and a complex linear pattern?
Well obviously usually spacing between objects in a stream is so small that the next object is always observable thus the problem is solved by itself. What do you mean by 'complex linear pattern' by the way? If you mean a linear sequence of objects but with a much higher BPM (less time to react) then yeah it still gives 0 where in reality it probably should not? But then again will this be about reaction instead of memory?
Complex linear patterns such as in this map https://osu.ppy.sh/beatmapsets/12909#osu/48098
Sounds like it requires the same algorithm that we don't have for Reading skill. e.g. rating patterns of objects in advance by complexity
i think a quick fix for streams would be to check consecutive notes, if they had similar distance and angle then it would be detected as a stream and those could be nerfed
We can detect linear patterns (a path) by taking a few notes, doing a linear regression, and comparing the r-value against a threshold. To get the full isolated path, do a sliding window with this and stop when the r-value indicates it's no longer a linear pattern. For that path, we can measure how curvy it is as a rough indication of how geometrically complex it is. It would also be helpful to be able to detect path overlaps like the one present at around (a=1.04, a=1.35) in the example, and integrate that into geometric complexity as well.
it should also take distance into account, since linear paths with random distance between each note is much harder than a stream
Geometrically, varying distance between notes in a linear path is not that hard to read. I can do SOLO on Joint Struggle pretty well with RX, and the only parts that throw me off are the ones that require more agility. However, there is definitely a greater reading aspect for tapping, and to take care of that I first have to finish the rhythmic complexity theory I am working on to exclude physical influence.
Is some one willing to work on this? I'll prob not get around doing this until summer due to school work.
observable_nerf = (distance / flashlight_circle_radius) ^ (opacity)
max_AR_buff = 0.2 (can be changed if desired).
if time_period < ar_ms: hidden_AR_buff = 1 + max_AR_buff * (time_period / ar_ms)
medium_CS = 36.49 (CS4, can be changed if desired). CS_rebalance_factor = 0.005 (can be changed if desired).
CS_rebalance = (CS_radius - medium_CS) ^ 2 if CS_radius > medium_CS: CS_rebalance = -1 CS_rebalance = CS_rebalance_factor CS_rebalance += 1