Пользователь
0,0
рейтинг
7 декабря 2011 в 13:06

Разработка → Data Mining в онлайн играх

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

Мы захотели узнать, почему уходят игроки и можно ли предсказать их уход. Предмет исследования – ММОРПГ Аион, однако наши результаты оказались применимы к широкому кругу игр и онлайн сервисов.

Чуть ли не британскими учеными установлено, что у пользователя очень короткая память. Сегодня он ушел из игры, а завтра уже не вспомнит, что он вообще ее устанавливал. Если игрок ушел, то действовать надо немедленно. Но как нам определить, действительно ли ушел человек, или просто сегодня вечером пьет пиво с друзьями и в игре не появится? Идеальным случаем было бы предсказание потенциального ухода еще до того, как пользователь нас покинул. И даже до того, как в его сознании зародилась мысль, что Аион не похож на торт. Наверное, такая задача тоже решаема, однако мы ставили более реалистичную цель – оперативно предсказывать уход в день последнего логина в игру. Уходом назовем неактивность человека в течение недели – и мы как раз не хотим ждать эти 7 дней, а желаем знать как можно скорее, что игрок больше не вернется. Мы желаем знать будущее!

Техническая сторона


Для анализа у нас было море информации – у Аиона лучшая система логирования, что я видел среди корейских игр, мы буквально знаем об игроке каждое его движение, каждый чих и каждый след, который он оставил на сервере. Период для анализа – первые девять уровней в игре, около 10 стартовых часов геймплея – за этот период отваливалась примерно половина всех новичков.

На проект выделили часть ресурсов нашей системы аналитики – два блейд сервера Dual Xeon E5630 32Gb RAM, 10 Tb холодного хранилища для исходных и промежуточных данных, 3 Tb горячего хранилища в RAID10 SAS массиве для рабочих данных. Оба сервера под MS SQL 2008R2 – один под БД и один под Analysis Services. Программная часть решения – стандартный пакет Business Intelligence от Microsoft, входящий в SQL Server.

Фаза 1 – я все знаю!


Поскольку я много лет был геймдизайнером и провел под сотню плейтестов, то был уверен, что и сейчас экспертное мнение даст 90% ответов почему уходят игроки. Не научился пользоваться телепортацией, надоело бегать ногами – ушел. Умер от первого же монстра в игре – ушел. Не выполнил вторую миссию, застрял и не знает что делать – ушел. Аион, при всем его качестве и технологичности, не самая дружелюбная к новичку игра. Это черта всех корейских игр, рассчитанных на хардкорную и гиперсоциальную среду корейских игроков, а не одиноких скучающих российских казуальных пользователей.

Я одел шляпу «обычного юзера» и прошел бесплатное начало игры за обе расы и несколько классов, выписав все корявости, нелогичности и проблемы, сформировав первый список гипотез для проверки:
  • Раса и класс персонажей. Предполагалось, что класс будет самым сильным фактором, поскольку геймплей за Целителя разительно отличается от косящего всех направо и налево Мага.
  • Играл ли человек в другие игры – у нас единый аккаунт для всех проектов, так что легко проследить кросс-конверсию.
  • Попробовал ли игрок более 1 персонажа – познал ли другие классы и расу.
  • Сколько раз он умер на уровнях 1-4, 5-7 и сколько раз умер всего за триал.
  • Вступал ли в группы с другими игроками, в том числе с высокоуровневыми (т.е. явно знакомыми по другим играм или в реальной жизни)
  • Сколько на компьютере оперативной памяти, поскольку Аион требователен к ресурсам
  • Получал ли персонаж почту и вступал ли в гильдию – явный признак «твинков», вторичных персонажей, созданных уже активными и опытными игроками.
  • Сколько заданий выполнил персонаж к данному уровню, сколько заданий отменил и сколько просто не взял
  • Проходит ли игрок внутриигровые опросы, за которые дают хорошие плюшки
  • Какими умениями персонаж пользуется в бою и убивает монстров

Список получился внушительным, расписанный до деталей, и способов расстроить новичка до потери желания играть было найдено множество. Заводим в модель первые пару гипотез, предсказываем булеву переменную is_leaver – уйдет ли игрок прямо сейчас, на 7-ом уровне:


Как читать lift chart: нижняя наклонная прямая линия — это результат генератора случайных чисел, предсказывающего нашу булеву переменную научным методом бросания монетки. Верхняя линия, быстро доходящая до 100% — это оракул, идеальный предсказатель будущего. Между ними находится неровная, трепещущая ниточка – это наша модель. Чем ближе график к идеальной линии – тем выше предсказательная точность модели. График приведен для 7-го уровня, но картина похожая от первого до девятого.

Fatality! Наша первая модель предсказывает уходящих игроков чуть-чуть лучше метода орла и решки. Отправляем в модели оставшиеся гипотезы, чистим данные, процессим:


Уже лучше, но все равно точность чуть выше 50%. А если посмотреть детальнее recall (ошибки второго рода), то картина грустная:


Эта же таблица русским языком – из каждых 100 предсказанных моделью уходов 49 будут ложные (игрок никуда уходить не собирался), точность модели составит 1008/(1008+982)=51%. При этом еще часть реальных уходов модель вообще пропустит – примерно 28% из истинно ушедших [391/(391+1008)=28%]. Внимание, это не каноническое определение recall, но такая формула нагляднее.

Итог фазы 1: все изначальные идеи провалились, предсказание не работает. Шеф, все пропало!

Фаза 2 – мы ничего не знаем


Полный разгром и бегство с поля боя, и вечный вопрос «Что делать?». На помощь приходит наивный алгоритм Байеса – максимально человеко-читаемый и понятный из всех data mining классификаторов. Анализ Байесом показал, что выбранные гипотезы довольно слабо характеризуют ушедших и остающихся игроков, то есть я ошибся с выбором изначальных предпосылок. Но, поиграв с глубиной и чувствительностью другого алгоритма, дерева принятия решений, стало понятно – есть правильные гипотезы, дерево ветвится по ним, но факторов решительно недостаточно – рост дерева прерывается на 2-3 ветке.

