音楽ゲーム Deemo のスコア計算式が気になって調べていたところ、日本語では詳細な情報が見つからなかったので、中国語の記事を元に、実験に基づく若干の修正を加えて、日本語の解説を書きました。
まず、全スコア100%のうち80%が基本スコア、残りの20%がコンボスコアになっています。
基本スコア
ノート数を N とすると、charming 1回毎に80/Nの基本点が入ります。ミスの場合は0点になります。
問題は good (緑色の光)の得点なのですが、これは実は決まった点数ではありません。good の得点は charming の0.5倍以上1倍未満の得点で、より charming に近い、惜しい good の方が得点が高くなるようになっています。より正確には次のようになっています。
T: ノートを取ったタイミングと「正解」のタイミングの差(ズレ)
A: Charming としてカウントされるズレの最大値
B: Good としてカウントされるズレの最大値
T <= A のとき:Charming(80/N点)
A < T <= B のとき:Charming のときの (0.5 + 0.5 × (T - A) / (B - A)) 倍
B < T のとき:ミス(0点)
deemo ではノートを早く取ることと遅く取ることのペナルティが対称になっています。これは Cytus とは異なる点です。
コンボスコア
コンボスコアはより複雑です。まず、コンボスコア単位を説明します。コンボスコア単位は、フルコンボの場合には1コンボ目では0、2コンボ目では1、3コンボ目では2、というように獲得でき、最後のノートではN-1コンボスコア単位を獲得できます。従って、フルコンボの場合には合計で 1 + 2 + ... + (N - 1) = N × (N - 1) / 2 のコンボスコア単位が獲得できます。そして、N * (N -1) / 2 コンボスコア単位が20%のコンボスコアに対応しています。つまり、1 コンボスコア単位は 20 / (N × (N - 1) / 2) = 40 / (N × (N - 1)) のスコアに換算されます。
さて、フルコンボでない場合のコンボスコア単位の計算なのですが、これは「7割ルール」というものがあり複雑になっています。ゲームを開始してX回コンボが続いたとします。このとき、X回目のコンボではX-1コンボスコア単位を獲得しています。その次のノートをミスしてしまった場合、このノートについての獲得コンボスコア単位は0になります。そして、ミスした次のノートで good 以上を取った場合は 0.7 × (X-1) コンボスコア単位が獲得でき、その次のノートもコンボが続いた場合は 0.7 × (X - 1) + 1 コンボスコア単位が獲得でき、コンボが続く限り獲得コンボスコア単位は1ずつ増えていきます。数式で書くと以下のようになります。
S(n): nノート目の潜在獲得コンボスコア単位
T(n): nノート目の獲得コンボスコア単位
S(0) = 0
S(n) = 0.7 * S(n - 1) if n回目がミス
S(n) = S(n - 1) if n回目が1コンボ目の場合
S(n) = S(n - 1) + 1 if n回目が2コンボ目以上の場合
T(n) = 0 if n回目がミスの場合
T(n) = S(n) if n回目がgood以上の場合
複雑な7割ルールですが、コンボが途切れた場合のペナルティが大きくなりすぎないように導入されたルールなのだと思います。