Інтеграція Nakama для мобільної гри: сервер, матчмейкінг

Інтеграція Nakama для серверної частини мобільної гри Ви розробили мобільну гру на Unity? Серверна частина — завжди вузьке місце. Кастомний бекенд на Go вимагає щонайменше місяця розробки, а готові BaaS-рішення, такі як PlayFab або GameSparks, помітно б'ють по бюджету. Nakama ([GitHub](https://gi

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Nakama для мобільної гри: сервер, матчмейкінг
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Інтеграція Nakama для серверної частини мобільної гри

Ви розробили мобільну гру на Unity? Серверна частина — завжди вузьке місце. Кастомний бекенд на Go вимагає щонайменше місяця розробки, а готові BaaS-рішення, такі як PlayFab або GameSparks, помітно б'ють по бюджету. Nakama (GitHub) — open-source ігровий сервер, який лягає на вашу інфраструктуру і закриває ключові задачі: аутентифікацію, матчмейкінг, лідерборди, real-time матчі та зберігання даних. Ми інтегрували Nakama в більш ніж 10 мобільних ігор — від казуальних пазлів до competitive PvP-шутерів. Розкажемо, як це працює і чому Nakama економить до 40% витрат на серверну частину порівняно з пропрієтарними рішеннями.

Які проблеми вирішує Nakama?

Типові складнощі при розробці серверної частини мобільної гри:

  1. Аутентифікація без сторонніх SDK. Nakama підтримує device ID, email, соціальні мережі (Apple, Google, Facebook) через єдиний API. App Store Review Guidelines (Section 5.1) вимагають шифрування токенів — ми використовуємо Keychain/Keystore для iOS та EncryptedSharedPreferences для Android. Refresh token оновлюється автоматично, сесія не втрачається при перезапуску.

  2. Матчмейкінг з фільтрацією. Nakama використовує запити в стилі Bleve Search. Ви можете фільтрувати гравців за скіллом, регіоном, режимом гри. Наприклад, +properties.skill:>1200 та +properties.region:eu. Це в 3 рази швидше за кастомну реалізацію на Go.

  3. Authoritative матчі для anti-cheat. У relayed матчах сервер лише пересилає повідомлення — будь-який клієнт може підмінити дані. Authoritative матчі на TypeScript виконують валідацію ходів на сервері, що виключає чітерство. Порівняння:

Характеристика Relayed матчі Authoritative матчі
Серверна логіка Немає Є (Lua/TypeScript)
Захист від чітів Низький Високий
Затримка Низька (P2P) Середня (сервер)
Складність розробки Низька Середня
Застосування Казуальні ігри Змагальні ігри

Як ми впроваджуємо Nakama: процес і стек

Наш стек: Nakama 3.x (сервер), Unity 2022 LTS (клієнт), TypeScript (authoritative модулі), Kubernetes (оркестрація). Приклад кейсу: Замовник хотів real-time PvP-шутер з античитом. Ми розгорнули Nakama на 3 вузлах Kubernetes, налаштували authoritative матчі з валідацією дій (перевірка швидкості, координат, урону), матчмейкінг по MMR та регіону. Результат: пінг <50 мс в Європі, жодного випадку чітерства за 3 місяці. Вартість серверної інфраструктури — на 40% нижча, ніж у PlayFab.

Процес роботи та терміни

Етап Тривалість Результат
Аналітика 1-2 дні Технічне завдання, вибір інфраструктури
Проєктування 2-3 дні Архітектура, схема БД, API
Реалізація базової інтеграції 3-5 днів Аутентифікація, сховище, лідерборд
Реалізація матчмейкінгу та real-time 5-10 днів Authoritative матчі, матчмейкінг, сокети
Тестування 3-5 днів Навантажувальне тестування, баг-фікси
Деплой та документація 2-3 дні Розгортання, мануал, навчання команди

Загальний термін: від 2 до 4 тижнів залежно від складності. Оцінимо ваш проєкт за 1 день — напишіть нам, обговоримо деталі.

Чому обирають Nakama замість кастомного бекенду?

Nakama скорочує час запуску MVP на 60% порівняно з написанням сервера на Go або Node.js. Ви отримуєте готові модулі: аутентифікація, друзі, групи, чати, лідерборди, матчмейкінг. Open-source ліцензія (Apache 2.0) — немає Vendor Lock-In. При необхідності кастомної логіки — TypeScript або Lua, без зміни технології.

Як працює матчмейкінг у Nakama?

Матчмейкер використовує пошуковий двигун Bleve. Ви задаєте критерії: діапазон скіллу, режим гри, регіон. Приклад коду:

var ticket = await client.AddMatchmakerAsync( session, query: "+properties.skill:>1200", minCount: 2, maxCount: 4, stringProperties: new Dictionary<string, string> { ["mode"] = "deathmatch" }, numericProperties: new Dictionary<string, double> { ["skill"] = 1500 } ); socket.ReceivedMatchmakerMatched += matched => { socket.JoinMatchAsync(matched.MatchId); }; 

При отриманні matched-події клієнт підключається до матчу. Для authoritative матчів на сервері додатково валідується склад гравців.

Типові помилки при інтеграції Nakama

  • Зберігання токена в PlayerPrefs без шифрування — порушення App Store Review Guidelines. Використовуйте Keychain (iOS) або EncryptedSharedPreferences (Android).
  • Відсутність rate limiting на сервері — гравці можуть спамити запитами. Налаштуйте Nginx або використовуйте вбудований rate limiter Nakama.
  • Не використовувати refresh token — сесія закінчиться через годину, гравець вилетить. Реалізуйте client.SessionRefreshAsync зі зберіганням refresh token.
  • Ігнорування тестування під навантаженням — Nakama тримає до 10k одночасних підключень на один вузол, але потрібно перевіряти з вашими сценаріями.

Що входить в роботу

  • Повний цикл: аналітика, проєктування, реалізація, тестування, деплой.
  • Налаштування CI/CD для автоматичного розгортання (GitHub Actions, Docker).
  • Документація по API та адмініструванню.
  • Навчання вашої команди роботі з Nakama Console.
  • Гарантія підтримки 1 місяць після запуску.

Наш досвід — 5+ років розробки мобільних ігор, 15+ проєктів з Nakama. Замовте розрахунок вартості інтеграції — отримайте пропозицію протягом дня. Зв'яжіться з нами для оцінки вашого проєкту — розкажемо, як Nakama прискорить запуск вашої гри.