User:Arcorann/DDR Scoring
This is not intended to be article quality at the moment.
Also putting grading on this page.
Arcade mixes
1st/2nd/Club
- Step Score = J * (floor(C/4)^2 + 1)
where
- C = combo count after step
- J = 300 if Perfect, 100 if Great, 0 otherwise
3rd
Official description of the scoring system: https://web.archive.org/web/20080604023941fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr3rd/plan/score.html
Then for the kth step,
- Step Score = J * (K * U + Q)
where
- B = 1000000
- S = N*(N+1)/2, N = number of steps in song
- U = floor(B / S)
- J = 10 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
4th/USA
Official description of the scoring system: https://web.archive.org/web/20130219110405fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr4th/plan/score.html
- Step Score = J + 333 * C
where
- C = combo count after step
- J = 777 if Perfect, 555 if Great, 0 otherwise
If the player has failed (life bar empty), replace C with 0.
Note that AC DDR USA uses this even though its interface is based on 3rdMIX!
5th
Scoring system: http://web.archive.org/web/20090511010714fw_/http://www.konami.jp/bemani/ddr/jp/am/ddr5th/plan/score.html (mind the frame)
Variant of 3rd with difficulty multiplier and end of song grade and combo bonuses.
- Step Score = J * (K * U + Q)
where
- B = 500000 * (1 + D) if not a long version, 500000 * (1 + 2 * D) if a long version
- D = difficulty rating if not an edit, 7 (or 14) if an edit
- S = N*(N+1)/2, N = number of steps in song
- U = floor(B / S)
- J = 10 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
At the end of the stage a bonus is applied:
- Dance Level Bonus = 10000000 for AAA, divide by 10 for each lower rating down to 100 for D, 0 for E (only applied for "new songs", non-edits and songs that haven't been played already in the current session)
- Combo Bonus is accumulated per step:
- Step Combo Bonus = C * J'
where
- C = combo count after step if life bar not empty, 0 otherwise
- J' = 55 if Perfect, 33 if Great, 0 otherwise
DDRMAX
Scoring system: http://web.archive.org/web/20130411085012fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax/sec/score.html and http://web.archive.org/web/20090523210619fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax/sec/score2.html
Variant of 3rd with groove radar bonuses.
- Step Score = J * (K * U + Q)
where
- K = ordinal position of current step (not freeze; freezes are not scored during the song counted in the Groove Radar bonus)
- B = 5000000
- S = N*(N+1)/2, N = number of steps in song (not freezes)
- U = floor(B / S)
- J = 10 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
At the end of the stage a bonus is applied for each Groove Radar category.
Define:
- F_s = Perfects / total steps
- F_v = max combo / song maximum combo
- F_a = Perfects on jumps / total jumps
- F_c = DP / maximum DP
- F_f = OK / total freezes
Let
- B_s = 20000000
- B_v = B_a = B_c = B_f = 10000000
- G_x = the song groove radar value in category x.
- M_x = the theoretical maximum value in category x:
- M_s = 374
- M_v = 640
- M_a = 67
- M_c = 3832
- M_f = 8000
- P_x = round(floor(128 * B_x / M_x) * G_x / 128)
Then:
- V_x = floor((floor(F_x * 100) * P_x / 100) is the bonus for radar category x.
DDRMAX2/Extreme
Scoring system: http://web.archive.org/web/20130411085205fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score.html (MAX2 normal), https://web.archive.org/web/20070112062754fw_/http://www.konami.jp/bemani/ddr/jp/am/extreme/score.html (Extreme)
Variant of 3rd with difficulty multiplier.
- Step Score = J * (K * U + Q)
where
- K = ordinal position of current step or freeze (as judged; if a freeze ends at the same time as a step then it's possible that the ordinal position can change depending on if the step was early or late)
- B = 1000000 * D
- D = difficulty rating if not an edit, 5 if an edit
- S = N*(N+1)/2, N = number of steps plus freezes in song
- U = floor(B / S)
- J = 10 if Perfect or OK, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
If the player has failed, replace (K * U + Q) with 1.
SuperNOVA
Scoring system: http://web.archive.org/web/20130219115342fw_/http://www.konami.jp/bemani/ddr/jp/am/sn/secret/secret_02.html
- Step Score = 10000000 * J / (2*N)
where
- J = 2 if Perfect/OK, 1 if Great, 0 otherwise
- N = number of steps plus freezes in song
Score is rounded down to nearest integer for output but fractions are retained internally.
SuperNOVA2 to 2014
- Step Score =
- U if Marvelous or OK
- U - 10 if Perfect
- U/2 - 10 if Great
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows in song
Score is rounded down to nearest 10 for output but fractions are retained internally.
A onwards
- Step Score =
- U if Marvelous or OK
- U - 10 if Perfect
- U * 0.6 - 10 if Great
- U * 0.2 - 10 if Good
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows in song
Score is rounded down to nearest 10 for output but fractions are retained internally.
Solo Bass Mix/Solo 2000
Scores are tallied up at the end of the song:
- Perfect: 500 per Perfect
- Great: 300 per Great
- Good: 100 per Good
- Max Combo: 400 * Max Combo
- Max Perfect Combo: 100 * Max Perfect Combo
Pending
AC scoring systems were unified for all non-exclusive releases after SuperNOVA 2.
- Kids (has a grade but not a numerical score)
- true Kiss Destination (only appears at end of song; 9 digit scores possible; likely same as 1st/2nd/Club)
- DREAMS COME TRUE (only appears at end of song; appears to be same as TKD)
- Disney's RAVE (no numerical score, grade shown ingame and updated in realtime)
- 1st US (likely same as 1st/2nd)
- DS (likely same as 1st/2nd, unchecked)
- EuroMIX (looks like 3rd)
- EuroMIX2 (looks similar to MAX2)
- Fusion (likely same as Extreme US)
- 1st Asia (likely same as 1st/2nd)
Special modes
3rd Nonstop
Probably same as normal with B replaced by (1000000 * stage number), but unverified.
MAX2 Oni
Scoring system: http://web.archive.org/web/20130411085821fw_/http://www.konami.jp/bemani/ddr/jp/am/ddrmax2/score_oni.html
- Step Score = 2 if Perfect or OK, 1 if Great, 0 otherwise
Divide the score by max score to get percentage, round down to nearest 0.1%.
Extreme Nonstop
Incorporates Marvelous and stage count.
- Step Score = J * (K * U + Q)
where
- K = ordinal position of current step or freeze (as judged; if a freeze ends at the same time as a step then it's possible that the ordinal position can change depending on if the step was early or late)
- B = 10000000 * stage number
- S = N*(N+1)/2, N = number of steps plus freezes in song
- U = floor(B / S)
- J = 10 if Marvelous or OK, 9 if Perfect, 5 if Great, 0 otherwise
- Q = B - U*S if the last step, 0 otherwise
Extreme Challenge
- Step Score = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise
This is also used as the EX Score in later games.
SuperNOVA Nonstop/Challenge
- Step Score = 10000000 * J / (3*N)
where
- J = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise
- N = number of steps plus freezes in course
Score is rounded down to nearest integer for output but fractions are retained internally.
SuperNOVA2 to X3 Courses (Nonstop/Challenge)
- Step Score = 1000000 * (J + floor((S - 1) / 2)) / Z
where:
- J = 3 if Marvelous or OK, 2 if Perfect, 1 if Great, 0 otherwise
- S = stage number
- Z = the sum of ((3 + floor((S - 1) / 2)) * number of steps in stage S) across all stages
Score is rounded down to nearest integer for output but fractions are retained internally.
A20/A3 Courses (Nonstop/Dan)
Same as in regular modes, but counted across the whole course.
- Step Score =
- U if Marvelous or OK
- U - 10 if Perfect
- U * 0.6 - 10 if Great
- U * 0.2 - 10 if Good
- 0 otherwise
where
- U = 1000000 / N
- N = number of steps plus freezes plus shock arrows total in course.
Score is rounded down to nearest 10 for output but fractions are retained internally.
Console and home mixes
Same as AC mixes
- 1st/2nd/Club:
- DDR 1st JP
- 2ndReMIX
- 3rd:
- 4th:
- 5th:
- MAX:
- MAX2/Extreme:
- SuperNOVA:
- SN2:
- A:
- GRAND PRIX
Pending
Those known not to correspond with any (preceding) AC release include:
- Extreme US
- Ultramix series (1, 2 and 3 are different, 4 might be the same as 3)
- V (uses A but with -100 instead of -10, IIRC)
- Hottest Party series (incl. MUSIC FIT and Winx Club) (similar to MAX2/Extreme but max score doesn't match)
- UNIVERSE series:
- 1 and 2 similar to MAX2/Extreme but max score is 100,000,000?
- 3 similar to SN2 but doesn't appear to round to 10s
Other unchecked (partial):
- GB series (same as 1st/2nd? score only at end)
- US PC (appears to be same as 4th, need confirmation)
Special modes
Same as main mode:
- 2ndReMIX Endless
Pending writeup (partial):
- MAX2 Endless (needs checks)
- Extreme Endless (needs checks)
- SuperNOVA Endless
- SuperNOVA2 Endless
- X Endless (conjecture available, needs checks)
- X2 Endless
3rdMIX Endless
Let C' be the adjusted combo count after step:
- If C = combo count after step and C'_p = value of C' on previous step, C' = :
- max(C'_p, C) if Perfect or Great
- floor(C'_p / 2) otherwise
Then,
- Step Score = J * (floor(C'/4)^E + 1) * L_1 * L_2
where
- J = 300 if Perfect, 100 if Great, 0 otherwise
- E = min(6, floor(1 + (S - 1) / 8))
- L_1 = 1 + floor(N / 256)^floor(1 + (S - 1) / 32)
- L_2 = S^min(9, floor(1 + (S + 15)/32)) * (S - max(0, S - mod(S + 15, 32) - 1))
- N = cumulative step count across all stages so far after step
- S = current stage number
The term (S - max(0, S - mod(S + 15, 32) - 1)) can also be expressed as:
- S, if S <= 16
- mod(S + 15, 32) + 1 if S > 16
Note that this means the score per step can go down when crossing stage boundaries, e.g. if S goes from 272 to 273.
4thMIX Endless
- Step Score = J + (floor(C/4) * L)^2
where
- C = combo count after step
- J = 301 if Perfect, 101 if Great, 0 otherwise
- L = max(1, S - 5) * max(1, floor(2^E * (S - 16 * (E + 3)) - 1))
- E = min(11, floor(S / 16) - 4)
- S = current stage number
Alternatively, if we let L = max(1, S - 5) * L_2 and L_2(S) be a function of S, then we can define it as a recurrence:
- L_2(S) = 1, S <= 16
- L_2(S) = L_2(S - 1) + 1 * (mod(S, 2 ^ (4 - floor(S / 16)) == 0), 17 <= S <= 64
- L_2(S) = L_2(S - 1) + 2 ^ min(11, floor(S / 16) - 4), S >= 65.
Note that if not Perfect or Great C will be 0 and thus step score will be 0.
Mobile mixes
DDR S/S+
Despite having a UI based on X the scoring system is closer to that of SN than SN2.
- Step Score = 1000000 * J / (2*N)
where
- J = 2 if Marvelous/Perfect/OK, 1 if Great, 0 otherwise
Grading systems
1st
Derived by me, not yet checked on AC.
Possible grades are S, A, B, C, D.
- If (bad + miss) == 0 and (max combo >= 100 or perfects >= 0.75 * total steps) then S.
- Otherwise:
- Set provisional grade to A if (max combo >= 50 or perfects >= 0.5 * total steps) and B otherwise
- Deduct one grade if (bad + miss) > 0.05 * total steps
- Deduct another grade if (bad + miss) > 0.15 * total steps.
2nd
Found on AIJ.
Possible grades are SS, S, A, B, C, D.
Let S be the total number of steps and C be the max combo. Define the following thresholds:
- C_1 = min( 0.9 * S, 100)
- C_2 = min( 0.5 * S, 60)
- C_3 = min( 0.5 * S, 20)
Let:
- GP = (C == S) + (C >= C_1) + (C >= C_2) + (C >= C_3)
- i.e. if C == S then GP = 4, else if C >= C_1, GP = 3, etc.
- MT = 4 - GP.
Then:
- Provisional grade is SS if GP == 4, S if GP == 3, A if GP == 2, B if GP == 1, C if GP == 0.
- Deduct one grade if either (misses > MT) or (perfects < greats).
3rd
Possible grades are SSS, SS, S, A, B, C, D, E.
Assign DP per judgement:
- 2 for Perfect
- 1 for Great
- 0 for Good
- -4 for Boo
- -5 for Miss
Then:
- If failed (empty life bar at some point), assign E.
- If all Perfects, assign SSS.
- Else, if all Great or Perfects, assign SS if (perfects >= 0.8 * total steps) and S otherwise.
- Else, check DP / Max DP:
- If >= 0.8, assign A
- If >= 0.64, assign B
- If >= 0.5, assign C
- Else, assign D.
4th
Possible grades are AA, A, B, C, D.
Assign DP per judgement as in 3rd.
Then:
- If failed (empty life bar at some point), assign D.
- If all Perfects, assign AA.
- Else, if all Great or Perfects, assign A.
- Else, check DP / Max DP:
- If >= 0.64, assign B
- Else, assign C.
5th
Possible grades are AAA, AA, A, B, C, D, E. Very similar to 3rd.
Assign DP per judgement as in 3rd.
Then:
- If failed (empty life bar at some point), assign E.
- If all Perfects, assign AAA.
- Else, if all Great or Perfects, assign AA.
- Else, check DP / Max DP:
- If >= 0.8, assign A
- If >= 0.64, assign B
- If >= 0.5, assign C
- Else, assign D.
Note that A, B, C and D are the same as 3rd's A, B, C and D. In fact, we can do a simple conversion table: SSS -> AAA, SS or S -> AA, and below are the same.
MAX to Extreme
Possible grades are AAA, AA, A, B, C, D, E.
Assign DP per judgement:
- 2 for Perfect
- 1 for Great
- 0 for Good
- -4 for Boo
- -8 for Miss
- 6 for OK
- 0 for NG
Then:
- If failed (empty life bar at some point), assign E.
- Else, check DP / Max DP:
- If DP = max DP, assign AAA
- If >= 0.93, assign AA
- If >= 0.80, assign A
- If >= 0.65, assign B
- If >= 0.45, assign C
- Else, assign D.
SuperNOVA
Based on machine score. AIJ also mentions a DP system?
10,000,000 | AAA |
9,500,000 | AA |
8,100,000 | A |
6,500,000 | B |
5,400,000 | C |
<5,400,000 | D |
Failed | E |
SuperNOVA 2 to 2014
Based on machine score.
Grade | Beginner/Basic | Difficult | Expert/Challenge |
AAA | 990,000 | ||
AA | 950,000 | ||
A | 800,000 | 850,000 | 900,000 |
B | 700,000 | 750,000 | 800,000 |
C | 500,000 | 600,000 | 700,000 |
D | Lower | ||
E | Failed |
A onwards
Based on machine score.
Grade | Score |
AAA | 990,000 |
AA | 900,000 |
AA- | 890,000 |
A+ | 850,000 |
A | 800,000 |
A- | 790,000 |
B+ | 750,000 |
B | 700,000 |
B- | 690,000 |
C+ | 650,000 |
C | 600,000 |
C- | 590,000 |
D+ | 550,000 |
D | Lower |