Here is a formula for score based on the judgment counts (acc-based score).
It is based on linear approximations during the calculation of the normal curve that fits the distribution of the judgments (using exact formulas required using numerical methods that were somewhat computationally expensive, and maybe they were too complex); the linear approximation is better for low accuracy scores (but it still should gives sensible values for high accuracy scores).
Variables:
a: Hit window for a Rainbow (16.5ms with no-mod with old timing values).
b: Hit window for a 300 (OD and Mod dependent).
c: Hit window for a 200.
d: Hit window for a 100.
e: Hit window for a 50.
JMAX/J300/.../JMISS : Count of the judgments.
anm: Linear scale constant, to make the maximum score 1,000,000, then anm=a. To make scores between different OD or timing window mods (HR/EZ) in the same map directly comparable (a higher score represents a higher accuracy), then anm has to be constant regardless of the timing windows.
Edit: Here is a better approximation (but this formula might be too long): http://i.imgur.com/rcWR71N.png
It is based on linear approximations during the calculation of the normal curve that fits the distribution of the judgments (using exact formulas required using numerical methods that were somewhat computationally expensive, and maybe they were too complex); the linear approximation is better for low accuracy scores (but it still should gives sensible values for high accuracy scores).
Variables:
a: Hit window for a Rainbow (16.5ms with no-mod with old timing values).
b: Hit window for a 300 (OD and Mod dependent).
c: Hit window for a 200.
d: Hit window for a 100.
e: Hit window for a 50.
JMAX/J300/.../JMISS : Count of the judgments.
anm: Linear scale constant, to make the maximum score 1,000,000, then anm=a. To make scores between different OD or timing window mods (HR/EZ) in the same map directly comparable (a higher score represents a higher accuracy), then anm has to be constant regardless of the timing windows.
- To balance EZ/HR/Nomod, it would be a good idea to always make anm equal to the value of "a" with Nomod. That way HR can go beyond 1 million score (as long as the player has very good accuracy during the play), EZ gets less than 1 million even with all rainbows, all-Rainbows with no-mod is always 1 million score.
- If the timing window for a Rainbow is ever OD-dependent, then anm would need to be OD-dependent as well to make the max score with no-mod 1 million, but then, the difficulty of achieving certain score would vary depending on the OD. For that reason, I think it would be better to not change the timing window of a Rainbow depending on OD.
Edit: Here is a better approximation (but this formula might be too long): http://i.imgur.com/rcWR71N.png