Не забираясь в дебри математики, которые и сам не понимаю, упрощенно — алгоритм дерева решений делит исходные данные на сегменты с максимально низкой итоговой энтропией, то есть на максимально непохожие наборы данных. Если дерево перестало ветвиться – значит, нужны новые гипотезы и новые метрики в исходных данных, чтобы дерево глубже разделяло входной поток данных и лучше предсказывало будущее.

Я собрал брейншторм с командой проекта, где мы фонтанировали идеями – кто же наши новички, как они играют, чем они отличаются друг от друга. Вспоминали истории как наши подруги и жены знакомились с Аионом, и что из этого вышло. Итогом брейншторма стал дополненный список индивидуальных гипотез (пользовался ли игрок телепортацией, расширил ли себе инвентарь, привязал ли точку воскрешения и т.д.) и новая идея – хорошо бы посмотреть насколько вообще отличается активность уходящих от остающихся в игре.

Для изучения средней активности мы рассчитали несколько метрик:
  • число монстров, убитых на данном уровне
  • число выполненных заданий на уровне
  • время в минутах, проведенное на каждом уровне

На этом этапе заодно была переделана ETL часть проекта (загрузка, преобразование и очистка данных). Наш SQL-гуру Илья сделал на SSIS анализатор-конструктор, в который легко подключаются новые события из логов игры. Логов гигабайты, так что недостатка информации не было, а новые гипотезы придумывались каждый день.

Загрузили, обучили, верифицировали, проанализировали. Не буду грузить вас морем lift chart’ов по каждому уровню и каждой модели, приведу сразу обработанные и проанализированные данные:


Пик точности на 9 уровне был связан с внутренней особенностью игры на момент исследования.

В целом картина улучшилась в области 2-4 уровней, но 6-8 ниже плинтуса, с такой точностью данные нам просто бесполезны.

Дерево принятия решений бодро показывает – факторы активности являются самыми важными для предсказания ухода. По сути, три величины – время на уровне, убитые монстры и сделанные задания – определяют львиную долю уходов. Остальные факторы добавляют не более 5% точности. Также дерево по-прежнему остается голым, крона обрывается на третьей ветке – то есть модель жаждет больше релевантных метрик. Что еще непонятно – точность трех алгоритмов сильно меняется от уровня к уровню.

Итог фазы 2: успех идеи об измерении средней активности, а не индивидуальных факторов. Но точность предсказания все еще неудовлетворительна. Путь по граблям вывел к правильной последовательности анализа результатов – сначала факторы и корреляции (Байес), потом их влияние на итог (дерево решений).

Фаза 3 – мы знаем куда копать


Воодушевленный прогрессом, я наметил три вектора развития проекта – больше метрик общей активности, больше специфических метрик индивидуальной эффективности, и более глубокое изучение инструментов Microsoft BI.

Поэкспериментировав с активностью, мы остановились на следующем наборе:
  • Проведенное время на текущем уровне, на предыдущем уровне и суммарное время в игре к текущему моменту
  • Скорость убивания монстров – штук в минуту на текущем уровне, предыдущем и всего.
  • Скорость выполнения заданий в минуту – аналогично мобам.
  • Среднее время в игре на игровой день, проведенных дней в игре и НЕпроведенных дней (например, человек входил в понедельник и среду – пропущен 1 день).

Эти метрики дали хорошее снижение пропущенных случаев, практически в полтора раза. Дерево решений начало ветвиться до 9 узлов, что показывает релевантность метрик. Плюс хорошим признаком была унификация деревьев для разных уровней – если в прошлой фазе, как я писал, от уровня к уровню сильно скакала точность алгоритмов, то теперь было явно видно – дерево бьется на первом-втором-третьем узле ровно по одним и тем же показателям, независимо от уровня персонажа. И наивный Байес уже отстает от дерева и нейронной сети процентов на 5-10.

Пришлось повозиться с новыми индивидуальными метриками, связанными с глубиной геймплея и эффективностью игры, например процентом автоатаки. Мы сегментировали персонажей по классам (воины направо, целители налево) и для каждого класса рассчитали 25, 50 и 75-й перцентили распределения по %% автоатаки, и разбили всех на 4 категории. Теперь данные нормализованы, и игровые классы можно сравнивать между собой – на вход data mining моделей уходит номер категории.

В онлайн играх персонажи убивают врагов разными заклинаниями и способностями. Автоатака – бесплатный, самый базовый (и слабый) удар, дающийся с рождения. Если игрок эффективен, то он применяет способности своего персонажа – и %% автоатаки среди всех его ударов будет не очень высоким. Однако сильно от игровой механики зависит, какой же именно этот процент для разных классов. В Аионе получился разброс от медианы в 5% для мага до 70% для воина, и даже внутри класса дисперсия высока.

Индивидуальные метрики закрепились на глубине седьмого-девятого узла дерева, т.е. они прибавили пару процентов к точности предсказания, но не улучшили ситуацию кардинально. Следующим шагом было штудирование книги Data Mining with Microsoft SQL Server 2008 на предмет тонкостей работы с Analysis Services. Сама по себе книга помогла только с настройкой чувствительности дерева (от силы плюс один-два процента прироста точности), но натолкнула на мысль о правильной дискретизации.

В примере выше с автоатакой мы сделали ручную дискретизацию данных – разбиение на категории по каким-то признакам. SQL сервер автоматически делает дискретизацию несколькими способами. Экспериментальным путем я быстро понял, что алгоритм разбиения и число сегментов очень сильно влияют на предсказательную силу модели. Ручное изменение числа сегментов сильно влияет на форму и точность дерева. На ручную подгонку я потратил неделю, скрупулезно для каждой структуры каждого уровня (а это 9 уровней по 30+ метрик) экспериментируя с числом сегментов. Для каких-то метрик оптимальным было 7 сегментов (например, время на текущем уровне), для каких-то 12 (суммарное время в игре), для каких-то больше 20 (число убитых монстров).

Ручная настройка дала сильный прирост предсказанных значений – точность при этом не сильно повысилась, но модели стали делать заметно меньше пропусков, а результаты дерева сравнялись с нейронной сетью:

Итог фазы 3: мы вышли на приемлемые показатели точности и аккуратности и узнали много интересного про нашу игру и наших игроков.

Фаза 4 – только победа


Я, честно говоря, думал, что потолок достигнут – дерево ветвится глубиной до 9-12 узлов, аккуратность сильно улучшена. Новые гипотезы точность никак не повышают, новые факторы никакой информации не дают. В принципе, общая точность в 78% и recall 16% — это удовлетворительно для начала работы с игроками. Я бы, наверное, не стал при таких цифрах давать бесплатную подписку для удержания в игре, но сообщать игроку релевантную информацию уже можно без особых ошибок.

Помощь пришла неожиданно – поскольку data mining проект длился уже третий месяц, у нас несколько устарели логи – игра же изменилась за это время. Подгрузив немного свежих данных, а заодно в очередной раз доработав ETL процедуры, мы заметили изменения в моделях. На новых данных они вели себя иначе – при, в общем-то, прежней точности и аккуратности, разбиения дерева были другими. На этом этапе все три алгоритма обучались очень быстро – минуту на каждый уровень из 9, и накормить их дополнительным набором данных просто.

Сказано – сделано, выгружаем вообще все накопленные за 3 месяца данные и одним махом направляем модели обучаться (процесс стал занимать не минуту, а целых пять на каждый уровень – не критично). Очередной раунд ручной подгонки, и вот итог:



Увеличив объем обучающих данных, мы сделали процесс обработки дольше, но зато какой отличный результат!

С первым уровнем, к сожалению, немного можно сделать – около половины уходов, как сказал бы Авинаш Кошик, “I came, I puked, I left”. У нас есть данные о буквально паре действий игрока – и дальше он закрывает клиент игры и никогда не возвращается обратно.

Напоминаю, что все исследования выше – это обучение на накопленных исторических данных. Теперь я хочу проверки боем! Проверяем на живых данных – берем свежих, сегодняшних пользователей, прогоняем через модель и сохраняем результат предсказания. Через неделю сравниваем предсказания модели с объективной реальностью – кто из недельной давности новичков действительно ушел, а кто в игре остался:



Самое интересное


Первая цель проекта – предсказание ухода новичка из игры – безусловно достигнута. С такой точностью уже можно принимать решения по возврату игрока, общаться с ним, мотивировать его, давать плюшки. И это предсказание почти в день ухода: сегодня вечером человек вышел из игры – завтра в 5 утра данные обработались и вероятность ухода уже известна с высокой достоверностью.

Достигнута ли вторая цель, знаем ли мы теперь почему уходят игроки? Нет. И это самый странный для меня результат – при отличной вероятности предсказания ухода, вопрос «А почему?» остается без ответа. Помните, я начал проект с выписывания гипотез об индивидуальных факторах, вида:
  • Раса и класс персонажа
  • Играл ли человек в другие игры Инновы
  • Попробовал ли игрок более 1 персонажа
  • Сколько раз он умер на уровнях 1-4, 5-7 и сколько раз умер всего
  • Вступал ли в группы с другими игроками
  • Сколько на компьютере оперативной памяти
  • Получал ли персонаж почту и вступал ли в гильдию
  • Сколько заданий выполнил персонаж к данному уровню, сколько заданий отменил и сколько просто не взял
  • Проходит ли игрок внутриигровые опросы
  • Какими умениями персонаж пользуется в бою и убивает монстров
Таких факторов было проверено множество — более 60. Ни один из них не является сколь-нибудь существенным и определяющим уход игрока. Ни один! Не нашли мы в игре какого-то магического барьера, который вызывает отток игроков.

Самый главный фактор? Прошел ли игрок первые 7 уровней в первый же день знакомства с игрой (7 уровней – это примерно 3 часа игры). Это ключевой предсказатель ухода – если в первую же сессию игрок не увлекся и не потратил 3 часа, то очень вероятно, что игру он бросит. Следующая по силе группа факторов – это общая активность игрока:
  • Проведенных минут в игре на текущем уровне, прошлом и суммарно
  • Минут нахождения в игре в среднем за игровой день
  • Убитых монстров в час на текущем уровне, прошлом и всего
  • Скорость выполнения заданий – штук в час

Резюме: мы получили два совершенно разных результата – предсказание ухода игрока на основе метрик общей активности, и детальный анализ индивидуального стиля игры. Мы с высокой точностью предсказываем уход каждого новичка, и мы способны сказать каждому новичку десяток способов как лично он может улучшить свой стиль игры, как он мог бы играть эффективнее, пользоваться всеми фишками игры, и получать больше удовольствия.

Победа!


За два месяца, с нуля – никто из нас никогда даже близко с data mining не сталкивался, — с помощью двух книг и желания попробовать что-то новое, на основе созданной нами мощной, но пассивной системы аналитики в Иннове, мы сделали инструмент, активно смотрящий в будущее. В отличие от обычной отчетности и аналитики трендов на исторических данных, мы в 6 утра уже знаем почти наверняка о наших вчерашних новичках в Аионе – увидим ли мы их сегодня в игре или нет. И можем действовать, пока еще не поздно.

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

PS. Если тема хабравчанам интересна, то можно продолжить – про предсказание уходов старичков, сегментацию и кластеризацию, миграцию между кластерами и другие data mining проекты, которые мы сделали в уходящем году.

