Мобільна розробка ігор на Cocos2d-x: від прототипу до релізу

Замовнику потрібен реліз на двох платформах без двох команд і розбіжностей у збірках. Ми розробляємо ігри на cocos2d-x під ключ: від розбору механік і прототипу до передачі вихідного коду та регламенту оновлень. Єдина кодова база скорочує термін випуску оновлень і прибирає розбіжності між версіями.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Мобільна розробка ігор на Cocos2d-x: від прототипу до релізу
Середній
від 1 тижня до 3 місяців
Часті запитання

Розробка ігор на cocos2d-x: де ламається кросплатформа

Розробка ігор на cocos2d-x приваблює тим, що ігрова логіка описується один раз і збирається під обидві мобільні системи.

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

Саме там кросплатформна гра перестає бути однією кодовою базою і розпадається на два проєкти, що живуть за власними правилами.

Розсинхрон версій збірки проявляється не одразу. Правку вносять у гілку під одну систему, перевіряють на ній і випускають — друга гілка при цьому відстає на кілька змін, хоча у гри в обох магазинах той самий номер збірки.

Через два-три релізи поведінка розходиться: таймінги анімації, порядок підвантаження сцен, реакція на згортання й втрату фокуса.

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

Вузьке місце ігрового проєкту тут не рушій, а незафіксовані межі між спільним і платформенним шаром. Розбираємо, як це закривається: як розводити код, щоб гілки не розходилися, і як ловити розсинхрон до релізу, а не після скарг гравців.

Ефект єдиної кодової бази: збірка, оновлення, відмови

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

  • Один релізний цикл замість двох. Правка геймплею проходить рев'ю один раз і потрапляє в обидві збірки, а ручна робота з другою платформою скорочується з годин до хвилин на реліз.
  • Час випуску оновлення. Патч із балансом і контентом виходить одним пакетом, а не двома, які доводиться узгоджувати за строками.
  • Усунений клас відмов. Розсинхрон версій і «виправлення є лише на одній платформі» зникає як категорія: логіка живе в спільному шарі, відмінності — у тонкому платформенному адаптері.
  • Стабільність на слабких пристроях. Бюджет кадру й завантаження ресурсів налаштовуються в одному місці, тому перевіряються на однаковому наборі сценаріїв.
  • Відтворюваність дефектів. Один сценарій відтворення й спільні логи — звіт із підтримки застосовний до обох платформ без перезбирання контексту.
  • Відкат версії. Тег збірки й хеш ресурсів єдині на реліз, тому повернення до попередньої версії — одна операція для обох майданчиків.

Пункт про клас відмов тут не декларація: він знімає пласт підтримки, де розходження поведінки лікували вручну на кожній платформі. Далі — як це лягає на конкретний проєкт.

Варіанти реалізації гри під дві платформи та обмеження

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

Варіант Коли підходить Обмеження
Нативна розробка під кожну систему Важка графіка, потрібен доступ до найновіших можливостей пристрою Подвійний обсяг коду й два цикли випуску; поведінка збірок поступово розходиться
Спільний ігровий шар Більша частина логіки спільна, відмінності — у введенні, купівлях і системних сервісах Потребує дисципліни в шарі адаптерів, інакше відмінності платформ просочуються в геймплей
Гібридна обгортка гри Є готове ядро на веб-технологіях, важлива швидкість випуску одразу на обидві системи Чутливість керування впирається в обгортку, доступ до системних функцій обмежений
Готові ігрові модулі Типовий жанр, строки важливіші за унікальність механік Залежність від чужого коду, змінювати ядро геймплею під власні правила складно

Спільний ігровий шар на Cocos2d-x у більшості проєктів виявляється робочим компромісом: геймплей, фізика, сцени й ресурси лежать в одному дереві вихідних кодів, а відмінності систем виносяться в тонкий адаптер — введення, купівлі, сповіщення, локальне сховище.

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

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

Розбір архітектури займає один прохід — дивимося, які підсистеми готові, що доведеться переносити і скільки коштуватиме підтримка двох гілок на дистанції.

Етапи роботи: від розбору механік до передачі збірок

Робота над грою на Cocos2d-x будується як послідовність етапів, де кожен наступний спирається на перевірений результат попереднього. Так прототип не перетворюється на реліз із накопиченими припущеннями, а правки балансу в кінці не вимагають переписування ігрового шару.

  1. Розбір механік і цільових пристроїв — фіксуємо ядро ігрового циклу, кількість об'єктів на екрані одночасно, нижню межу парку пристроїв, під яку гра зобов'язана працювати.
  2. Схема ігрового шару — розкладаємо сцену за шарами, визначаємо порядок відрисовки й межу між логікою та поданням, щоб зміни правил не зачіпали візуальну частину.
  3. Прототип ігрових механік — збираємо керування, темп і зворотний зв'язок на умовній графіці; до вкладень в арт перевіряємо, що механіка утримує увагу.
  4. Налаштування збірки — конфігурації під платформи, набори ресурсів, автоматизована збірка релізних версій, щоб випуск займав хвилини, а не ручні проходи.
  5. Тестування на пристроях — матриця реальних моделей, слабке залізо, тривалі сесії, згортання застосунку, переривання дзвінком, відновлення після збою.
  6. Оптимізація за вимірами — час запуску, витрати пам'яті, стабільність картинки в насичених сценах; працюємо лише з вузькими місцями, знайденими на пристроях.
  7. Передача проєкту команді — вихідні коди з історією, схема шарів, скрипти збірки й розгортання, навчання інженерів замовника та спільний випуск першого оновлення.

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

Вихідний код, збірки, документація та регламент оновлення

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

  • Репозиторій із повною історією: гілки, теги релізів, коміти — без «підчищених» ділянок і правок, що живуть поза версійним контролем.
  • Налаштовані збірки під кожну платформу: конфігурації, профілі підпису й скрипт, який збирає релізний артефакт однією командою.
  • Документація щодо ігрового проєкту: сцени, граф об'єктів, ігровий цикл, таблиці балансу й рівнів — правка контенту не потребує читання всього коду.
  • Список зовнішніх залежностей із версіями й ліцензіями: плагіни, модулі аналітики, бібліотеки звуку.
  • Регламент випуску оновлень: кроки від гілки до публікації в магазинах, точки узгодження, порядок відкату до попередньої версії.
  • Правила доступу й ролі: хто вливає зміни в основну гілку, хто публікує, де зберігаються ключі підпису і як вони ротуються.
  • Інструкція з розгортання середовища на чистій машині: залежності, змінні, перевірка працездатності збірки.

Такий комплект знімає головний ризик — що через пів року оновлення не зможе випустити ніхто, крім авторів. Проєкт на Cocos2d-x передаємо в стані, коли команда замовника збирає й розвиває його самостійно.

Кейс: дві платформи, один релізний цикл — метрики до і після

Що було до старту робіт

Проєкт жив у двох незалежних гілках — під iOS і Android. Логіка бою, прогресія й таблиці балансу дублювалися, тому кожну правку економіки вносили двічі й вручну стежили, щоб версії не розійшлися.

Випуск однієї платформи систематично відставав від іншої на 2-3 тижні, а на стабільну збірку йшло до 11 відмов, які ловили лише на регресі.

Що змінили і що вийшло

Звели платформенні гілки до спільного ігрового шару на Cocos2d-x: правила бою, прогресію, серіалізацію стану й таблиці балансу винесли в єдиний модуль, а платформенні відмінності — купівлі, сповіщення, збір аналітики — залишили в тонких обгортках.

Конфігурації рівнів перевели в один текстовий формат, щоб геймдизайнер правил баланс без перезбирання.

Показник До Після
Частка коду в спільному модулі ~40% ~80%
Строк випуску оновлення 2-3 тижні 3-4 дні
Відмов на реліз до 11 2-3
Правка балансу у двох збірках в одній

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

Чим cocos2d-x відрізняється від візуальних конструкторів ігор

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

Це дає швидкий старт прототипу без інженера, але шар, який визначає поведінку гри, залишається чужим — його логіку задає редактор, а не ваш код. cocos2d-x — протилежний підхід: ви отримуєте код, а не набір блоків.

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

У cocos2d-x цикл, менеджери ресурсів і рендер відкриті: інженер керує частотою логіки, повторним використанням об'єктів і порядком відрисовки — звідси передбачувана поведінка на слабких пристроях.

Другий розрив — правки на стороні замовника. Проєкт на cocos2d-x збирається звичайним конвеєром: репозиторій, автоматичні перевірки, відтворювані релізи, окремі гілки під платформи.

Проєкт конструктора живе всередині редактора, і кожне втручання в ядро доводиться повторювати заново після оновлення інструмента.

Вибір інструмента під механіку вирішується за ядром гри. Якщо вона тримається на стандартних взаємодіях, конструктор доведе до релізу швидше.

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

Технічні питання, які задають до старту робіт

Перед стартом замовник перевіряє три речі: що станеться з поточною версією гри, скільки наявного коду доведеться переписати й хто відповідає за випуск у магазинах.

Нижче — відповіді за кожним пунктом; вони однакові і для нової гри, і для проєкту на Cocos2d-x, який уже живе в продакшені.

Що буде з грою, яка вже випущена й приносить гравців?

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

Скільки коду доведеться переписати?

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

Як перевіряєте гру на різних пристроях?

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

Хто відповідає за публікацію в магазинах застосунків?

Публікацію ведемо ми: описи, скриншоти, вікові рейтинги, декларації щодо збору даних, проходження перевірки магазинів. Якщо гру вже опубліковано, переносимо її в новий білд без втрати позицій, відгуків і статистики.

Обговоримо задачу і повернемося з оцінкою та планом

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

Підготовка до оцінки проєкту не потребує готового технічного завдання: на першому розборі важливіший ігровий задум, рамки й обмеження, ніж оформлення документа.

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

  • Жанр, близькі аналоги й платформи, на яких гра повинна працювати насамперед.
  • Основний ігровий цикл: що гравець робить у перші хвилини і заради чого повертається.
  • Монетизація й прогресія: реклама, внутрішні купівлі, сезонні події.
  • Арт і звук: що вже готово, у якому форматі, що потрібно створити з нуля.
  • Онлайн-частина: таблиці лідерів, акаунти, хмарні збереження, сповіщення.
  • Доступи: акаунти магазинів застосунків, репозиторій, аналітика — до старту робіт.
  • Обмеження: строки, пріоритетні пристрої, вимоги до розміру збірки.

За цими ввідними ми повернемося з планом етапів розробки: прототип, вертикальний зріз із ключовою механікою, наповнення контентом, випуск і підтримка після релізу — зі строками й складом команди на кожен етап.

Обговоримо розробку гри на дзвінку; старт робіт над грою почнемо після узгодження плану, а параметри збірки під Cocos2d-x або інший рушій підберемо під ваші пристрої.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714