Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite judgement articles #8245

Merged
merged 24 commits into from
Jul 2, 2023
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1d2e724
rewrite judgement articles
Walavouchey Oct 22, 2022
662212a
fix tables
Walavouchey Oct 22, 2022
5dbd67c
fix link
Walavouchey Oct 22, 2022
faff76a
fix wrong judgement name
Walavouchey Oct 22, 2022
7ffc309
word
Walavouchey Oct 23, 2022
755c991
capitalise judgement names, adjust wording and add links
Walavouchey Oct 24, 2022
46ec2e3
link geki and katu articles
Walavouchey Oct 24, 2022
e42fecf
typo
Walavouchey Oct 24, 2022
01462ae
change word
Walavouchey Nov 4, 2022
6a2319b
outdate translations
Walavouchey Nov 5, 2022
720a0f5
link stable changelog instead of cutting edge
Walavouchey Nov 5, 2022
3795d6d
update mania judgement page with ground-truth information
Walavouchey Jan 11, 2023
7cd13da
tiny fixes
Walavouchey Jan 11, 2023
fdcf612
update taiko judgement page
Walavouchey Jan 18, 2023
55a2b14
update osu! spinner requirements
Walavouchey Jan 28, 2023
9c4bb12
note down a few more minor details
Walavouchey Jan 28, 2023
c4e4934
carry over same remark about hit window calculation to osu page
Walavouchey Jan 28, 2023
a24e5f7
update hit window variation remarks
Walavouchey Jan 28, 2023
9f74ea2
pepper articles with internal reference comments and some minor wordi…
Walavouchey Feb 2, 2023
770acc2
apply ticclick's review
Walavouchey Jul 2, 2023
8824b72
add missing table alignments
Walavouchey Jul 2, 2023
5c93001
expand blurb in osu!catch article
Walavouchey Jul 2, 2023
388a79d
use math symbols
Walavouchey Jul 2, 2023
bf1b8aa
Merge branch 'master' into judgement
TicClick Jul 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 91 additions & 35 deletions wiki/Gameplay/Judgement/osu!/en.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,113 @@
# osu! judgement system

## Hit result

