Гейміфікація мобільного застосунку: система квестів і місій
Ми розробляємо систему квестів і місій для гейміфікації мобільного застосунку. На відміну від простих досягнень («виконай 3 тренування»), квест задає послідовність кроків з наративом: «Пройди шлях новачка: перше тренування → 3 тренування за тиждень → 7-денний стрік → перший особистий рекорд». Така механіка збільшує утримання на 30–50% за нашими даними, а конверсія в активацію зростає на 25%. Ми реалізували подібні системи для 20+ застосунків з аудиторією від 10k до 1M користувачів. Система базується на гнучкій архітектурі: використовуємо PostgreSQL з JSONB для зберігання прогресу, SwiftUI/Kotlin Compose для клієнта, GraphQL для обміну даними. У цій статті розберемо типи квестів, схему даних та UX-патерни, які забезпечують високий retention. Розглянемо як базові onboarding квести, так і складні сюжетні ланцюжки з розгалуженням. Зв'яжіться з нами для оцінки вашого проекту.
Як влаштована архітектура системи квестів?
Квест складається з кроків (QuestStep), які виконуються послідовно або паралельно. Кожен крок — це умова над подіями користувача. Архітектура базується на нормалізованій схемі даних:
Схема даних системи квестів
Quest: id, title, description, icon type: ENUM(linear, parallel, branching) is_repeatable: BOOL -- ежедневные/еженедельные миссии expires_at: nullable TIMESTAMP xp_reward, badge_id QuestStep: id, quest_id, step_order title, description trigger_event: VARCHAR -- "workout_completed" trigger_condition: JSON -- {"count": 3, "period": "week"} is_optional: BOOL -- для branch-квестов xp_partial_reward UserQuestProgress: user_id, quest_id, current_step, status: ENUM(not_started, in_progress, completed) started_at, completed_at step_progress: JSON -- {"step_1": {"completed": true}, "step_2": {"count": 2}} step_progress як JSON дозволяє зберігати гетерогенний прогрес по кроках без нормалізації. На Postgres JSONB з GIN-індексом — ефективно для пошуку.
Типи квестів для різних сценаріїв
Onboarding квести — спрямовують нового користувача по ключових кроках продукту. «Налаштуй профіль → додай перший запис → запроси друга → встанови ціль». Виконуються один раз. Критично важливі для activation rate, підвищують його на 25–40%.
Щоденні/тижневі місії (is_repeatable = true) — регулярний привід повертатися. Щопонеділка три нові місії на тиждень. Рандомізація з пулу, але з урахуванням поведінки користувача: новачку — прості, ветерану — складніші. Потрібен mission_pool з вагами та логікою вибору.
Сюжетні квести — ланцюжок з 5–10 кроків, розкриваються поступово. Наступний крок видно тільки після завершення попереднього. Створює довгострокову мету та підвищує Retention Day 30 на 15%.
Branch квести — користувач обирає шлях на розвилці. «Тобі ближче кардіо чи силові?» — вибір визначає наступні кроки. Реалізується через QuestStep.is_optional + логіка вибору в UserQuestProgress.step_progress.
| Тип квесту | Мета | Повторюваність | Кількість кроків |
|---|---|---|---|
| Onboarding | Активація | Ні | 4-6 |
| Щоденні місії | Утримання | Так (щоденно) | 1 (місія) |
| Сюжетні | Довгострокова мотивація | Ні | 5-10 |
| Branch | Персоналізація | Ні | 3-8 з розвилками |
Чому варто обрати систему квестів з прогресією?
Квести створюють психологічний ефект незавершеної дії (Zeigarnik effect), який мотивує повертатися. Порівняйте: проста табличка з досягненнями дає разове задоволення, а послідовність кроків з видимим прогресом утримує в 2x довше. Наші замовники бачать зростання DAU на 20–30% після впровадження.
Оновлення прогресу
Event-driven, синхронно з іншою gamification логікою. При отриманні події workout_completed:
- Нараховуємо XP користувачу
- Оновлюємо прогрес досягнень
- Оновлюємо прогрес активних квестів з matching trigger_event
- Перевіряємо завершення кроків і самого квесту
- Повертаємо клієнту
GamificationUpdate { xp_gained, level_up, achievements_unlocked, quest_step_completed, quest_completed }
Все в одній транзакції. Клієнт отримує готовий набір подій для анімації.
UX квестів
Картка квесту: прогресбар з кроками, опис поточного кроку, нагорода. Не показуй всі кроки одразу для сюжетних квестів — відкривай наступний при завершенні поточного (mystery мотивує).
При завершенні кроку — inline celebration: зелена галочка з анімацією check, brief haptic, + XP toast. При завершенні квесту — full-screen або bottom sheet з анімацією, нагорода, CTA «Почати наступний квест».
Список квестів розділено на вкладки: «Активні», «Доступні», «Завершені». Завершені квести видимі — користувач повинен бачити свій шлях.
Щоденні місії як retention механіка
Три випадкові місії щодня, згенеровані вранці (cron job 00:00 за локальним часом користувача). Проста, середня та складна за складністю. Completion rate перших двох — високий (70-80%), третя — stretch мета, але досяжна (40-50%).
Серверний push о 10:00 «Нові місії готові» — м'яке нагадування. Не щодня — через день, якщо користувач заходив учора.
Що входить в роботу
При замовленні системи квестів під ключ ми надаємо:
- Архітектурну документацію (схема даних, діаграми потоків).
- Вихідний код клієнта (iOS/Android) та бекенду (REST/GraphQL).
- Інтеграцію з push-повідомленнями (APNs/FCM) та аналітикою.
- Налаштування пулу місій, алгоритмів рандомізації та правил прогресії.
- Навчання команди замовника (2 години онлайн) та письмові інструкції.
- Гарантію на код (3 місяці безкоштовної підтримки по багах).
Орієнтири за термінами
| Обсяг робіт | Клієнт | Бекенд | Загальний термін |
|---|---|---|---|
| Базові onboarding квести + щоденні місії | 3–5 днів | 5–7 днів | 1.5–2 тижні |
| Повна система з сюжетними квестами, розгалуженням, рандомізацією та аналітикою | 5–7 днів | 7–10 днів | 3–4 тижні |
Вартість розраховується індивідуально. Наша команда має 5+ років досвіду в мобільній розробці та реалізувала понад 20 gamification-систем для застосунків з аудиторією до 1 млн користувачів. Зв'яжіться з нами для оцінки вашого проекту.







