Инструмент исследования игрового онлайна XBOX Live - выбор периода (2/7)

Продолжение "нулевой части" (вступления) -- если вы её не читали, прошу начать именно с неё. В выборе периода нет ничего сложного, но следует понимать, что означают цифры и откуда они взялись.

"Делай раз, делай два, делай три!"<br />
"Делай раз, делай два, делай три!"

Кликай сюда:

Период выборки (Sampling)

На текущий момент я непрерывно сканирую 30,5М геймертагов. Эта цифра непрерывно растёт, увеличиваясь примерно на 200 тысяч в неделю. Для всех сканируемых игроков я знаю страну, которую взял из скринов/клипов, я рассказывал об этом во Введении. Эти 30,5М геймертагов распределены на 43 левых акка, каждый акк опрашивает в 2 потока, примерно по 305 тысяч на поток. Каждые 3 секунды поток запрашивает Presence на 1095 игроков (ссылка на Документацию Microsoft), ну там ещё накладные расходы на БД и задержки, но важно, что по окончании цикла он записывает в отдельный лог, сколько времени ушло на какое количество акков. По рассчётам должно быть 30546055/43/1095/2*3=972 секунды (16:12), по факту в последнем столбце на скрине -- почти 17 минут, что очень близко к теоретическому пределу. Вот так это выглядит на текущий момент:

xuids -- число отсканированных игроков, secs -- сколько секунд ушло на них, num -- номер потока<br />
xuids -- число отсканированных игроков, secs -- сколько секунд ушло на них, num -- номер потока

Точность (Accuracy)

Когда вы пишете в базу он-лайн статус такого количества игроков, ситуация, при которой в базу не было записей несколько секунд, становится практически невозможной. А если видна "дырка" в несколько минут, то это уже сто процентов сбой либо в скрипте, либо в сервисе Xbox Live (да, там тоже бывают сбои). При сборе и агрегации сводки за период, я суммирую все дырки, длительностью больше 60 секунд, и показываю их, делёные на длину периода в секундах. Получившееся значение я умножаю на 100 и вычитаю из 100, обзывая в таблице выбора периода "Accuracy" и снабжая значком процента (%).

Если в этой колонке 100%, то скорее всего не было ни простоя скриптов, ни сбоев Xbox Live. Если там значение существенно ниже 100%, то это должно подорвать доверие ко всем абсолютным цифрам в основной таблице

Период (Period)

Вообще, я сперва вообще не хотел делать период "Day" открытым, потому что слишком большие отклонения, не имеющие отношения к играм. То есть, четверг -- рабочий день и завтра рано вставать. Пятница -- рабочий день, но завтра не вставать. Суббота -- выходной и не надо вставать на следующий день. Воскресенье -- выходной, но в понедельник вставать. Получается, что 4 дня в неделю имеют свои конкретные особенности, связанные с календарём, а не с играми. Недельная статистика в этом смысле куда более аккуратна.

Несмотря на то, что начало сбора информации -- 2 февраля 2024, по неизвестной мне причине я добавил сохраниение устройства только в конце октября, c 27 числа.

Это приведёт к тому, что в начале декабря появится статистика за ноябрь, но она будет отчаянно врать в сравнении с прошлым месяцем. С другой стороны, она будет врать в абсолютных цифрах, если же сравнивать проценты, то с некоторой погрешностью на эти результаты можно будет опираться. Лучше же всего дождаться начала января, когда будет стата за декабрь, сравниваемая с полноценным ноябрём.

Будет ли стата за год? Увы, полноценная только в 2027 иншалла. Ну, то есть в январе 2026 что-то такое будет, но это опять будет сравнение полноценного 2025 с неполноценным 2024, где из всего года инфа будет доступна только для ноября и декабря

Количество игроков (Gamers)

Игрок в моих таблицах -- это не физический игрок, а чуть более сложное понятие:

