Ви запускаєте PvP quiz-гру, але перший же матч виявляє проблему: таймер розходиться у гравців на 2-3 секунди через різницю в системних годинах. Гравці скаржаться на нечесність, рейтинг падає на 30%. Інша типова біль — контент: якщо питання зберігаються в бандлі, ви не можете їх оновити без публікації нової версії. Ми вирішуємо ці завдання на рівні архітектури. Наша команда має 7-річний досвід у мобільних іграх і реалізувала понад 30 quiz-проектів.
Чому серверна база питань критична для quiz-гри?
Локальне зберігання питань — шлях до стагнації. Ви не можете оперативно додавати контент або виправляти помилки. Серверна архітектура вирішує це: питання завантажуються пакетами за категоріями, що дозволяє змінювати їх у реальному часі. Базова структура питання:
{ "id": 1, "category": "history", "difficulty": 3, "question_text": "В якому році відбулося...", "answers": ["1991", "1992", "1993", "1994"], "correct_index": 0, "explanation": "Пояснення відповіді", "added_date": "2024-03-01" } Difficulty впливає на вибір питань у матчі: починаємо з 2–3, підвищуємо при правильних відповідях — адаптивна складність без складного алгоритму. Локалізація також йде через сервер: питання зберігаються з language_code, клієнт запитує потрібну локаль. Це ефективніше, ніж вбудована система Unity Localization, оскільки контент динамічний. Ми використовуємо REST API або Addressables Remote Content — обидва підходи гарантують свіжість контенту та можливість A/B-тестування. Наприклад, в одному проекті ми збільшили ретеншн на 30% за рахунок щотижневого оновлення пакетів питань.
| Технологія | Масштабування | Затримка | Вартість | Гнучкість |
|---|---|---|---|---|
| Firebase Realtime Database | до 200k одночасних з'єднань | середня | безкоштовно до 1 GB | обмежена |
| Photon Realtime | до 1000 гравців на кімнату | низька | платна підписка | висока (кастомні Room Properties) |
Як забезпечити чесний PvP з синхронізацією таймера?
Головна технічна складність quiz PvP — синхронізований таймер. Якщо таймер рахується на клієнті, різниця в системних годинах дає нечесну перевагу. Рішення: сервер публікує questionStartTimestamp (Unix ms), клієнти обчислюють час, що залишився, як deadline - serverTime. Серверний час синхронізується через NTP-подібний механізм при підключенні.
Вибір технології для реалтайм-синхронізації залежить від масштабу. Firebase Realtime Database проста в інтеграції та підходить для прототипів і невеликих ігор. Photon Realtime дає більше контролю завдяки кастомним Room Properties і низькій затримці, але вимагає платної підписки. Для великих проектів з турнірами виправданий власний сервер на WebSocket — це дорожче і довше, але дає повний контроль над масштабуванням. Ми рекомендуємо Photon Realtime як золоту середину: він перевірений у десятках комерційних проектів, а його налаштування займає 1–2 дні.
Щоденні челенджі та retention
Photon Realtime і Firebase Functions дозволяють легко організувати daily challenge з глобальним leaderboard. Всі гравці отримують однакові питання, згенеровані по seed від дати. Серверна функція публікує новий сет о 00:00 UTC. Це стимулює повернення користувачів і створює здорову конкуренцію. В середньому retention після впровадження daily challenges зростає на 25–40%. Додатково ми реалізуємо прогресію рівнів (очки досвіду та розблокування категорій) і щотижневі турніри — ці механізми підвищують залученість.
Як ми це робимо: етапи розробки
| Етап | Тривалість | Результат |
|---|---|---|
| Аналітика та прототипування | 2-3 тижні | Визначення core loop, MVP |
| Проектування архітектури | 1-2 тижні | Вибір стеку, схема БД |
| Реалізація | 4-8 тижнів | Код клієнта та серверних функцій |
| Тестування | 2-3 тижні | Навантажувальне тестування PvP, юніт-тести |
| Деплой | 1 тиждень | Публікація в App Store та Google Play |
Терміни: quiz-гра з одним режимом, категоріями питань, базовим PvP — 2–3 місяці. З щоденними завданнями, турнірами, системою прокачки профілю — 4–6 місяців.
Що входить в роботу
- Архітектурна документація (схема БД, API-специфікація).
- Вихідний код клієнта під iOS та Android (або cross-platform).
- Серверна частина (Firebase або Photon) з налаштуванням правил безпеки.
- Доступи до консолей розробника (App Store Connect, Google Play).
- Навчання команди адміністратора по завантаженню питань.
- Технічна підтримка протягом 1 місяця після релізу.
Типові помилки при розробці quiz-ігор
1. Зберігання питань на клієнті — неможливо оновлювати контент без патча. 2. Таймер на клієнті — нечесні матчі. 3. Відсутність серверної валідації відповідей — читери обходять клієнтську логіку. 4. Ігнорування локалізації — ви втрачаєте до 50% аудиторії. Наш досвід показує, що врахування цих помилок на старті економить до 3 місяців доопрацювань.Зв'яжіться з нами для обговорення деталей та отримайте консультацію з вибору стека. Замовте розробку quiz-гри — ми допоможемо уникнути типових помилок і запустимо гру, яка утримуватиме користувачів.







