Empire Online — це мультиплеєрна браузерна гра, де гравці будують бізнес-імперії, обирають мерів і президентів, формують коаліції та змагаються за лідерство в сезонних рейтингах. Все — прямо в браузері, без встановлення.

Це мій найамбітніший проєкт: 150+ модулів ігрової логіки, 95 міграцій бази даних, 2 182 тести. І розробка продовжується. Цей девлог — фіксація процесу: що зроблено, як влаштовано, і куди рухається проєкт.

Empire Online — головна сторінка гри: 13 галузей, вибори, коаліції, реальна економіка
150+
модулів логіки
2 182
тестів
95
міграцій БД
15
індустрій

Що це за гра

Уявіть суміш Capitalism (бізнес-симуляція), Democracy (політика), Eve Online (коаліційні війни) та Cookie Clicker (щоденний ігровий цикл). Гравець починає з $10 у маленькому селі і будує імперію до трильйонів — через бізнес, політику та стратегію.

Ключові механіки

  • Бізнес — 15 індустрій на 5 рівнях поселень (село → мегаполіс). Кожна має свої умови відкриття, рівні прокачки, синергії
  • Політика — реальні вибори мерів і президентів. Закони, укази, парламент, корупція, імпічмент. Все вирішують гравці, не NPC
  • Коаліції — об'єднання з іншими гравцями: спільна казна, проєкти, війни між групами
  • Сезони — 30-денні цикли з трьома фазами: розширення → конфлікт → фінал. В кінці — нагороди найкращим
  • Економіка — двоступеневе оподаткування, кредити, банкрутство, ринок попиту/пропозиції

Стек і архітектура

Фронтенд — Next.js 16 з React 19 і TypeScript в strict-режимі. Бекенд — Supabase: PostgreSQL, авторизація, Realtime-підписки, Edge Functions на Deno. Хостинг — Vercel (фронт) + Supabase Cloud (бек).

Ключове рішення: ігровий стан змінюється тільки через Edge Functions — ніколи напряму з клієнта. Кожна таблиця має Row-Level Security (RLS) політики. Це виключає цілий клас багів і читів.

Ігровий тік

Кожні 15 хвилин Vercel Cron запускає «тік» — один ігровий місяць. За цей час: нараховується дохід, списуються витрати, нараховуються відсотки по кредитах, змінюється індекс CPI міста, перевіряються умови виборів і криз. 16 кроків за один запуск.

Для масштабування тік розділений на три пріоритети:

  • Критичний (кожен тік) — дохід, витрати, кредити
  • Середній (кожен 4-й тік) — події, CPI, лояльність
  • Ледачий (кожен 24-й тік) — лідерборд, патенти, очищення

Бізнес-система: від кафе до енергетичної компанії

5 рівнів поселень × 3 індустрії = 15 унікальних бізнесів:

  • Село: Кафе, Фермерство, Магазин
  • Містечко: Автосервіс, Будівництво, Аптека
  • Місто: IT-компанія, Юридична фірма, Логістика
  • Столиця: Фінанси, Медіа, Девелопмент
  • Мегаполіс: Технологічна корпорація, Банк, Енергетика

Кожен бізнес має 4 рівні. Дохід рахується через трирівневу формулу: ринковий шар (CPI, спеціалізація міста, сезонні модифікатори), операційний шар (HR, менеджмент, синергії) та стратегічний шар (лояльність, контракти, репутація). Кожен шар обмежений окремо — неможливо «зламати» гру, прокачавши лише один параметр.

Політична система

Це не NPC-правителі, які змінюють правила. Тут гравці голосують за лідерів, які приймають рішення. Мер встановлює податкову ставку міста (5–15%), видає укази, розпоряджається міською казною. Президент контролює державний податок (10–18%) і приймає закони.

Корупція — видима і підзвітна

Кожна корупційна дія (розкрадання, шахрайство, хабарництво) підвищує публічний лічильник корупції. На 150+ — автоматичне розслідування. На 200+ — автоматичний імпічмент з конфіскацією 50% майна. Аудитори бачать все. Це створює справжню гру навколо відповідальності.

Емерджентний геймплей: коли 5 гравців об'єднуються, щоб імпічнути корумпованого мера — це не скрипт. Це реальна політична подія, яка сталася через ігрові механіки.

PvP з захистом від абузу

PvP — реальний: можна шпигувати, саботажити бізнеси, красти працівників. Але з обмеженнями:

  • Денний ліміт шкоди — максимум 15% від статку цілі за добу
  • Серійні атаки — ефективність падає на 50% після першої
  • Кулдаун — 6 тіків між атаками на одну ціль
  • Пісочниця новачка — 72 години повного захисту від PvP
  • Відновлення — жертва отримує +5% ефективності на 12 тіків

Сезони: 30 днів, три фази, один переможець

Гра живе сезонами по 720 тіків (≈30 днів):

  • Розширення (1–240 тік) — ніякого PvP, +50% буст новачкам, менше подій. Час будувати
  • Конфлікт (241–600 тік) — PvP увімкнено, коаліційні війни, вибори
  • Фінал (601–720 тік) — подвійні нагороди, ×1.5 PvP-шкода, глобальна криза, заморозка лідерборду

В кінці сезону — скидання 50% грошей. Але предмети розкоші (яхти, приватні літаки, колекції мистецтва) залишаються назавжди. Це створює довгострокову мотивацію поза межами одного сезону.

Тестування: 2 182 тести і 6 знайдених багів

Баланс MMO-гри — це математика. Одна неправильна формула — і економіка ламається. Тому 100% ігрової логіки покрито тестами.

Реальні баги з тестів:

  • Престиж-бонуси були мультиплікативними — ×1.75 × ×1.5 = ×2.625 замість +125%. Це зламало прогресію після 3 сезонів
  • Денні події не застосовувались до конкретних бізнесів — подія «+50% до ресторанів» впливала на все
  • Коефіцієнт Джині стартував на 0.78 (крайня нерівність). Після балансування — 0.39
Інфраструктура тестів: Husky + lint-staged (pre-commit), GitHub Actions CI (lint → format → test → build). Поріг покриття — 80% для ігрової логіки. Коміт не проходить, якщо тести падають.

Монетизація

Гра free-to-play з преміум-підпискою через Monobank Acquiring (український процесинг). Підписка дає бонуси (+20% дохід, +15% R&D), але не ламає баланс. Основний геймплей — безкоштовний.

Що зроблено

  • 27+ сторінок ігрового інтерфейсу
  • 80+ перевикористовуваних компонентів
  • 150+ модулів ігрової логіки з тестами
  • 95 SQL-міграцій з RLS-політиками
  • Повна система виборів, законів, корупції
  • Коаліції з казною, проєктами, війнами
  • Калькулятор «що-якщо» для прогнозу доходу
  • AI-порадник з контекстними підказками
  • Щоденні квести, бонуси, досягнення
  • Інтеграція з Monobank для платежів

Що далі

Розробка активна. В планах:

  • Розширення системи предметів розкоші (12+ позицій)
  • Бета-тестування з реальними гравцями
  • Оптимізація тіку для 500+ одночасних гравців
  • Компонентне тестування (зараз 12% покриття UI)
  • Балансування на основі реальних даних
Далі буде. Цей девлог — перший із серії про Empire Online. Наступний буде про те, як працює політична система зсередини, і чому корупція — це фіча, а не баг.

Чому це важливо

Empire Online — це полігон, де я тестую все: авторизацію, Realtime-підписки, складні SQL-міграції, Edge Functions, Cron-джоби, інтеграцію з платіжними системами. Ті самі технології, які потім використовую в комерційних проєктах — тільки тут я можу дозволити собі піти глибше.

Якщо вашому бізнесу потрібен не просто сайт, а платформа з авторизацією, реальним часом, платежами і складною логікою — цей досвід працює на вас.