01
Що це
PUBG PRO — це турнірна екосистема навколо однієї гри, побудована як набір незалежних сервісів. Кожна ігрова механіка — окремий мікросервіс зі своєю базою, своїми тестами й своїм правом на помилку: якщо падає колесо фортуни, турніри продовжують працювати.
Найважче тут — не турнірна сітка, а гроші й одночасність.
Гравці клікають «забрати нагороду» по п’ять разів поспіль, задання виконуються паралельно, ліміти учасників закінчуються рівно в момент, коли вісім людей натискають кнопку. Кожна така механіка в нас доведена до стану, який ми перевіряємо конкурентним тестом: вісім паралельних гравців на два місця — рівно два переможці, шість чистих відмов.
02
можливості
Що воно вміє
01
Турніри й лобі
Створення сітки, реєстрація команд із обов’язковим логотипом, автоматична зміна фаз, розсилка лобі учасникам, підрахунок PPR-очок із бонусом за середню статистику гравця.
02
Завдання та квести
Шість типів: ручні, посилання, реферали, вступ у Discord і Telegram, прив’язка акаунта, подієві. Двофазна видача — виконав, потім забрав, — щоб нагорода не зникла на мережевій помилці.
03
Колесо фортуни та PvP
Налаштовується адміном повністю: сектори, ймовірності, типи нагород. Внутрішній баланс PUBG, додаткові прокрути, дні battle pass.
04
Депозити в TON
Унікальний QR і memo на депозит, вотчер транзакцій, зарахування у внутрішній баланс. Купівля преміуму з балансу з автоматичним обміном, якщо валюти не вистачає.
05
Автолікування Discord
Синхронізація каналів і ролей: якщо канал видалили руками, наступний прогін відновлює структуру, не чіпаючи вже завершені турніри.
06
Drop-spot резервування
Гравці бронюють точки висадки на мапі: чотири рівні видимості, преференції для Pro-підписки, розведення міток на мапі, щоб вони не злипалися.
03
архітектура
Як влаштовано
01
Реєстрація й прив’язка акаунтів
02
Турніри, лобі, матчі
03
Завдання, колесо, PvP
04
Баланс, TON-депозити, виплати
05
Discord- і Telegram-контур
Під капотом
- 14 мікросервісів на NestJS: auth, tournaments, teams, betting, pvp, tasks, wheel, daily-matches, ws-gateway, admin та інші.
- Kafka як шина подій: реферал завершився, гравець зайшов, матч закінчився — усі підписники реагують самі.
- Ідемпотентність на рівні БД: унікальні ключі в реєстрі нарахувань, а не «перевірка перед вставкою».
- Гонки за лімітами вирішені умовним UPDATE із гейтом по місцях, а не читанням-і-записом.
- Next.js-фронт: кабінет гравця, адмінка з RBAC-привілеями, статистика на recharts.
- Docker Compose на проді, nginx як edge, окремий постфікс для пошти.
04
масштаб
Цифри
14
мікросервісів у проді
6
типів завдань
39
юніт-тестів лише в tasks-svc
TON
мережа депозитів
