Разбираем ранговую систему TypeClash: формула расчёта очков, модификатор точности, штрафы и бонусы. Узнайте, как устроен рейтинг в игре на скорость печати.
Разработка ранговой системы кажется простой только до тех пор, пока вы не сядете её реализовывать: вознаградить скорость, но не настолько, чтобы точность перестала иметь значение; позволить подниматься, но не так легко, чтобы ранг ничего не значил; наказывать за выход, но не настолько сурово, чтобы неудачный матч испортил всю неделю.
Режим «Соло-ранг» в TypeClash прошёл несколько итераций, прежде чем принять текущую версию. Вот логика решений, а не просто формула.
Очевидный вариант — ранжировать всех по лучшему WPM — сразу проваливается. Он поощряет небольшое количество удачных быстрых попыток вместо стабильного навыка, не даёт причин заботиться о точности и не предлагает новичкам ничего, кроме числа, которое уже занято опытными пользователями. К тому же его можно накручивать: спамить попытки, пока один выброс не даст результат.
Шахматный ELO работает, когда каждый матч имеет чёткую победу/поражение против другого рейтингового игрока. В TypeClash матчи по набору текста в основном соло — вы не соревнуетесь напрямую с вводом соперника в реальном времени, а оцениваетесь относительно цели. Поэтому более полезное сравнение — не «кто лучше кого», а «насколько ваш результат соответствует ожидаемому для вашего текущего уровня».
Каждый ранг имеет ожидаемый диапазон WPM. Ваши очки меняются в зависимости от того, насколько вы превзошли (или не дотянули) это ожидание:
изменение_очков = (ваш_WPM − ожидаемый_WPM_для_ранга) × 2 × модификатор_точностиМодификатор точности — самая интересная часть:
Последняя строка — ключевая. При точности ниже 80% модификатор становится отрицательным — то есть даже если ваш сырой WPM превышает ожидание ранга, вы всё равно теряете очки. Это осознанное решение: без него стиль «быстро и грязно» выигрывает у «быстро и чисто» по эффективности очков, что противоречит целям платформы для набора текста.
Поверх формулы действуют несколько жёстких правил:
Границы важнее, чем кажутся. Без минимального прироста игрок, выступающий ровно на ожидаемом уровне, получает почти ничего за матч — это неприятно, даже если «правильно» по формуле. Без реального штрафа за выход бросить проигрышный матч выгоднее, чем завершить его — что разрушает суть ранговой игры.
Бонусы за серии (+5 за 3 победы, +10 за 5, +20 за 10) добавляются поверх основной формулы, а не вместо неё. Они поощряют стабильность, не становясь доминирующим механизмом — основная формула всё ещё разделяет уровни навыка, а серии просто делают хорошую сессию чуть приятнее, чем сырая математика.
Ранги варьируются от «Новичок» (5–15 WPM) до «Мифический» (151+ WPM) через одиннадцать уровней, каждый со своим ожидаемым диапазоном WPM. Масштабирование нелинейно — диапазон WPM расширяется наверху (Божественный, Трансцендентный, Мифический имеют более широкие полосы, чем ранние ранги), потому что популяция игроков быстро редеет на высоких скоростях, и узкая полоса приводила бы к слишком малому количеству матчей в диапазоне, чтобы быть осмысленной.
Полная таблица рангов доступна в репозитории документации, если нужны точные числа.
Хотите увидеть, как на самом деле чувствуется подъём? TypeClash запущен на typeclash.versatiletechnology.in.
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →