Инструмент исследования игрового онлайна XBOX Live - ВАЖНОЕ ВСТУПЛЕНИЕ

Прошёл ровно год с момента, когда я немного отошёл от сбора статистики исключительно русскоязычного сегмента Xbox Live и переключился на сбор глобальной статистики. Но прежде, чем я детально расскажу про свой проект, призываю внимательно посмотреть на еженедельную говнотаблицу, которую постит TrueAchievements:

Ссылка на источник: https://www.trueachievements.com/news/xbox-gameplay-chart-spyro-reignited-trilogy
Ссылка на источник: https://www.trueachievements.com/news/xbox-gameplay-chart-spyro-reignited-trilogy

Если пройти по ссылке, внизу будет примечание:

Chart compiled using gameplay data from over 2.4 million active Xbox accounts. Chart information is copyright GameInsights. For details on how the chart is calculated, click here.

Почему я считаю эту табличку сраным говном?

Во-первых, она не даёт никакого представления о соотношении игроков. Первое и второе место -- разница прям в разы, или исчезающе мала? Во сколько раз десятое место меньше первого? А вот опустилось с 11 места на 12 -- это сколько человек отвалилось? Нет ответов.

Во-вторых, всегда говорил, говорю и буду говорить: цифры по миру без дифференциации по странам -- это средняя температура по больнице. Разница в игровых предпочтениях колоссальна: в русскоязычном сегменте, например, популярны Сталкер, Атомик-Харт, Танчики. Зато бейсбол и японская эпилептическая наркомания внизу таблицы. В других странах тоже есть свои особенности, и их можно и нужно изучать.

В-третьих, 2,4 миллиона игроков выглядят внушительно. Но как часто вы их опрашиваете? 2,4 миллиона -- это те, что вы опросили, или те, что были онлайн? И если первое, то сколько из них были онлайн?

В-четвёртых, это же просто количество игроков на прошлой неделе. Но как долго они играли? 30 минут или 6 часов? В какую игру дольше всего? А если сравнить с прошлой неделей?

В общем, несмотря на то, что эта таблица -- трижды переваренный кал говна, она еженедельно выходит на труачивментс уже почти 6 лет и вызывает неизменный интерес неприхотливой публики.

Этому городу нужны новые таблицы

Прежде чем мы окунёмся в безумный мир цифр, хочу выразить свою благодарность @masha_zhulanova, которая, можно сказать, инициировала мои изыскания в данном направлении, и давно выпилившемуся отсюда @Кое-кто, создателю закрытого gamstat.com, с которым я поддерживаю связь через Твиттер. Если бы не они -- всё было бы иначе, если вообще было бы.

Итак, как я поставил себе задачу:

1. Непрерывно получать информацию об игроках online:
а) во что они играют
б) как долго
в) на каком устройстве

2. Для каждого игрока необходимо определить настройки его региона, т. н. "Локаль", которая в общем случае представляет собой пару "страна-язык", например, en-US или ru-RU

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

Задача выглядит внушительно.

Но оно готово.

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

Это прибор!

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

Я выложил фронт-энд часть на гитхаб (впрочем, и часть бек-энда тоже) и, если есть желание, можете присоединиться к проекту, я буду только рад, потому что не умею ни в UX, ни в UI, с трудом освоил (ну как, частично конечно же) библиотеку d3.js и всё сделал на ней. Себя я считаю в большей степени бек-эндером, потому что больше прёт от работы с базой, скриптов, шелла и вообще разноцветных букв на чёрном фоне. Это не говоря о том, что я вооще не программист ни разу, отвечаю за эксплуатацию, как в песенке поётся "менеджер самого среднего звена".

Откуда берутся цифры

Это самый важный момент. По большому счёту, решается две большие задачи: первая -- непрерывное сканирование он-лайн игроков и вторая -- поиск новых геймеров.

Брутфорс -- наше всё. Он идёт непрерывно. Не вдаваясь в детали, на сегодняшний день забрутфорсено 370,8M геймертагов.

Майкрософт против такого рода использования его API, поэтому предусмотрел механизм Fine-Grained Rate Limiting, который "наказывает" мои скрипты, если они начинают слишком интенсивно запрашивать информацию из Xbox Live. Для борьбы с этаким недоразумением, запросы выполняют 40+ левых акков, старательно созданных мной. Каждый из этих акков имеет друзей, трёхзначный геймскор, несколько постов в ленте, пару бесплатных игр на акке и несколько в виш-листе, входит в какой-нибудь клуб и вообще почти как настоящий.

Среди этих 370,8М меня интересуют только те, что были он-лайн в последний год. Это относительно дешёвая операция с точки зрения Майков, за один запрос "Presence" можно получить информацию о 1100 игроках, а таких запросов можно отправить 20 в минуту с одного акка.