Число разных игроков за неделю -- 15,8М, но сумма всех игроков по всем играм -- 40,4М. Как так?<br />
Число разных игроков за неделю -- 15,8М, но сумма всех игроков по всем играм -- 40,4М. Как так?

Поясню: редкий геймер за неделю запустит ровно одну игру. Если поделить 40,4 на 15,8, мы получим, что в среднем за неделю геймер поиграет в 2,56 игр. Так вот, в таблице выбора периода количество игроков -- это количество уникальных геймеров, которые за указанный период запустили хотя бы одну игру.

Поэтому теоретически возможна ситуация, когда 80% поиграли в Майнкрафт, 70% поиграли в Роблокс, потому что многие играли и в то, и в то, и сумме можно получить 150%, поигравших в обе игры. Поэтому с процентами аккуратнее! Именно для этого я показываю абсолютные цифры. Складывать проценты нельзя, нужно сложить абсолютные цифры и делить на эту сумму игроков в ту или иную игру. Математика за 5 класс.

Часы (Hours)

Похожая картина с часами: я делю сумму всего времени в секундах для каждой игры на общее количество уникальных игроков, и получаю общее количество времени, которые играл средний человек. При этом хоть и редко, но я наблюдал картину, когда человек играл на Xbox в какой-нибудь тайтл, и одновременно раскладывал пасьянс в Microsoft Solitaire на iPhone. Возможно, он дал телефон ребёнку, не знаю, но факт: скрипты такого человека просуммируют, как если бы он за 1 час наиграл сразу на 2. Но такая ситуация редка, к счастью.

Насколько можно доверять этой цифре? Мы же помним про 17 минут -- частоту опроса игроков. Значит ли это, что 17,8 часов в неделю надо рассматривать как +/- 17 минут? Нет, конечно. Закон больших чисел так не работает. К тому же у нас есть теорема Котельникова, согласно которой точность зависит от частоты дискретизации. В нашем случае частота дискретизации составляет 30.5M / 1000 секунд, примерно 30,5 кГц. Что даёт нам точность в оценке времени порядка 0,65%. Но! Это конкретно для нашей таблицы выбора периода. Если бы мы смотрели на строку с игрой, к примеру, где было бы всего 10 игроков, ни о какой точности не могло бы быть и речи.

Надеюсь, стало немного понятнее, что и откуда берётся. Буду рад вопросам и замечаниям (интересно, хоть кто-то дочитал до конца?)

77
9 комментариев

интересно, хоть кто-то дочитал до конца?Конечно нет, читать на дтф дальше заголовка не принято. Надо быстрей бежать и спрашивать про псн или стим

2
Ответить

лайк, в закладки, почитаю, но это не точно

2
Ответить

Мне кажется GB и US перепутали местами

1
Ответить

Сам в шоке, но нет, перепроверял уже тыщщу раз. Две гипотезы: первая — что когда-то, до брутфорса, я набрал изначальный пул геймертагов через социальный граф — друзей, друзей-друзей, друзей-друзей-друзей и так далее. В результате туда попала Великобритания.
Вторая — что игроки из регионов, где отсутствует Xbox Live, тупо ставят первый попавшийся регион с языком English, а там стоит GB.
По идее, если первая гипотеза верна, то брутфорс должен выровнять картину. Но пока что я не наблюдаю такой динамики

1
Ответить

Из неочевидного интерфейсного решения — все всплывающие окна можно возить по экрану, чтобы они не загораживали информацию в основной таблице

1
Ответить

Да все супер, то, что за прошлую неделю можно было выбрать мне понравилось. Хотел еще посмотреть конкретно цифры по Mass Effect Andromeda и 3 приблизительное количество игроков, так вроде как играют и на боксе активнее, чем на ПК говорят.

Еще на моей старой операционке Win8 только браузер Firefox подгрузил таблицу, но выделять платофрмы и выбирать дни в таблице не даёт. На Win 10 в браузере Edge все шикарно работает.

1
Ответить