Ежедневная тренировка печати работает лучше всего, когда дневной минимум маленький. На этом сайте для серии нужен один засчитанный тест за сутки по UTC, и 30-секундный тест считается так же, как час занятий. Мы сделали так потому, что серия должна возвращать вас к тренировкам, а не превращаться в повинность, которую вы начнёте ненавидеть.
Дольше всего мы спорили не о гоночной трассе и не о защите от читерства. Мы спорили о серии.
Серии работают. Но любой, кто пользовался приложением для изучения языков, знает и это чувство: открыть его в 23:50, чтобы набрать одно предложение, лишь бы цифра не обнулилась. Мы хотели первого без второго. Вот принятые решения с цифрами, чтобы вы сами судили, получилось ли у нас.
Что засчитывается в серию печати?
Серия — это число дней подряд хотя бы с одним засчитанным тестом. Одним. Четырёхминутное занятие продлевает её так же, как часовое, и ничто из сделанного позже в тот же день её не меняет. Режим дзен не считается: результаты дзен никогда не загружаются на сервер, и мы не хотели, чтобы режим без измерений влиял на показатель привычки.
Дни считаются по UTC — это решение, о котором, как мы ожидаем, будет больше всего вопросов. Причины и цена — ниже.
Напоминание и чего оно не делает
Если ваш последний засчитанный день — вчера, а сегодня вы ещё не печатали, серия «под угрозой», и плашка серии на главной странице так и пишет. Это всё напоминание. Никаких уведомлений, писем или красных значков на иконке, если только вы не подписались на еженедельную сводку, где серия упоминается раз в неделю одной строкой простого текста.
Это сделано намеренно и, вероятно, стоит нам части вернувшихся посетителей. Push-уведомления о потере серии — распространённый инструмент возврата пользователей в приложениях для привычек и, по нашему опыту, один из самых ненавистных. В нашем плане было написано: «никаких уведомлений о потере серии без согласия», и мы этого держались.
Если результат приходит задним числом, раньше вашего последнего засчитанного дня (неправильные часы на ноутбуке, офлайн-результат, синхронизированный с опозданием), мы засчитываем тест и не трогаем серию. Расхождение часов не должно стоить никому сотни дней.
Как считаются XP и уровни
XP — валюта времени, проведённого за тренировкой. Это намеренно не рейтинг, и почему — объясним дальше.
За каждый засчитанный тест не в режиме дзен:
- Базовые XP — 2 за секунду активной печати, с поправкой на точность. Тридцать секунд при 95% — это 57 XP. «Активная» означает засчитанную длительность минус секунды отсутствия за клавиатурой, так что открытая вкладка ничего не приносит.
- Засчитывается не больше 600 секунд на тест, так что тридцатиминутный тест приносит ту же базу, что и десятиминутный, и марафоны не доминируют.
- Множители складываются: +50% за точность 100%, +50% за тест с цитатой, +40% за включённую пунктуацию, +10% за включённые цифры. Идеальная цитата с пунктуацией идёт с множителем 2,4×.
- Фиксированные бонусы: +50 за первый тест за сутки по UTC, +50 за попытку в испытании дня, +25 за гонку и ещё +25 за победу в ней, +20 за личный рекорд.
Уровни растут по пологой кривой: чтобы перейти с уровня L на уровень L+1, нужно 100 × L^1,3 XP. В сумме уровень 2 наступает после 100 XP, уровень 5 — примерно после 1 370, уровень 10 — примерно после 7 700, уровень 20 — примерно после 40 300, а уровень 50 — примерно после 343 000.
Чтобы перевести уровень 50 в тренировки: идеальный 30-секундный тест приносит 90 XP без бонусов (60 базовых плюс 50% за идеальную точность), так что нужно около 3 800 таких тестов. Пятнадцать минут в день при точности 95% приносят около 1 760 XP с бонусом за первый тест, и так уровень 50 достигается примерно за шесть-семь месяцев. Для уровня 100 нужно около 1,7 миллиона XP. Названия уровней идут от «Новичка» через «Наборщика», «Клавишного кузнеца» и «Словесника» к «Легенде» на 50-м и «Бессмертному» на 100-м, и да, верх этого списка немного нелеп нарочно.
Если вы гость, ваш браузер применяет те же правила к локальной копии. Вход в аккаунт нужен, чтобы серия и место в дневном рейтинге хранились в аккаунте, а если вы входите в новый аккаунт, локальный прогресс объединяется с ним один раз, с ограничением в 5 000 XP, 500 тестов и серию в 30 дней. Ограничение нужно, чтобы через объединение нельзя было накрутить рекорд; поэтому же значок за 100 дней можно получить только в аккаунте.
Вехи серии — 3, 7, 14, 30, 60, 100, 180 и 365 дней, а значки дают за 3, 7, 30, 100 и 365. Значок за 365 дней, как мы ожидаем, не получит почти никто, и в этом его смысл.
Почему серия устроена именно так
Серию определяют пять правил. Каждое появилось из вопроса: что должен поощрять показатель привычки?
Никаких очков за объём в рейтингах
XP измеряют потраченное время, а значит, поощряют объём. Возьмём двух человек. Первый печатает на 60 WPM и проходит один 30-секундный тест в день с точностью 98%, что приносит около 59 XP плюс 50 за первый тест, то есть примерно 110 в день. Второй печатает на 45 WPM и тренируется по пятнадцать минут в день с точностью 95%, что приносит около 1 760. Более медленный зарабатывает в шестнадцать раз больше.
Для валюты тренировок это правильный ответ: время за клавиатурой — именно то, что нужно тренировке. Для рейтинга это неправильный ответ: рейтинг должен показывать, кто печатает быстрее и чище. Таблица по XP поставила бы второго первым, а подниматься по ней можно было бы, просто добавляя минуты.
Поэтому XP никого не ранжируют. Таблицы лидеров ранжируют скорость с порогом точности; XP видны в ваших результатах и в профиле, но никогда в таблицах. По той же логике устроен экран результатов гонки: место, WPM и точность идут первыми, а строка XP — мелко и внизу.
Нечего покупать
Здесь нет валюты, которую можно потратить, нет магазина, косметических улучшений и ничего, что пропадает, если вы не заходите. Серия — это запись дней, в которые вы тренировались. Как только любую её часть можно купить, цифра начинает значить «тренировался или заплатил» и перестаёт что-либо сообщать. Магазин к тому же даёт сайту причину заставлять вас тревожиться о потере прогресса, потому что тревога и продаёт защиту. Мы не хотели такого стимула в коде.
Никакой платной истории
Ваша история не ограничена и бесплатна, а серия никогда не зависит от того, за что пришлось бы платить. Серия существует ради 90-дневного тренда на странице истории, и этот график — единственная честная проверка того, работает ли привычка. Если запереть старые результаты, вы не увидите то плато, которое вам важнее всего увидеть.
Никакого экрана потери
Когда серия прерывается, а это случится, плашка показывает 1, а ваша лучшая серия сохраняется. Восстановить её не предлагают.
Исследования привычек поддерживают мягкий подход. В исследовании Университетского колледжа Лондона под руководством Филиппы Лалли формирование новой привычки заняло в среднем 66 дней у тех участников, для которых исследователи смогли построить модель, а один пропуск «не оказал значимого влияния на процесс формирования привычки». Если считать пропущенный день катастрофой, люди усваивают, что привычка хрупкая, и некоторые бросают, вместо того чтобы снова начать с 1.
Мы рассматривали «заморозку серии», какую продают языковые приложения, и решили, что делать потерю серии похожей на несостоявшуюся покупку — ровно то, чего мы старались не строить.
Сутки по UTC
Граница суток должна быть одинаковой для всех, иначе таблицы лидеров и испытание дня не смогут её разделять. При местном времени цитата дня менялась бы в разный момент для каждого посетителя, а список «самых быстрых сегодня» сравнивал бы разные дни. UTC — единственная граница, которую сервер может вычислить, не спрашивая браузер.
Цена в том, что для человека в Калифорнии сутки сменяются в 16 или 17 часов, а в Дели — в 5:30 утра. Мы рассматривали сдвиг на несколько часов для каждого аккаунта и отказались от него в первой версии: это ещё одно правило, которое нужно объяснять, а серия, требующая абзаца объяснений, уже проигрывает. Обратный отсчёт испытания дня показывает, сколько осталось до конца текущих суток. Если мы к этому вернёмся, это будет однократно задаваемый сдвиг, и эта заметка об этом скажет.
Как часто тренироваться в печати?
Ставьте низкий минимум. Серия, которой нужно пятнадцать минут, умирает в первый же загруженный день; в плохой день хватит одного 30-секундного теста. На этом построен план тренировок от 40 до 80 WPM: полное занятие — пятнадцать минут, минимум — один тест.
Не гонитесь за бонусом за первый тест в полночь. +50 существует, чтобы короткое занятие имело смысл, а не чтобы вы не ложились спать. Если сейчас 23:55 по UTC и вы устали, серия стоит меньше, чем сон.
Сделайте испытание дня занятием по умолчанию. Это одна цитата, обычно меньше минуты, и его таблица обнуляется каждый день, так что верх достижим. Дизайнер геймификации Ю-кай Чоу говорит о том же: «Стандартный рейтинг с первого места до последнего мотивирует лишь небольшую группу наверху», и предлагает подбирать период обнуления под то, как часто люди действуют: для частых действий — ежедневно.
Следите за линией тренда, а не за серией. 90-дневный график на странице истории — то, ради чего серия существует. Если линия идёт вверх, серия сделала своё дело, даже если прервётся. Если линия месяц стоит на месте, серия заставляет вас печатать, но не делает быстрее, и это сигнал открыть упражнение на слабые клавиши в разделе тренировки вместо привычного теста.
За чем мы следим
Данных об удержании, которые можно опубликовать, у нас пока нет. Когда они появятся, вопрос будет такой: становятся ли те, кто держит 30-дневную серию, быстрее по 90-дневному тренду или просто держат серию? Если второе, дизайн неверен, и первым изменением будет сделать засчитываемым именно испытание дня.
Частые вопросы
Как часто нужно тренироваться в печати?
Чтобы сохранить привычку, понемногу и часто лучше, чем редкие марафоны. Наша серия просит один засчитанный тест в день, а план тренировок предлагает пятнадцать минут, когда они есть, и один короткий тест, когда их нет.
Когда обнуляется ежедневная серия?
В полночь по UTC. Обратный отсчёт испытания дня показывает, сколько часов осталось в текущих сутках по UTC, так что вы видите, когда заканчивается «сегодня», где бы вы ни жили.
Нужна ли в испытании дня идеальная точность?
Нет. Играть можно сколько угодно, засчитывается лучшая попытка, но в дневную таблицу попытка попадает только при точности 90% или выше.