Дальше для игроков, которые были он-лайн, мне необходимо определить страну. Есть всего лишь один способ это сделать: запросить для каждого игрока список его скриншотов и клипов. Дело в том, что мета-информация для клипа/скрина содержит локаль. К сожалению, этот запрос уже достаточно "дорогой": один раз в 10 секунд для одного игрока. Тем не менее, к настоящему моменту удалось определить локаль для 30,5М игроков.

И вот эти 30,5М игроков я и сканирую.

Сравните теперь с TrueAchievements.

По идее, если игрок не появлялся он-лайн больше года, то есть смысл убрать его из списка (переместить в список 0, где 370,8М), чтобы не сканировать. Но у меня начало полноценного сбора информации -- февраль 2024, поэтому таких пока не появилось.

30,5M игроков, 1100 игроков на запрос, 43 левых акка, 3 секунды на запрос, ну там ещё туда-сюда, в базу из базы, на сегодняшний день получается примерно 17 минут -- период опроса игроков. То есть каждые 17 минут каждый игрок из 30,5М проверяется на предмет в какую игру он играет. Понятно, что есть погрешность, та самая +/- 17 минут. Но есть закон больших чисел, и я фиксирую период опроса, добавляя его половину к началу и окончанию периода, когда я его видел он-лайн. Таким образом, если мы говорим про 10 игроков, то точность будет никакая, если мы говорим про сотни тысяч, то можно смело рассуждать о единицах минут.

Немного подытожу

В мою выборку НЕ попадают

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

Казалось бы -- выборка говно. Но -- 30,5М прошедших сквозь все эти фильтры игроков не дают соврать, а дают весьма правдивую картину происходящего.

В дальнейших нескольких постах я постараюсь детально разобрать интерфейс и особенности.

Ну а пока можно потыкаться без понимания:

Можно сравнить с новой таблицей от ТА, которая тоже вышла сегодня. Налицо разница в цифрах. Кому больше верить? Авторитетному изданию с 6-летней историей постинга статистики, или анонимусу с ДТФ, который только что возник из ниоткуда? Вам решать. Я могу подтвердить каждую строчку временем и геймертагом, пацанам с ТА надо верить на слово. Надо будет, кстати, подумать относительно создания механизма проверяемости в моей стате.

И, если говорить про сталкер, то он был на четвёртом месте в первый день выхода. Скрин не сделал, к сожалению, так как был уверен, что всё ещё впереди. Тем не менее, результат, как я считаю, отличный. Не всякая игра влетает в топ настолько убедительно.

Ответы на вопросы

Q1. Нет ли желания монетизировать?
A1. Это пет-проект, хобби, которому уже больше 9 лет. Румяный менеджер с бюджетами и дедлайнами превратит фан в рутину. Я начинал "с нуля" уже не меньше 6 раз, всякий раз неистово кайфуя и никуда не спеша. К тому же мои скрипты сбора инфы нарушают все возможные EULA, поэтому на легальном поле игровой аналитики мне делать нечего.

Q2. Дайте статистику по Playstation!
A2. "Продано 115 миллионов приставок!" (©Misery)

Q3. А вот график из Стима, там всё иначе!!!
A3. В стиме есть разбивка по странам? Нет? Вообще я планирую завести список п%дарасов, куда включать всех стимофилов, что влетают в комменты, не разобравшись, размахивая какими-то графиками, как своими грязными трусами, и начинают спорить с таблицей умножения.

1414
11
11
25 комментариев

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

тут тебе не место чао какао арибидерчи бельмандо

4
3
Ответить

Респект таким аутистам☝️. В хорошем смысле этого слова. Особенно создание левых акков впечатлило.

3
Ответить

Ещё больше можно впечатлиться, если увидеть, что на половине акков пройдена Forza Horizon 2 Presents Fast & Furious на 800 геймскора

4
Ответить

Чуть меньше упоминаний говна и было бы совсем хорошо.

2
Ответить

Сложно. Но буду работать над собой, спасибо. Последствия чтения комментов с того жопораздирающего поста

3
Ответить

Ультрахарош!

Не думал связаться с ТруАчивментс, чтобы они перестали постить свою хуйню и просто использовали твою таблицу?

2
Ответить

Я им писал как-то по другой теме, когда разбирался с ачивками и хотел на них линкануть свой ресурс. Заигнорили, твари, хотя Маша и просила просто подолбиться к ним, мне что-то стало лень.

Думаю, есть смысл как-то довести эту фигню до более-менее приличного состояния и начать с ресетеры.

Ну и да, моя стата вне легального поля, в отличие от GameInsights, которые наверняка решили свои юридические вопросы

2
Ответить