PS2. Вторая книга, рекомендую абсолютно всем — Программируем коллективный разум
Дмитрий Ножнин @wildmandnd
карма
113,2
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (87)

  • +4
    Интересная тема, хороший результат, но напрашивается эксперимент: Предсказатор намекает уход -> игрок «случайно» находит вкусную плюшку, уйдет ли игрок?

    Про дедушек интересно было бы почитать.
    • +3
      Про случайности хорошо почитать «Чёрного лебедя» Насима Талеба. Если кратко, то случайности находятся за рамками модели, в то время как предсказатор работает внутри рамок модели.
      • 0
        Я так понимаю что «случайно» не зря в кавычках. Было бы действительно интересно насколько снизится процент ухода при нахождении плюшек.

        Но как я понимаю ваш предсказатель не работает в реальном времени, и не сможет так быстро вычислить необходимость плюшки? Не планируете начать анализировать действия игрока в реальном времени?
        • +1
          Анализ в реальном времени для гиперлокального и контекстного геймдизайна — это очень горячая тема, и я над ней давно думаю. Но такая аналитика должна зашиваться на этапе проектирования продукта, а не задолго после релиза. Так что планирую, но когда уже буду делать свои игры :)
    • 0
      С другой стороны, теоретически, можно определить какие плюшки были бы интересны игроку и повысить вероятность их нахождения. На уровне статистики, я думаю, что вы можете создать выборку действий игрока, в случаях когда предсказатор намекал на уход, а игрок находил плюшку (учитывая, что данные берутся по истории действий, это вполне реально) и посмотреть % тех, кто после этого продолжал играть и тех, кто уходил.
      • 0
        Немного не такой подход, но в сторону удержания активно работаем. Будет статистика — опубликую ближе к весне.
  • +6
    Я всегда верил в то, что инструменты статистического анализа, какими бы скучными они не казались, скрывают за собой огромный потенциал применения в совершенно разных сферах жизни. И ваша статья это в очередной раз доказала!
  • 0
    Тема интересна.

    А у вас модель для «старичков» уже работает?
    • 0
      Да, работает, но по старичкам пока еще в стадии активного исследования — проверяем гипотезы.
  • +1
    Огромное человеческое спасибо автору! Учусь по специальности «Системный аналитик», но еще ни разу не встречал настолько интересный и показательный пример интеллектуального анализа данных.
    Единственное — становится страшновато, так как сам играл в Айон и чувствую себя овечкой в ведомом стаде =)
  • +11
    Пробовал я ваш этот Aion хвалёный. Скачал клиент, зарегал триалку, зашел в игру. Первое впечатление — круто! Всё красиво, технологично, удобно и продумано. Высокоуровневый контент, думалось мне, еще лучше. В-общем, начал играть.

    Качнул пару уровней, дошел до ближайшего поселка. И там меня сходу ошарашили боты, стоящие на главной площади и беспрерывно орущие в чат что-то вроде «продам голд за смс». Штук 10 их там стояло, каждый спамил с интервалом в 2-3 секунды. Вам рассказывать дальше, почему я тут же разочаровался и покинул игру навсегда? Это ведь даже не бета была, проект уже твердо стоял на ногах минимум полгода. Такой пофигизм прежде всего демонстрирует отношение к игрокам — если допускаются настолько раздражающие вещи, то о чем-то большем и говорить не стоит.

    Я вернулся обратно в WoW, о чем и не жалею. Да, там тоже есть черный рынок, и в чате регулярно появляются предложения купить голд за реал. Но дело не в этом, такое будет в любой ММО. Но всё не настолько нагло.
    • +7
      Борьба с ботами по ряду причин не очень выгодна компании, особенно учитывая то что разработчики системы защиты против ботов (фрост) сами же продавали систему «антифрост», позволяющую этих самых ботов разводить :)
      • 0
        Ну, я, собственно, об этом главным образом и говорил.

        Отношение к игрокам следующее — вот вам сервер, вот вам клиент, вот ваша абонплата. Всё есть? Ну и развлекайтесь как хотите, там какие-то квесты, данжи и прочее, кажется, было. Если NCSoft сделает дополнение, переведем, проинсталлим, будет вам еще нямка. Всё остальное не наша забота.
    • +3
      Плюсую.
      Мне кажется ещё, что при анализе не учли самый главный фактор, когда игра — гуано. Тогда игрока в ней ничем не удержать.
      • 0
        на данный момент aion является одной из самых высокотехнологичных игр этого жанра… графика, управление, интерфейс (есть конечно ряд просто нереально дибильных ляпов, но куда уж без них)

        чего стоят таке сладости как груповые/альянсовые метки, внутри-игровая база квестов и поиска целей, сбор группы, пвп данжи (целый один),… даже обычный клипбоард между игрой и операционной системы оказывается невероятно сложен в других играх (я пробовал много).

        У меня есть предположение что развитие и выход Tera online и Blade&Soul придерживаются исключительно чтобы побольше собрать сливок с Aion, а не из-за каких то технических или организационных проблем (не надо говорить что в корее они уже есть… там даже не готов ПвП контент… почти платный альфа тест).
        • 0
          >У меня есть предположение что развитие и выход Tera online и Blade&Soul придерживаются исключительно чтобы побольше собрать сливок с Aion

          А не из-за выхода GW2 через полмесяца?
  • +13
    Статья хорошая, но труд автора в целом не очень полезен с точки зрения спасения проекта.

    Собственно, я и запускал AION в России (всю тех часть).

    Суть проста — AION неинтересен игрокам, и никакие исследования тут не помогут.

    Саркисян просто ткнул пальцем в небо и попал не туда ;).

    1) Модель платной подписки в России не работает, кроме cовсем уж монстров типа WOW

    2) Дикое количество ошибок, сделанных корейцами в коде (тупо — они даже с TCP/IP ухитрялись неправильно работать, в результате чего на «длинных» линках было огромное количество проблем — NOACK и прочее) — даже на качественных линках (но больших расстояниях) постоянные «фризы».

    3) Все игроки жалуются что игра просто тупа и однообразна.

    Результат — AION фактически провальный проект (CCU поинтбланка уже похоже выше CCU AION, при затратах на последний в десятки миллионов долларов, на первый — максимум сотни тысяч).

    Недаром Иннова сейчас пошла в Европу и США именно с «Линейкой» (я этим и занимался проработкой пока -сяны не решили грязно кинуть команду инженеров).
    • 0
      1) Откуда дровишки данные?
      Когда Властелина Колец Онлайн перевели на f2p, были недовольны практически все игроки. Фритуплей как бы по умолчанию переводит игру в категорию В, что сразу снижает к ней интерес. Люди готовы и хотят платить за качественный проект. Поинтересуйтесь, сколько людей в России и странах СНГ готовы играть в SWTOR даже при условии того, что он не локализован. Сколько народа играло на старте AoC. Сколько играет в Rift.
      • +2
        Данные сугубо практические.

        По поводу сверх-качественных игр — как я и написал, люди платить готовы, но AION никоим образом таковой игрой не является (что в принципе даже сам NCSoft понял).
      • 0
        Когда LOTR перевели на f2p у него доходы выросли (дай б-г памяти) то ли в 2, то ли в 5 раз ;)
    • 0
      именно! третий пункт! игра поражает в начале своей красотой, но потом просто убивает своим однообразием и обилием хомяков(игравшие поймут). это словно проклятие какое то. все хорошие игры убиты донатом или изжили себя. действительно красивые — убоги по сути своей.
    • 0
      По первому пункту — ф2п это ужасно. И со временем даже наши школьники смогут это понять. Фактически, ф2п это признак некачественного проекта, проекта, где разработчики махнули рукой на игру и придумывают не новые квесты, а новые предметы, которые можно подороже продать за реал. Ф2П это просто убийца игрового интереса, причем убивает он интерес и тех кто платит и тех, кто не платит. Я в свое время был и тем и другим.
      • 0
        С моделью Eve Online знакомы? Там вроде как абонентская плата (15$/мес), но «донаторы» могут тайм-коды продавать за игровую валюту. В итоге, утрируя, для «задротов» игра бесплатна (за выходные при прокачке 3-4 месяца было реально нафармить на тайм-код на месяц), а «донаторы» не тратят время фарм игровых ресрусов. Да, бесплатный триал на 2-3 недели позволяет при высоком онлайне и активности накопить на месяц оплаты, плюс есть способы передавать ресурсы от одного триала к другому, а значит «заработать» на тайм-код за несколько триалов (прокачка теряется). Правда, говорят, мыть окна машинам или дворником поработать эффективнее, но если есть выбор, это лучше когда его нет.
      • 0
        не согласен. фтп добавляет в игру классовое неравенство. этот сложнейший социальный элемент из реальной жизни переносится в игру именно так и добавляет игровому плоскому миру объема и жизни. кому нужны все эти однообразные квесты, когда люди приходят играть друг против друга, доказывать окружающим, что он круче?
        • 0
          Это все равно, что вот сейчас в нашей реальности появятся люди с некими сверх-способностями, которые им выданы по меркам нашего мира незаслуженно. Мы, находясь в этом мире, не будем понимать, за что им такие блага. А раз эти блага у них есть, то они просто станут некой кастой супергероев и будут жить своей жизнью.
          Плюс ко всему теперь все те, кто жил в этом мире, был полностью погружен в него, теперь узнают, что этот мир на самом деле не настоящий и захотят его покинуть, ведь там где-то есть более настоящий мир, зачем оставаться здесь? Одним словом атмосфера будет нарушена.
          • 0
            Вы, когда встаете утром, не забываете ли протирать глаза? У нас есть такая каста в стране. И не только у нас — в каждой стране она есть.

            Есть теория, которая подтверждается изысканиями математиков вроде Мандельброта и упомянутого выше Талеба и которая говорит, что 80% благ находится в распоряжении 20% людей. Они — наши вполне реальные «супергерои», которые живут своими жизнями и играючи влияют на наши. А еще существуют религии, которые говорят, что реальный мир ненастоящий. У этих конфессий есть миллионы последователей.

            Что вам не нравится в атмосфере ф2п игр? Люди приходят играть в реальность. И они получают то, за чем приходят. Единственное, что ненастоящее в таких мирах — объекты. Они моделируются машинами. Все остальное — власть, деньги, страсти, эмоции — настоящее не бывает.
            • 0
              Говорю еще раз, только другими словами.

              Для того чтобы создать мир (игровой, не важно какой), нужно изолировать его от внешней материи. Нужно пускать в мир только нематериальные вещи — волю, намерение, эмоции. Если в мир будет попадать чужая материя, она просто сотрет этот мир, он сольется со внешним миром. Вместо того, чтобы предложить посетителю пожить в нем он теперь будет предлагать посетителю лишь некие забавные инструменты, которыми можно манипулировать. Вон, как у хоккеистов есть клюшки и шайбы, он предложит подержаться за что-то подобное. Игроки останутся в своем прежнем мире и будут только дергать за рычажки.

              Теперь смотрите: я не уверен, так ли вы понимаете суть игры, как и я, но по моему игра это некая возможность полного перерождения. Вы садитесь играть, чтобы родиться заново, чтобы вновь на некоторое время ощутить радость детства, познания, взросления и т.д. А теперь представьте, что вы уже переродились и живете этой новой жизнью, но тут вдруг приходят админы и говорят: все, возвращайтесь обратно к своей старой реальности — теперь на вашу новую жизнь будет полностью влиять ваша старая жизнь. Кем вы там были в старой жизни? Бедняком? Вам нет спасения — вы им и останетесь! Что? Богачом? Ну тогда на что вы жалуетесь — платите и теряйте интерес теперь и к этой реальности! Есть деньги, но не хотите платить? Не вопрос — не платите… но вы же теперь будете знать, что другие платят, верно?
              Будда настаивал, что даже когда мы перерождаясь теряем память, эта круговерть перерождений все равно остается для нас адом. Теперь вы и этого лишены. Перерождайтесь со своей старой памятью и вступайте в сражение с извечной скукой. Зачем играть в такие игры, если реальность и без того под рукой? Бессмыслица.

              Все, игровой мир никого уже не волнует. История? Конфликты? Атмосфера? Древние расы? Зачем все это нужно, если мы уже не живем в том мире по настоящему, с чистого листа? Это все равно, что придумывать сюжет и предысторию для шахмат. Есть фигурки, вот и двигай ими — чем не игра?

              Надеюсь эта аналогия донесла до вас смысл того, что я хотел сказать?
            • 0
              И кстати, я не против классового неравенства — наоборот, это здорово и добавляет интереса. Я против того, чтобы оно переносилось из реала в виртуал. В общем-то об этом я выше и написал.

              По поводу модели eve online, она, помоему, имеет право на жизнь до тех пор, пока влияние ее на игровой мир мизерно по сравнению в процессами самого мира.
              • 0
                я прекрасно понял вашу точку зрения еще до прочтения этого развернутого объяснения. понимаете, какая беда: деления «реал/вирутал» не существует. хотя бы потому что и там, и там люди играют в себя любимого и настоящего. то, что вы описываете — прекрасно как идея. примерно так же в теории прекрасны коммунизм и демократия. но все это утопии. ft2, p2p… это всего стратегии монетизации, также как коммунизм и демократия — всего лишь способы организации общества.

                в итоге, с точки зрения вашей же идеи, даже вам должно быть все равно, какую из них воплотят в отдельном проекте, потому что есть черный рынок, и вы его не убьете никак. а он, без оглядки на бизнес-модель, и добавляет львиную долю того, что вы хотите «повесить» на f2p
                • 0
                  Идея мне нравится, но я вообще не максималист, поэтому достаточно малого — чтобы разработчики создавали свою игру так, чтобы в ней не было реальной валюты. Например, предметов, которые можно купить только за реал. Там ведь чем дальше развивается проект, тем больше создатели уделяют внимания торговле реалом, чем другим аспектам игры. Поэтому игра в каком то смысле часто превращается в некий кемпинг, где туристы снимают домик, вместо того, чтобы его строить из растущего рядом леса или по старинке самим ставить палатку.
    • 0
      пока -сяны не решили грязно кинуть команду инженеров

      Кстати как там эта история поживает? А то завязка была, а развязка?
      • 0
        Ситуация достаточно патовая

        Дело закрыто против инженеров (или под сукном), -сяны (пока) утихомирились (ибо те деньги что они «сэкономили» они уже потеряли намного больше на всей шумихе).

        Против «Инновы» было 5 заседаний (тут уже понятно, что при всех ресурсах что у них есть — пять слушаний это уже весьма не по-детски), на 5-м похоже они смогли договориться с прокурором (потом мне уже рассказали что в местной прокуратуре у них тоже подвязки), мы будем подавать апелляцию.

        Что буду делать дальше я? Писать заявки в британские и американские службы на них, ибо как раз они решили выходить на эти рынки, да и не верю я что что-то осознали (просто затихли на время).
  • 0
    Спасибо, мне как заядлому игроку в WoW тема Data Mining в ММОРПГ действительно интересна. Требую продолжения банкета!
    P.S. Вы эту фичу на заказ делали?
    • 0
      Про заказ не понял. Нам было интересно научиться датамайнить — сделали :)
      • 0
        То есть пока что делаете всё для себя? Это круто! Я думаю если вы представите ваш подход заинтересованым фирмам, то вас скорее всего озолотят.
        • 0
          В России заинтересованных фирм особо нет :)

          А вообще — в октябре я был в Остине на GDC Online, и там руководитель аналитики Blizzard рассказывал про их подходы к сегментации и анализу. Они молодцы, впереди моей команды на два шага минимум.
          • 0
            Ну, это близзы… Рабочее место моей мечты, только в Париж переезжать лень.
          • 0
            А есть возможность посмотреть видео с этого выступления?
            • 0
              Есть, но платная или для участников конференций с all access pass — www.gdcvault.com
              • 0
                Это я знаю. А возможность для не участников посмотреть есть? Запись на видео хостинге, например?
  • 0
    Таких факторов было проверено множество — более 60. Ни один из них не является сколь-нибудь существенным и определяющим уход игрока. Ни один!

    Там есть фактор типа «сломал дорогой предмет при переточке»?
    • +2
      На первых 10 уровнях :)?
  • 0
    Вы упомянули две книги, но точно назвали только одну. А какая вторая? И было интересно узнать какие ресурсы сети были для вас полезными на пути от «с нуля» до рабочей и полезной модели?
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Ну по сути две книги:

      1. «Программируем коллективный разум» Тоби Сегаран — отличная книга для понятия предмета датамайнинга
      2. «Microsoft SQL Server 2008: Data Mining. Интеллектуальный анализ данных» Д. Макленнен, Ч. Танг, Б. Криват — это по самому инструменту, как делать
      • 0
        Я бы добавил еще учебник по матстатистике к списку и пару книжек по обработке многомерных данных.

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

        Ну а вообще круто, мне нравятся такие задачки :)
    • 0
      Спасибо, добавил в статью, книгу рекомендую абсолютно всем:
      www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325
      • 0
        За ссылки спасибо. Книга в очереди на прочтение :)

        Чем то кроме продукции MS из софта пользовались? что нить типа R или Weka?
        • 0
          Нет, инструментов MS BI полностью достаточно пока, и я даже удивился насколько они простые и эффективные.
  • +1
    Вопрос у автору: вы пробовали добавлять в анализ гипотезы, не связанные непосредственно с игровым процессом? Фактически, своим исследованием вы еще раз подтвердили, что причина оттока игроков лежит далеко не в самой игре. Собственно, для этого не надо было тратить два месяца и кучу технических ресурсов, достаточно было предложить отдельным личностям в компании почаще смотреться в зеркало.
    • +3
      Труд автора заслуживает уважения, особенно тем что он фактически не понимает реальной цели почему Саркисян попросил его это сделать.

      1) Потрачены впустую миллионы долларов (десятки миллионов), + кабальные контрибуции NCSoft'у ежемесячные.

      2) Проект провальный (не блещет сама игра + много полу-уголовных личностей в команде / топ-менеджменте + провальная работа с пользователями и массмедиа)

      3) Надо искать (срочно) оправдания, желательно с красивыми графиками и большим «базисом».

      Далее — из пустого места делаются исследования, которые в результате ничего не дадут (даже если вдруг придумать что-то «мега») — корейцы просто отказываются ради Инновы делать какие-то существенные изменения в коде (мельчайшие вещи можно годами просить изменить).
    • 0
      Спасибо за статью, очень интересно было прочитать на тему data mining.
      Тоже хотел спросить на тему «почему уходит игроки», разве разработчики форумы/социалки не хотят почитать? Часть людей пишет (далеко не все конечно), что ушли по какой-либо причине и часто ее подробно описывают, да еще и очень красочно.
      • 0
        Пардон, это был не ответ в коммент, а ответ в топик.
      • 0
        На тему «кого слушают разработчики» есть хорошая статья: kanobu.ru/blog/id293711/
      • +2
        Это никому не интересно.

        Мало того, вообще в свое время удалось с трудом отстоять форум «инновы», ибо топам жутко не нравилось что там люди пишут и было принято самое удобное решение — просто закрыть.

        Эти ребята не умеют даже на два шага вперед смотреть, они привыкли решать проблемы «здесь и сейчас».

        Задача сейчас — найти оправдания провальности проекта, и под это дело подтягивают «научную базу», хотя полчаса нахождения на форумах и так даст все ответы ;)
        • 0
          Не совсем согласен. Автор говорит про отсеивание новичков. Разговор о тех кто уходит после пары-тройки часов игры. Такие игроки вряд ли будут тратить время на «душе-изливание» о причинах ухода, так как они почти и не приходили. Регистрироваться на форумах и досках вряд ли кто то из них будет.
          • 0
            Если люди играют — то на одном из форумов они сидят, да и не надо путать все же теплое и мягкое (хотя это и рядом ;) ) — если игрок ушел с одной игры, он вполне может себе играть в другую (например ушел из AION и вернулся в Линейж, или начал играть в PB)

            Это исследование вообще достаточно странное, ввиду того что как раз такой сверхважный факт просто не учитывает (миграция пользователей между проектами даже внутри компании), что сильно портит картину ;)
            • 0
              Кросс-конверсию взяли как один из факторов в первой фазе. И как я понял этот параметр попросту отсеялся, так как алгоритм показал его минорный эффект.
              • 0
                Но это как раз глубоко ошибочно :) Очень много пользователей как раз пробуют тот же Aion и возвращаются к тому что больше нравится.

                Иннова (различными методами) скупила достаточно / получила права на достаточно большой объем различных проектов игровых, и внутренняя миграция весьма высока.

                Еще раз, все «исследование» — в принципе фикция, ибо причины оттока / миграции совершенно очевидны, а если проводить анализ — то по всем проектам компании одновременно (но у Инновы просто нет технической возможности это сделать) — особенно с учетом наличия lineage2 в портфолио.
  • +1
    Таких факторов было проверено множество — более 60.

    Огласите, пожалуйста, весь список.
    про предсказание уходов старичков

    Очень интересно — эта аналитика гораздо сложнее представленной(до 9 уровня, который можно вкачать за 2.5-3 часа). Где-то год назад я покинул EU Aion Perento, играя в режиме хардкор PvP. Хотелось бы узнать те факторы, которые по вашему мнению могли на меня повлиять.
    • 0
      Для старичков гораздо больше данных и другой подход.

      Для новичков мы берем мгновенный срез на сегодня, и этого достаточно. Для старичков — делаем срезы с интервалами 3-7 дней и сравниваем изменения метрик между срезами. И недавно второй метод решили посмотреть — отталкиваться от кластеров и искать «протекающие» кластеры, группы риска — откуда больше всего отток игроков идет.
      • 0
        Расскажите о паре интересных факторов для «старичков». Например, социальные связи, стиль игры(если есть такие), чтобы полная версия аналитики была долгожданной ;)
        • 0
          Сложно анализировать уходы тех, кто перестает активно играть — выполнять квесты, убивать мобов, — но при этом сидит в игре часами. Поскольку непонятно что они делают, то не работают старые метрики активности. Работаем по ращным направлениям, вплоть до подключения чат сервера и анализа активности общения.
          • +1
            Кстати, да, часто захожу в игры лишь чтобы пообщаться. Когда круг общения по разным причинам уменьшается, то бросаю игру.
    • +1
      Привет норм-чантеру из Аетерисов:)
  • 0
    Для ответа на вопрос «почему уходят игроки?» вы делали факторный анализ?
    • 0
      Нет, это пока за пределами моих знаний
      • 0
        Вы сильно сократили бы время на обработку если бы использовали не только модный «data mining», но и классическую матстатистику :)
        • 0
          Купим в офис пару учебников, попробуем!
  • 0
    Я бы в выводы добавил еще, что хорошая система логгирования действий игроков в онлайновом продукте — это альфа-и-омега аналитики. Не зная, что, как и сколько делают ваши юзеры, крайне сложно анализировать факапы.

    Дима, спасибо за статью — натолкнуло на несколько мыслей. Как ты считаешь, возможно ли общее решение для таких проблем? Например, middleware, которое на вход берет параметры, а на выходе дает прогнозы? Или игры настолько разные, что привести к общему знаменателю нереально?
    • 0
      Я думаю возможно, но бессмысленно. Как я в конце четко разделил, предсказательные выводы не имеют описательной силы. Да, игрок уходит — но факторы предсказания ничего не могут дать для качественного понимания ситуации. А детальное исследование геймплея глубоко индивидуально, и еще меняется для игры довольно быстро по мере ее развития. По мере построения детальных данных обобщенная активность набирается сама собой, т.е. предсказание является как бы следствием изучения геймплея конкретной игры.
  • 0
    Почему просто не провели дифференциальную статистику между теми кто активно играет и теми кто ушел? Уверен социальные действия играют основную роль.
  • 0
    Судя по последней таблице, получается, что на каждом из первых 7 уровней уходит по 90% игроков. И получается, что до 8 уровня добирается только 1 игрок из 10 миллионов запустивших игру. Я правильно понял эти данные?
    • +1
      Нет. Из застрявших на каждом уровне уйдут 90%, а 10% — пили пиво, уехали на дачу, но будут дальше играть. А активные — они быстро проходят за 10 уровень. Я в начале написал, что на триале мы теряем примерно половину всех новичков.
      • 0
        Застрявшие — это те, которые за один присест не проскочили все 7 уровней?
        • +1
          Не совсем. Из проскочивших за 1 присест неважно сколько на самом деле уровней, 9 уровень — это тоже один долгий вечер. Но есть большАя часть тех, кто играет 2-3 дня прежде чем забросить игру — вот их определять интересно.

          Я выкинул из статьи слишком уж техническое описание приема с 9 уровнем — там на самом деле данные были разделены на два потока — тех, кто набрал 9 уровень за 1-2 дня и тех кто за 3-7 дней. Для них были построены принципиально разные модели.
  • +1
    В конце концов, задро^W твинко/мультоводы разнюхают все про «плюшки», научатся имитировать «уходящих» игроков и будут тоннами их (плюшки) фармит.
  • +1
    Кстати, а почему у вас на первом графике смайлик в середине превращается в девочку 9го уровня? :)
    • +1
      Незамеченный прикол :)
  • 0
    Спасибо автору за интересную статью. Мне на самом деле не важно, какие внутренние проблемы испытывает сам проект, почему он провальный/не провальный и какие еще политические нюансы здесь есть (хотя об этом комментариев в топике не меньше половины) — я считаю, что для данной задачи подобные метод анализа пришлись весьма кстати. Похожие методы также применяются в веб-аналитике (имя Авинаша Каушика в статье как бы намекает), за основу берутся данные, полученные например из Google Analytics.
  • 0
    интересная статья, на счет первых уровней тут имхо банально не то, что ожидал игрок! — это так сказать одним высказыванием. Часто реклама одно, а игра совсем не то, что было в рекламе, также трудность без денег на начале этапа или скажем в понимании сразу же грузит. Я лично смотрю жанр и графику — это первые из-за чего я сразу закрою не начав скорее всего играть, может пару действий. Потом юзабилити становится тоже важным и т.д.
  • 0
    По возможности, не могли бы вы поделиться примером «самого лучшего в мире лога» :)
    Хочется понять, что такое «каждый чих» и оценить уровень атомарности событий.
  • 0
    Интересно было бы почитать про ваш опыт сегментации и кластеризации игроков.
  • 0
    Супер, отличная статья. Я пытаюсь сделать предикт в другой предметной области, есть общие вопросы, можете рассказать:
    1. Сколько у вас было независимых переменных в датасете для decision tree?
    2. Как вы измеряли ценность вклада независимых переменных в значение?
    3. Как вы оценивали качество дерева?
    4. Как вы делили численные переменные на классы? Я пробовал руками, автоматическим дискретизатором, outcome = shit.
    5. Использовали ли вы prunning для дерева?
    6. Где можно почитать про «сначала факторы и корреляции (Байес), потом их влияние на итог (дерево решений).» не понял, о чем речь :)

    Прямо сейчас у меня два исхода: либо чудовищно сложное дерево на сотни листов от 8 независимых переменных, либо десяток узлов с включенным prunning.
    • 0
      1. Вообще фичей пробовали много десятков, в финальную модель вошло что-то около 10, если я правильно помню.
      2. Не измерял
      3. Когда работал с деревом, то визуально — смотрел на каких сплитах дерево дает сильные ошибки. В SQL Server такая визуализация по умолчанию, очень удобно. А качество в целом — сравнивал с другими моделями, с байесом и нейросетью.
      4. Дискретизатор встроен в SQL Server. Число бакетов подбирал руками, это была самая долгая работа.
      5. Конечно, есть несколько ограничителей — либо по числу потомков в ветках, либо по complexity (не знаю адекватного перевода). Тут тонкая область — мы пару раз обламывались на переобученных моделях, так что дерево надо перепроверять как другими моделями, так и на выделенных для верификации данных.
      6. Имелось ввиду, что чем лучше мы знаем и понимаем данные, тем правильнее можно скомпоновать модель. Например, если некая фича X сильно корреллирует с предсказываемой (а это как раз и есть анализ Байесовской модели), то её очистке, нормализации и дискретизации надо уделять пристальное внимание в первую очередь.
  • 0
    Для визуалов видео от конкурирующей конторы (я к ним отношения не имею, но выступление мне понравилось):
    https://www.youtube.com/watch?v=7O1PX6qzntI

    я слишком «слаб» для вставки видео или кнопка не работает :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.