Собесов

My Games — анализ механики ежедневных заданий: узкие места и точки роста

Кейсы и метрикиИгровые исследованияСредняяJunior

Условие

В вашей F2P онлайн-игре есть механика ежедневных заданий: игроки получают опыт (один из основных способов получения exp) и игровую валюту. Для выполнения нужно совершить игровую активность в рамках core-механики.

Особенности:

  • Задания генерируются после завершения предыдущих или при отказе игрока (за игровую валюту).
  • В день можно выполнить неограниченное число заданий.
  • Задания различаются по сложности (есть указание в карточке) и наградам.
  • С ростом игрового уровня задания усложняются и приносят больше наград.
  • Все игровые действия логируются.

Ваша задача: исследовать механику и найти узкие места или точки роста.

Опишите подробно:

  1. Какие гипотезы будете проверять и как.
  2. В каких срезах и какие метрики будете изучать.
  3. Какие графики и таблицы используете для иллюстрации.

Решение

Подход

Daily Quests — это типичная engagement loop: задание → активность в core → reward → желание сделать ещё. Узкие места ищем по принципу:

  1. Воронка квеста: получение → принятие → завершение → получение награды.
  2. Воронка между квестами: завершил → взял следующий или ушёл.
  3. Экономика: что игроки делают с реварды? Тратят ли?
  4. Ретеншн через квесты: возвращаются ли в следующий день из-за квестов?

Гипотезы

# Гипотеза Как проверить
H1 Часть квестов слишком сложна — на них юзеры массово отказываются Distribution отказов по difficulty; CR завершения по difficulty
H2 Часть квестов слишком лёгкая — юзеры выполняют, но не вовлекаются Time-to-completion по difficulty; повторные сессии после лёгких квестов
H3 Cost отказа в валюте слишком высокий — юзеры терпят неинтересный квест % отказов от % завершений по difficulty; падение DAU при «провисании» квестов
H4 Награда за quest обесценивается на high-level (инфляция игровой валюты) Сравнение спенда валюты в разных уровнях
H5 Игроки, выполняющие 3+ квеста в день, имеют выше D7 retention Cohort retention by daily-quest-count
H6 Первый квест после релога — критичен. Если он сложен, юзер уходит CR первой сессии по difficulty первого квеста
H7 Награда не покрывает стоимость core-активности (energy / time) Net economy per quest type

Метрики и срезы

Метрики

Метрика Что показывает
Quest funnel CR получено → принято → завершено
Skip rate % отказов на каждой сложности
Median time to complete сложность правильная?
Quests per DAU вовлечённость в механику
Quest completion → next quest retention внутри сессии
D1/D7 retention by quest behavior связь с long-term retention
ARPDAU by quest behavior монетизация
% sessions with quest привычка
Currency net flow per quest экономика

Срезы

  • Уровень игрока: новички (1–10) / средние (11–30) / high-level (31+). Эффекты разные.
  • Тип квеста (если категории есть): «убей X врагов», «зайди в режим Y», «крафт Z».
  • Сложность: easy / medium / hard.
  • Платящий / не платящий: киты часто реагируют иначе.
  • Часть дня: квесты могут «теряться» в нечётное время.
  • Платформа: mobile vs PC, если кросс-платформа.

Графики и таблицы

  1. Воронка квеста: bar-chart с долями {received → accepted → completed → reward_claimed} с группировкой по difficulty.
  2. Skip rate by difficulty: stacked bar — на каждом уровне difficulty доля {skipped, completed, abandoned}.
  3. Time-to-completion distribution (boxplot или violin) по difficulty и уровню игрока. Видно outliers — задания, которые либо «слишком долгие», либо «мгновенные».
  4. Cohort retention table: DAU день 1 → день 7. Когорты — по quest_completed_d1 = {0, 1-2, 3-5, 6+}. Видна связь «больше квестов → выше retention».
  5. Time series: % DAU, выполнивших ≥ 1 квест по дням; средний skip rate. Подсвечивают системные сдвиги (после патча).
  6. Heatmap «quest type × outcome»: какие типы квестов чаще скипают.
  7. Currency-flow Sankey: откуда приходит валюта (quest reward, store, etc.) и куда тратится.

Реализация — типовые SQL/Python

-- Воронка квеста
SELECT
  difficulty,
  COUNT(DISTINCT CASE WHEN event = 'received'  THEN quest_id END) AS received,
  COUNT(DISTINCT CASE WHEN event = 'accepted'  THEN quest_id END) AS accepted,
  COUNT(DISTINCT CASE WHEN event = 'completed' THEN quest_id END) AS completed,
  COUNT(DISTINCT CASE WHEN event = 'rewarded'  THEN quest_id END) AS rewarded
FROM quest_events
WHERE dt = CURRENT_DATE - INTERVAL '7 days'
GROUP BY difficulty;
# Связь активности в квестах и retention
import pandas as pd
events = pd.read_sql("...quest events...", conn)
users  = pd.read_sql("...registrations + sessions...", conn)
 
quest_d1 = (events.query("days_since_install == 0")
                  .groupby("user_id")["quest_id"].nunique()
                  .rename("quests_d1"))
users = users.join(quest_d1, on="user_id").fillna(0)
users["quests_d1_bucket"] = pd.cut(users["quests_d1"],
                                   bins=[-1, 0, 2, 5, 100],
                                   labels=["0", "1-2", "3-5", "6+"])
 
# D7 retention by bucket
ret = (users.groupby("quests_d1_bucket")
            .apply(lambda d: d["d7_returned"].mean()))

Анализ / интерпретация

Возможные находки:

  • Найдено: на «hard» квестах skip rate 60% при низкой стоимости отказа → упрощать или уменьшать награду за лёгкие, чтобы юзеры брали hard.
  • Найдено: D7 retention для 6+ квестов в первый день вдвое выше, чем для 0 → daily quests критичны для retention, нужно повышать активацию в механике.
  • Найдено: на high-level (31+) награда в валюте не успевает за инфляцией → нужно scaling rewards быстрее.
  • Точки роста: добавить «пропустить за реквест в группу» (соц-механика); вариативность типов квестов; chains (3 квеста подряд → bonus).

Подводные камни

  1. Survivor bias. Анализируем активных, не учитываем тех, кто уже ушёл из-за квестов.
  2. Causality vs correlation. «Юзеры, делающие 6+ квестов, имеют выше retention» — может быть, что они и так engagement-ные, а квесты ни при чём. Проверяйте через A/B (отключите квесты у части юзеров).
  3. Too many segments. Слишком детальные срезы → мало данных, шум. Балансируйте.
  4. Не учесть стоимость отказа. «60% skip rate» может быть связано не со сложностью, а с дешёвым skip-cost.
  5. Игнорировать неравный baseline на разных уровнях. На low-level игрок может выполнять 10 квестов в час, на high-level — 1 в час. Сравнивать «среднее по уровню».
  6. «Логи квестов» — исследуйте логи на полноту. Часто event = 'received' логируется, а 'rewarded' — нет. Воронка ломается.

Эталонный ответ

Структура исследования:

  1. 7 гипотез, каждая привязана к измеримой метрике.
  2. Воронка квеста + skip rate by difficulty — главный визуал.
  3. Cohort retention by quest activity — связь с долгосрочным retention.
  4. Currency net flow — экономика.
  5. Срезы: уровень игрока, тип квеста, платящий/не, время суток.
  6. Точки роста: соц-механики, chains, scaling rewards с уровнем.

Главное — связать поведение в механике с долгосрочными метриками (retention, ARPDAU), а не только описать «как игроки нажимают кнопки».

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти