Skip to content

Level Difficulty System

Spencer Spenst edited this page Oct 2, 2024 · 21 revisions

Pathology has an automatic system to assign difficulties to levels based on user play time.

Name Threshold
⏳ Pending -
πŸ₯ Kindergarten 0
✏️ Elementary 45
πŸ“ Junior High 120
πŸ“š Highschool 360
πŸŽ“ Bachelors 600
πŸ’‰ Masters 1200
πŸ”¬ PhD 3000
🧬 Professor 6000
πŸ“œ Grandmaster 12000
🧠 Super Grandmaster 30000

A level's difficulty estimate is calculated by dividing its total play time by its number of solves and multiplying the result by a factor. This factor is based under the assumption that veterans will play and solve levels sooner than beginners, so difficulty should be scaled higher for a lower solve count. It is calculated using the following formula:

$$\text{solveCountFactor} = \frac{0.5}{1 + e^{0.2(\text{solveCount} - 20)}}+1$$

The difficulty estimate is then compared against the above thresholds to find the difficulty category. To show an example, if a level has 5 solves and a total play time of 3600 seconds it would have a difficulty estimate of:

$$\left( \frac{3600}{5} \right) \left( \frac{0.5}{1 + e^{0.2(5 - 20)}}+1 \right) \approx 1063$$

This results in the πŸŽ“ Bachelors difficulty category.

If less than 10 users have played a level, it will show ⏳ Pending instead of a difficulty category.

While playing a level, requests are made every 15 seconds to track play time. If you complete a level and continue to play the same level, the extra play time is not included in the difficulty estimate calculation. However, this extra play time is still tracked in case a new record is set.

To account for inactivity: If you stop playing, play time stops being tracked.

To account for thinking periods: If you stop playing but start playing again within 3 minutes, it is counted as if you had played for the whole time while you were idle.

Note that the level author's play time is not included in the difficulty estimate. The only case where this is not true is if a new record is set, in which case the author's play time after publishing would be included in the difficulty estimate.