Трекер состояния игрока для Windows. Три круга проверки: аудит кода, стратегия, реализация. Каждый вывод проверялся отдельным агентом по первоисточнику — из 172 находок 73 пришлось исправить или отбросить.
main не отправлен| Слой | Файлов | Строк | Доля |
|---|---|---|---|
| Продукт на C# | 10 | 24 395 | 12,2% |
Node-обвязка scripts/ | 184 | 88 075 | 52,5% |
| — из них тесты | 52 | 28 028 | |
| — из них верификаторы | 34 | 18 012 | |
Библиотека src/analytics | 53 | 25 231 | 15,2% |
| Документация | 48 | 31 924 | 19,2% |
| Итого не-продукт | 146 411 | 87,8% |
5,7 строки сопровождения на строку продукта. Ни один .js не попадает на машину игрока — вся Node-часть обслуживает сборку и внутренние отчёты. Это характерный след долгой автономной сессии: при отсутствии обратной связи от реального железа работа уходит в тот слой, который можно проверить локально.
pwsh на машине нет.Отдельная находка аудита: формулу оценки не защищает ни один тест. Подмена двух весов проходит все 54 шага проверки зелёной, а результат уезжает за границу шкалы 0–100 — и это тоже никто не ловит.
Как рынок — заходить не стоит. Но вопрос поставлен неправильно: там не «куча людей», там кладбище.
Восемь продуктов пытались продать анализ состояния игрока. Ни один не смог. Это не «занято» — это «никто не смог», и вторая формулировка хуже первой.
Что делать вместо этого: одна неделя, чтобы проверить единственную гипотезу, которую никто не проверял, на своих собственных данных. Точка решения — седьмой день. Ни установщика, ни подписи, ни магазина, ни денег.
| Продукт | Что даёт | Масштаб | Состояние |
|---|---|---|---|
| Fortnite TrackerСайт и приложение со статистикой матчей Fortnite, от Tracker Network | матчи, киллы, плейсмент, тренды | 112 млн игроков | живо |
| PorofessorОверлей для League of Legends: разбор состава лобби до начала матча | LoL, разбор лобби | 17,4 млн загрузок | живо |
| League of GraphsБесплатная статистика LoL. Вкладка Patterns — прямой аналог замысла SkillPulse | винрейт по часу суток и по номеру матча в сессии, словесные выводы | бесплатно | живо |
| LeetifyАналитика CS2. В марте 2025 выпустили Post-Match Journal — опросник о состоянии после матча | корреляции факторов состояния с винрейтом, с доверительными интервалами | с марта 2025 | живо |
| MobalyticsАналитика LoL и других игр. Держит метрику Tilt внутри блока Consistency | GPI, метрика Tilt | с 2017 | живо |
Обещание «объясню, почему ты играешь хуже» здесь уже закрыто — для LoL и CS2 бесплатно и со словесными выводами. Свободно только там, где у издателя нет публичного матч-API.
| Продукт | Что показывает | Масштаб | Чего у них нет |
|---|---|---|---|
| WhatPulseСчётчик нажатий и кликов для всего компьютера. Работает с 2003 года, три платформы | клавиши, клики, пробег мыши, время по программам, heatmap | 500 000+ польз. $3/мес · $25/год |
игрового контекста, знания биндов, длительности удержания |
| OutplayedПриложение Overwolf для записи игровых хайлайтов. APM — побочная функция | кривая APM вдоль таймлайна матча, среднее за матч и за всё время FAQ | 16,4 млн загрузок | детализации, тайминга отдельных нажатий |
| Replay HUDПервое приложение Overwolf: буфер мгновенного повтора с наложением нажатий на видео | нажатия и движения мыши поверх видеозаписи | 2,25 млн загрузок | агрегатов и аналитики |
| MonkeyTypeТренажёр печати. Их метрика consistency — это коэффициент вариации темпа | consistency = коэффициент вариации темпа | 3,7 млн визитов/мес | это про печать, не про игру |
| NohBoardОткрытый оверлей клавиатуры для стримеров. На него ссылаются сами пользователи в заявках на фичи | оверлей нажатий на экране | опенсорс | аналитики нет вовсе |
Базовый счётчик APM занят трижды. Продавать «APM» или «разброс темпа» как отличие нельзя. Длительность удержания клавиши не меряет никто из них.
| Кто | Чем был | Чем кончилось | |
|---|---|---|---|
| Garmin GameOnПриложение Garmin на Overwolf в паре с часами Instinct Esports. Ближайший аналог замысла | «найди свой оптимальный уровень стресса», реальные датчики HRV | 32,3 тыс. загрузок 2,2 / 5 · 64,7% одна звезда | брошен 2023 |
| WaveClearИзраильский стартап, запуск март 2025. Продавал ровно тезис «трудно оставаться собранным» | Focus Tracker, «Take a Break» | 28,2 тыс. за 16 мес. 23 оценки | сменили тему |
| Aimlabs+ PremiumТренажёр прицеливания, $98 млн инвестиций, 45 млн игроков. Ввели платную подписку на аналитику | подписка $9,99 на анализ своего ввода | 176 отзывов 12,5% положительных | Very Negative |
| iTeroАссистент для LoL, 500 тыс.+ загрузок. В 2024 опубликовали разбор 5 млн матчей по теме сессий | посчитали спад, эффект нашли | 5 млн матчей 100 тыс. игроков | не поставили в продукт |
| Gamer SenseiПлатформа киберспортивного коучинга, куплена Corsair в 2020 | живой тренер по подписке | в сделке на $1,3 млн | сайта нет |
| fortniteskillup.ggТрекер, оценивавший стройку и редактирование по локальным реплеям Fortnite | разбор механики по реплеям | 177 и 182 голоса | домен мёртв |
| FITGMRПриложение о здоровье игроков: сон, питание, привычки. Данные вводятся вручную | ручной трекер привычек | 17 оценок за 5 лет | на дне |
| Klikr · Next Level LabsПриложения Overwolf: тренажёр скорости кликов и «персональные ИИ-выводы по твоим данным» | метрики ввода и выводы по ним | 408 · 1 570 загрузок | 1 и 0 оценок |
Это главная таблица разбора. Garmin пришёл с настоящей биометрией и брендом. iTero посчитала на данных в сорок раз больших, чем будут у вас, — и решила не делать продукт. Так выглядит рынок, на который вы собираетесь.
Доска идей ideas.outplayed.tv выгружена целиком — 4 218 идей. Запросов про статистику ввода: 28 штук, 95 голосов. Они распадаются на три разных запроса, которые нельзя смешивать.
| Что просят | Идей | Голосов | Статус |
|---|---|---|---|
| Базовый счётчик APM OP-I-40 | 6 | ~24 | выпущено 25.02.2021 |
| Оверлей нажатий поверх видео OWPLAT-I-451 | 10 | 45 | закрыто дек. 2025 |
| Детальная статистика ввода | 3 | 6 | висит без ответа |
Третья строка — это ровно профиль SkillPulse. Три идеи и шесть голосов за пять лет.
«We don't really need it, we want it, we find it cool looking at the keys we pressed»
автор идеи с 11 голосами, выпущена
«It was a fun feature to check after the game»
заявка на доске идей Outplayed
«As you play more your fingers get more tired… you're less alert» · «Editing feels awkward my aim feels shaky»
r/FortniteCompetitive — люди описывают спад сами, своими словами
«It's difficult since the information is local unless the app's devs want to communicate it»
r/summonerschool, 130 голосов — люди вручную пересылают друг другу свои цифры
«Don't use APM as a measure of skill… it tells next to nothing about how good you actually are» · «I have 450apm and have never won a game»
27 и 11 голосов — возражение придёт первым
«Em, that's a keylogger»
верхний комментарий под запуском аналога. Автор популярного heatmap сам пишет: «I'm always a little wary that it'll report back somewhere»
Что работает вместо аналитики. Heatmap как картинка — 805 голосов в r/2007scape, 355 в r/lostarkgame, 355 в r/FortniteBR, но комментарии там опознавательные, а не аналитические. И годовой отчёт: Steam Replay — 5 258 голосов, League Year in Review — 2 412. Только они показывают часы, победы и убийства, а не ввод. Формат уже приедается: «can we ban fortnite wrapped posts» — 206 голосов.
| Утверждение | Данные | Источник | Вывод |
|---|---|---|---|
| Внутрисессионный спад существует на популяции | 242 352 матча 207 883 матча | Sapienza 2018 Bikas 2023 | подтверждено |
| …и переносится на конкретного человека | R² = 0,000519 | Bikas 2023 | нет — 0,05% разброса |
| Показ игроку метрик его ввода улучшает игру | p > 0,377 | CHI 2024 | опровергнуто экспериментом |
| Мышь и клавиатура предсказывают состояние | ρ = 0,078 общая 0,188–0,296 персон. | ETH Zurich | только персонально |
| Метрики ввода связаны со спадом в играх | работ нет | — | пробел |
| Длительность удержания различает состояние | AUC 72,1% / 80% AUC 0,81 | JMIR 2022 neuroQWERTY | подтверждено |
| 29 часов без сна ухудшают игровой результат | 40 участников Rocket League | парный дизайн | не ухудшили |
Последняя строка неприятнее всех: даже полное лишение сна не сдвинуло игровой результат — испытуемые компенсировали, перейдя на более простой и безопасный стиль игры. Разница между общей и персональной моделью (0,078 против 0,188–0,296) — это вся разница между работающим и неработающим методом. SkillPulse с константами вместо личной нормы реализует именно общую модель.
| Измерение | Они | Вы | |
|---|---|---|---|
| Сбор ввода | WhatPulse 23 года, Outplayed 16,4 млн | 24 395 строк, ни одного запуска на Windows | проигрыш |
| Данные о матче | GEP для 58 игр; реплеи Fortnite парсятся открытыми библиотеками | нет вообще | проигрыш |
| Дистрибуция | витрины, бренды, подписанный код | неподписанный EXE 76,4 МБ | проигрыш |
| Аудитория | миллионы | ноль | проигрыш |
| Деньги на запуск | Aimlabs $98 млн, Garmin — корпорация | один человек | проигрыш |
| Знание биндов игры | ни у кого | есть, слой 100 мс готов | свободно |
| Длительность удержания | не меряет никто | тоже не меряет — правка на день | свободно |
Пять проигрышей из семи. Выигрыш возможен только там, где сравнения ещё нет.
Во всём материале трёх кругов нашлась одна метрика ввода с опубликованной связью с состоянием конкретного человека — длительность удержания клавиши, время между нажатием и отпусканием.
dwell · holdTime · heldKeys в вашем репозиторииВ обеих работах сигнал несёт именно удержание. Скорость печати и интервалы между нажатиями различий между состояниями устойчиво не дают.
А в коде — Program.cs:2047, метод RecordKeyboard: по нажатию инкрементится KeyDownCount, по отпусканию KeyUpCount. Два независимых счётчика, пара не образуется. При этом в схеме есть action_rate_variance, click_rate_variance, consistency_score — ровно то семейство величин, про которое литература говорит «состояние не различает».
24 395 строк меряют не то. Правка — уровня одного события, один день работы.
windows-latest в Actions или живая машина. 30 минут в полноэкранном Fortnite. Смотреть raw_input_queue_peak_depth и raw_input_read_error_count. Не доходят — всё остальное подождёт.runFullTrust, автозапуск через startupTask. Служб не делать — MSIX их не поддерживает.storedeveloper.microsoft.com — взносов нет.keydown / keyup на коротком тесте печати.Модель: бесплатное ядро плюс разовая бессрочная лицензия 15–20 евро на своём сайте через продавца-записи, с включённым годом обновлений.
Почему не подписка: у одиночки без бренда и дистрибуции это худший вариант. Оговорка честная — подписка в теме не мертва: WhatPulse держит $3 с 2003 года, Firestone $5, но обе стоят на многолетней репутации.
Почему не монетизация Overwolf: только их реклама или их подписки, выплаты NET 60 при пороге $200, только Payoneer. Первые деньги не раньше полугода.
Вывод: в первый год это не доход. Планировать надо от нуля, а первые шаги рассматривать как способ узнать, есть ли спрос.
| Было | К чему привело | Как надо |
|---|---|---|
| Один коммит за 37 дней, remote пуст | нельзя откатиться, нельзя понять, что когда сломалось | коммит на смысловой шаг, push в тот же день |
| Проверки написаны до первого запуска | 88 075 строк упаковки проверяют формат, ни разу не полученный от живого источника | проверка появляется на следующий день после первого реального артефакта |
| Формула оценки не покрыта тестом | подмена двух весов проходит все 54 шага зелёной | золотые векторы пишутся в тот же день, что и формула |
| Веса взяты из головы и не помечены | число, которое видит пользователь, непроверяемо | константа-гипотеза именуется и комментируется в коде |
| Премиса не проверена | 37 дней кода под гипотезу, проверяемую за день | сначала данные, потом код. Всегда |
scripts/Там уже 88 075. Ни одного нового «гейта», «пака» и «прува».Целевое дерево: app/ (коллектор, интерфейс, упаковка) · lib/ (движок, 2 730 строк переносятся дословно) · research/ · docs/ · build/ в .gitignore. Текущие 138 тысяч строк не удалять — перенести в ветку и оставить в истории.
scripts/, а не число ответов на вопрос «работает ли это».Из 172 проверенных находок 73 были исправлены или отброшены верификаторами. Часть ошибок успела дойти до заказчика как факты, прежде чем их поймали.
| Утверждение | Что оказалось на самом деле |
|---|---|
| «Отдых больше 7 дней даёт +3,77 п.п. винрейта» | Отдых не назначается случайно: длинные перерывы берут после плохих серий, а те регрессируют к среднему сами |
| «В Fortnite нет поматчевых данных» | Есть локальные реплеи, три открытых парсера и бесплатный royal-arena.net с 11 001 разобранным реплеем |
| «Overwolf свернул статистику из-за низкого использования» | Цитата искажена — автор сам зачеркнул ключевое слово при правке, и он не подтверждён как сотрудник |
| «В Fortnite про APM не говорят» | 9 постов; мегатред физиотерапевта на 470 голосов строит на APM модель нагрузки |
| «Подписка в этой теме не работает» | Претензии к Aimlabs — к отъёму бесплатного и цене $10, а не к модели. WhatPulse держит $3 с 2003 |
| «APM у Outplayed — подпись к видео» | Это кривая вдоль таймлайна матча плюс среднее по матчу и по всем играм |
| «Перенос слоя захвата на .NET 4.8 почти без правок» | Код использует record struct и init — это C# 10, порт, а не перенос |
Каждая ссылка открывалась и проверялась. Работы и документы, где издатель блокирует автоматические запросы, помечены — открываются в браузере обычным образом.
Рынок плохой: спроса на предмет почти нет, восемь предшественников не смогли это продать, реалистичный первый месяц — сорок установок. Но незанятая точка существует, она одна, она проверяется за неделю на своих данных без единого доллара, и в коде её сейчас нет.
Разумно потратить эту неделю: положительный ответ открывает единственный оставшийся путь, отрицательный закрывает вопрос окончательно — за семь дней вместо ещё одного года.
Что бы ни вышло, главный вывод из этих 37 дней уже получен и стоит дороже любого исхода: проверка гипотезы делается до постройки, а не после, и стоит она день, а не месяц.