Щоденне тренування друку найкраще працює, коли щоденний мінімум невеликий. На цьому сайті для серії потрібен один зарахований тест за добу 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% або вище.