| Image | Name | Effect |
| :-: | :-: | :-- |
| ![](/wiki/shared/judgement/osu!/hit300.png "300") | 300 | The best achievable result for a hit object. Scoring nothing except 300s in a beatmap will award the player with the SS or SSH [grade](/wiki/Gameplay/Grade). Usually denoted with a blue colour. |
| ![](/wiki/shared/judgement/osu!/hit300g.png "Geki") | 300 (激) Geki | A variant of the 300 result. Originates from [Osu! Tatakae! Ouendan!](https://en.wikipedia.org/wiki/Osu!_Tatakae!_Ouendan), called Elite Beat! in [Elite Beat Agents](https://en.wikipedia.org/wiki/Elite_Beat_Agents). Granted upon hitting a 300 on the last element in a combo in which the player has scored only 300s. Getting a Geki will grant a sizable health bonus on top of the standard health increase for a 300. |
| ![](/wiki/shared/judgement/osu!/hit300k.png "300 Katu") | 300 (喝) Katu or Katsu | A variant of the 300 result. Originates from [Osu! Tatakae! Ouendan!](https://en.wikipedia.org/wiki/Osu!_Tatakae!_Ouendan), called Beat! in [Elite Beat Agents](https://en.wikipedia.org/wiki/Elite_Beat_Agents). Granted upon hitting a 300 on the last element in a combo in which the player has scored at least one 100, but no 50s or misses. Getting a Katu will give a small health bonus on top of the standard health increase for a 300. |
| ![](/wiki/shared/judgement/osu!/hit100.png "100") | 100 | The second best achievable result for a hit object. Usually denoted with a green colour. |
| ![](/wiki/shared/judgement/osu!/hit100k.png "100 Katu") | 100 (喝) Katu or Katsu | A variant of the 100 result. Originates from [Osu! Tatakae! Ouendan!](https://en.wikipedia.org/wiki/Osu!_Tatakae!_Ouendan), called Beat! in [Elite Beat Agents](https://en.wikipedia.org/wiki/Elite_Beat_Agents). Granted upon hitting a 100 on the last element in a combo in which the player has scored at least one 100, but no 50s or misses. Getting a Katu will give a small health bonus on top of the standard health increase for a 100. |
| ![](/wiki/shared/judgement/osu!/hit50.png "50") | 50 | The third best achievable result for a hit object, the last one before a miss. Usually denoted with an orange colour. Scoring a 50 will prevent the appearance of a Katu or a Geki at the combo's end. |
| ![](/wiki/shared/judgement/osu!/hit0.png "Miss") | Miss | The worst possible result for a hit object. Scoring a Miss will reset the current combo to 0 and will prevent the appearance of a Katu or a Geki at the combo's end. |
## Judgements

A **judgement** (a.k.a. **hit result**) is the outcome of interacting with a [hit object](/wiki/Gameplay/Hit_object) during its hit window. Score and accuracy are calculated based on which judgements are received.
TicClick marked this conversation as resolved.
Show resolved Hide resolved
Walavouchey marked this conversation as resolved.
Show resolved Hide resolved

These are commonly referred to by their score value (except for misses), i.e. a GREAT is usually called a "300" and so on.

| Image | Name | [Hit value](/wiki/Gameplay/Score/ScoreV1/osu!) | [Accuracy](/wiki/Gameplay/Accuracy#osu!) | Max hit error (ms) |
| :-: | :-: | --: | --: | :-- |
| ![](/wiki/shared/judgement/osu!/hit300.png) | GREAT | 300 | 100% | `80 - 6 * OD` |
| ![](/wiki/shared/judgement/osu!/hit100.png) | OK | 100 | 33.33% | `140 - 8 * OD` |
| ![](/wiki/shared/judgement/osu!/hit50.png) | MEH | 50 | 16.67% | `200 - 10 * OD` |
| ![](/wiki/shared/judgement/osu!/hit0.png) | MISS | 0 | 0% | `400` |

The hit window depends on the beatmap's [overall difficulty (OD)](/wiki/Beatmap/Overall_difficulty). A hit is then considered inside a hit window if `hit error < max hit error`, meaning the value listed is half of the hit window width.<!-- internal reference: https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjectManager.cs#L1521-L1536 -->

<!--
internal reference:
hit error rounding https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/Audio/AudioEngine.cs#L1286
hit window truncation https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjectManager.cs#L467-L469
-->

The hit error is rounded and the max hit error values are truncated to the nearest integer, meaning the windows may be up to 1.5 ms shorter on both sides than what the formulas suggest.

### Geki and Katu

The last hit object in a [combo set](/wiki/Beatmapping/Combo) may give a variant of the regular judgements depending on which ones were achieved in the combo. They give a bit more [health](/wiki/Gameplay/Health) than the regular ones.

| Image | Name | Variant of | Requirement |
| :-: | :-: | :-: | :-- |
| ![](/wiki/shared/judgement/osu!/hit300g.png) | [Geki](/wiki/Gameplay/Judgement/Geki) (激) | GREAT | GREAT on all hit objects in a combo |
| ![](/wiki/shared/judgement/osu!/hit300k.png) | [Katu](/wiki/Gameplay/Judgement/Katu) or Katsu (喝) | GREAT | At least OK on all hit objects in a combo and a GREAT for the last one |
| ![](/wiki/shared/judgement/osu!/hit100k.png) | [Katu](/wiki/Gameplay/Judgement/Katu) or Katsu (喝) | OK | At least OK on all hit objects in a combo |

This mechanic is in reference to [Osu! Tatakae! Ouendan](https://en.wikipedia.org/wiki/Osu!_Tatakae!_Ouendan) and [Elite Beat Agents](https://en.wikipedia.org/wiki/Elite_Beat_Agents), the latter using the terms Elite Beat! and Beat! instead of Geki and Katsu.
TicClick marked this conversation as resolved.
Show resolved Hide resolved

## Judgement mechanics

### Hit circles

- A hit circle is judged as a 300, 100, or 50 depending on how accurate the player's timing is when clicking on it. The time intervals used to determine the concrete result for a hit circle are called *hit windows*, and are influenced by the beatmap's [overall difficulty](/wiki/Beatmap/Overall_difficulty#osu!).
- A hit circle is judged as missed when:
- The circle is hit before the start of the 50 hit window and does not trigger [notelock](/wiki/Gameplay/Judgement/Notelock).
- The circle is not hit and its 50 hit window passes.
A [hit circle](/wiki/Gameplay/Hit_object/Hit_circle) is judged with a GREAT, OK, MEH, or MISS depending on how accurately it is hit. Hitting a circle before the MISS window has no effect (other than causing [notelock](/wiki/Gameplay/Judgement/Notelock)), and not hitting a circle will cause a MISS after the MEH window passes.

### Sliders

Sliders consist of multiple parts: the slider head, slider tail, slider ticks, and slider repeats. The slider as a whole is judged based on how many parts of the slider the player has hit, as outlined below:
<!-- internal reference: https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjects/Osu/SliderOsu.cs#L1693-L1719 -->

- 300: The player successfully hit all slider parts.
- 100: The player hit at least half of the slider parts.
- 50: The player managed to hit at least one of the parts.
- Miss: The player did not successfully hit any of the slider parts.
- If [ScoreV2](/wiki/Gameplay/Game_modifier/ScoreV2) is active, the accuracy of hitting the slider head is additionally accounted for when judging the entire slider:
- Getting a 300 for a slider requires getting a 300 judgement for the slider head.
- Getting a 100 for a slider requires getting a 100 judgement or better for the slider head.
[Sliders](/wiki/Gameplay/Hit_object/Slider) consist of multiple parts: the [slider head](/wiki/Gameplay/Hit_object/Slider/Sliderhead), [slider tail](/wiki/Gameplay/Hit_object/Slider/Slidertail), [slider ticks](/wiki/Gameplay/Hit_object/Slider/Slider_tick), and [slider repeats](/wiki/Gameplay/Hit_object/Slider/Reverse_slider). The slider as a whole is judged based on how many parts of the slider the player has hit, as outlined below:

The slider parts also have additional influence on the current [combo](/wiki/Gameplay/Combo_(score_multiplier)):
| Judgement | Slider completion |
| :-: | :-- |
| GREAT | 100% |
| OK | 50% |
| MEH | At least one slider part |
| MISS | 0% |

- Tapping the slider head too early does not incur a miss, but will reset combo to 0.
- Missing a slider tick or repeat does not incur a miss, but will reset combo to 0.
- Missing the slider end does not incur a miss, but will not increment combo.
The slider head only needs to be hit within the MEH hit window for a successful hit. However, if [ScoreV2](/wiki/Gameplay/Game_modifier/ScoreV2) is active, slider head accuracy is additionally accounted for, with the judgement received for the entire slider being limited to at most the one received for the slider head.

There are some additional quirks with how sliders influence [combo](/wiki/Gameplay/Combo_(score_multiplier)):

- Tapping the slider head too early (before the MEH hit window), missing a slider tick, or missing a repeat does not incur a MISS, but will cause a [combo break](/wiki/Gameplay/Judgement/Combobreak). The other slider parts can still be hit if a key is held down. This is colloquially referred to as a [slider break](/wiki/Gameplay/Judgement/Slider_break).
- Missing the slider end does not incur a MISS, but will not increment combo.

### Spinners

Each spinner has a set number of spins required to complete it. This number depends on the [overall difficulty](/wiki/Beatmap/Overall_difficulty#sliders-and-spinners) of the beatmap. The criteria for judging the spinner as a whole are as follows:
Each [spinner](/wiki/Gameplay/Hit_object/Spinner) has a set number of spins required to complete it. This number depends on the [overall difficulty](/wiki/Beatmap/Overall_difficulty#sliders-and-spinners) of the beatmap. Spinner rotation speed is calculated based on cursor velocity and does not necessarily correspond to how many times the cursor has revolved around the spinner.

<!--
internal reference: https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjects/Osu/SpinnerOsu.cs#L419-L461
also applies to the spinner history section
-->

| Judgement | Spins required[^half-spins] |
| :-: | :-- |
| GREAT[^spinner-clear] | 100% |
| OK | One spin less than the required number |
| MEH | 25% |
| MISS | 0% |

The spin requirements can be broken down into the following formulas:

- 300: The player successfully performed the number of spins required for completion, or more.
- 100: The player performed one spin less than the required number.
- 50: The player performed at least 25% of the required spins.
- Miss: The player failed to meet the minimum of 25% of spins required.
<!--
internal reference:
https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjects/Osu/SpinnerOsu.cs#L229
min required half spins for GREAT = (int)(spinner length in seconds * min half spins per second) (+1 as explained in the ^minimum-sps footnote, due to comparing count > requirement)
https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjectManager.cs#L464-L465
min required half spins per second for GREAT = `3 + 0.4 * OD` if OD < 5, `2.5 + 0.5 * OD` if OD >= 5

For some very short spinners, the number of spins required is actually calculated to be 0, and thus the spinner always automatically completes itself with a 300.
note that the above formulas are divided in half in the tables below for nicer units
-->

| | |
| :-- | :-- |
| Minimum spins per second[^minimum-sps] | `1.5 + 0.2 * OD` if OD < 5, `1.25 + 0.25 * OD` if OD >= 5 |
| Minimum spins required | Spinner length in seconds * minimum spins per second + 0.5 |

If a spinner is very short, the number of spins required may be calculated to be 0, and thus the spinner will always complete itself with a GREAT.

## History

The spinner judging algorithm has been significantly changed in the [20190510.2 Cutting Edge release](https://osu.ppy.sh/home/changelog/cuttingedge/20190510.2). Prior to the change, non-miss judgements were significantly harder to achieve, as the difference between a 50 and a 100, as well as between a 100 and a 300, was equal to a half of a spin. Some beatmaps would even feature spinners that could never be judged with a 300, as they were too short to complete fully.
The spinner judgement algorithm has been significantly changed in the [20190513.2 Stable release](https://osu.ppy.sh/home/changelog/stable40/20190513.2). The differences were as follows:

- The difference between OK and MEH, as well as between MEH and GREAT, was equal to a half of a spin, making non-MISS judgements significantly harder to achieve.
- Spinners being too short may have prevented them from being fully cleared.
- All spinners required half of a spin more to complete.

Replays set prior to May 10, 2019 (when the change was [introduced in the Cutting Edge version](https://osu.ppy.sh/home/changelog/cuttingedge/20190510.1)) use this old algorithm rather than the one currently in effect.

## Notes

Replays set prior to May 10, 2019 will use this old spinner scoring method rather than the one currently in effect.
[^half-spins]: Spins are internally calculated in terms of half revolutions. The formulas listed in this page are adjusted to be in terms of full spins for simplicity, so this value is thus rounded down to the nearest half.
[^spinner-clear]: As a presumable oversight, the ["Clear" text](/wiki/Skinning/osu!#spinner) (`spinner-clear.png`) appears one half of a revolution before the required amount of spins to get a GREAT judgement.<!-- internal reference: https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/GameplayElements/HitObjects/Osu/SpinnerOsu.cs#L302-L303 comparison logic isn't the same as L457 & L440-->
[^minimum-sps]: Due to the +0.5 constant in the formula for minimum spins required, the actual minimum average is `0.5 / spinner length in seconds` spins per second faster.
5 changes: 5 additions & 0 deletions wiki/Gameplay/Judgement/osu!/fr.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
outdated_translation: true
outdated_since: 1d2e724ee8a7cb4f313653a07c28af43c8443ea4
---

# Système de jugement d'osu!

## Valeurs de hit
Expand Down
33 changes: 10 additions & 23 deletions wiki/Gameplay/Judgement/osu!catch/en.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,19 @@
---
needs_cleanup: true
---

# osu!catch judgement system

<!-- TODO: the article itself may probably be simplified -->

## Hit values

![](/wiki/shared/Catch_trails.jpg "osu!catch fruit trails")

| Image | Name | Effect |
| :-: | :-: | :-- |
| ![](img/catch-300.png "Fruit") | Fruit | A large fruit which is equivalent to normal Hit-circle or Slider's starting, repeating and ending point. Catching it is equivalent to perfect hit (shown as 300 on multiplayer and result). |
| ![](img/catch-100.png "Juice Drop") | Juice Drops (Slider Tick) | These large droplets signifies Slider's ticks, similar to the dots (slider ticks) inside the sliders. It is compulsory to catch for combo. It is twice the size of Droplet (Slider Trails). 30pt for successful capture (shown as 100 on multiplayer and result). |
| ![](img/catch-50.png "Droplet") | Droplets (Slider Trail) | These small droplets are slider trails. They form the trails of the slider and are smaller comparatively to Juice Drops. 10pt for each Droplets. It would decrease accuracy for not capturing but does not break combo count (shown as 50 on multiplayer and result) |
| (None) | Miss Droplets | Droplets (Slider Trails) not caught. Not shown in Results screen but is shown in server-side. Combo will not be broken but will decrease accuracy and lose out one of the 50's score. Not considered a miss. Not shown at multiplayer and result but shown as *Droplet Miss* in website leaderboard. |
| ![](img/catch-banana.png "Banana") | Bananas | Spinner's equivalent. These pesky Bananas will become smaller as they fall towards the catcher. It is not compulsory to catch them. 1,100pt given, however this one follows spinner clear in osu! which combines 1000 as bonus and 100 as spinning score. |
| ![](img/catch-0.png "Miss") | Miss | Normal Fruit and Juice Drops not caught. Breaks combo count. Given when failed to catch the Fruit/Juice Drops. No score given and breaks combo. This can only be seen from the results screen. |
Comment on lines -15 to -20
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be extra material for respective hit object articles


## Judgement mechanics

**All except bananas:**
osu!catch is different from the other game modes in that there is no concept of timing or hit windows.

- Full score when collected.
- Miss when failed.
| Image | Name | [Hit value](/wiki/Gameplay/Score/ScoreV1/osu!catch) |
| :-: | :-: | --: |
| ![](img/catch-300.png) | [Fruit](/wiki/Gameplay/Hit_object/Fruit) | 300 |
| ![](img/catch-100.png) | [Drop](/wiki/Gameplay/Hit_object/Juice_stream#drop) | 30 |
| ![](img/catch-50.png) | [Droplet](/wiki/Gameplay/Hit_object/Juice_stream#droplet) | 10 |
| ![](img/catch-banana.png) | [Banana](/wiki/Gameplay/Hit_object/Banana) | 1,100 |

**Bananas:**
## Judgement mechanics

- Constant score of 1,100 per banana collected.
- Nothing happens for missed bananas.
- Accuracy in osu!catch is calculated as the ratio of fruits, drops, and droplets caught.
- Fruits and drops increase combo and cause misses, while droplets and bananas have no effect.
5 changes: 5 additions & 0 deletions wiki/Gameplay/Judgement/osu!catch/fr.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
outdated_translation: true
outdated_since: 1d2e724ee8a7cb4f313653a07c28af43c8443ea4
---

# Système de jugement d'osu!catch

## Valeurs de hit
Expand Down
Loading