Налаштування системи контролю версій для ігрових проєктів

Налаштування системи контролю версій для ігрових проєктів Ви запускаєте ігровий проєкт і стикаєтеся з тим, що репозиторій розрісся до 14 ГБ за пару місяців, а злити зміни з гілки художника — ціла епопея. Ми, як команда з 10-річним досвідом у геймдеві (понад 50 успішно налаштованих проєктів), знає

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

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

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

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1029
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    142

Налаштування системи контролю версій для ігрових проєктів

Ви запускаєте ігровий проєкт і стикаєтеся з тим, що репозиторій розрісся до 14 ГБ за пару місяців, а злити зміни з гілки художника — ціла епопея. Ми, як команда з 10-річним досвідом у геймдеві (понад 50 успішно налаштованих проєктів), знаємо, як цього уникнути. Правильна система контролю версій — основа розробки будь-якої гри. Без неї ви втрачаєте дні на merge-конфлікти та ручний бекап. Ми налаштуємо VCS так, що команда працюватиме паралельно, не наступаючи один одному на файли.

Бінарні файли — головна особливість геймдев-репозиторію, яка робить звичайний git-workflow непрацездатним. Текстури в PNG/PSD, 3D-моделі в FBX, аудіо в WAV/OGG, відеоролики — все це не дифується, займає гігабайти і миттєво робить git clone неможливим без спеціальних інструментів.

Git LFS (Large File Storage) — базове рішення, але його налаштування в геймдев-проєкті вимагає точного визначення: що в LFS, а що ні. Якщо туди потраплять скрипти або JSON-конфіги — втрачаємо нормальний diff у code review. Якщо не туди потраплять великі текстури — репозиторій розростається до кількох ГБ за місяць.

Як налаштувати Git LFS для Unity/Unreal?

.gitattributes для Unity-проєкту має включати:

*.png filter=lfs diff=lfs merge=lfs -text *.psd filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text *.fbx filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text *.mp3 filter=lfs diff=lfs merge=lfs -text *.ogg filter=lfs diff=lfs merge=lfs -text *.mp4 filter=lfs diff=lfs merge=lfs -text *.asset filter=lfs diff=lfs merge=lfs -text *.unity filter=lfs diff=lfs merge=lfs -text *.prefab filter=lfs diff=lfs merge=lfs -text 

При цьому .cs, .json, .yaml, .asmdef — без LFS: вони текстові, їх важливо дифувати.

Чому важлива Force Text serialization?

Критичне налаштування Unity: Force Text serialization. Edit → Project Settings → Editor → Asset Serialization Mode = Force Text. Це переводить .asset, .prefab, .unity з бінарного формату в YAML-текст. Тепер на них можна робити diff та merge. Без цього налаштування злиття сцен неможливе — кожен конфлікт потребує ручного вибору «моя версія або чужа». Ми гарантуємо, що після нашого налаштування merge-конфлікти стануть рідкісними та легко вирішуваними.

Альтернатива для великих студій — Perforce (Helix Core). P4 нативно працює з бінарними файлами, підтримує exclusive checkout (запобігає конфліктам на бінарних файлах), масштабується до великих репозиторіїв (терабайти). Поріг входу вищий, але для команди 10+ осіб з великим обсягом асетів — виправданий вибір. Unreal Engine сам активно використовує Perforce. Детальніше див. офіційну документацію Perforce.

Різниця між Git LFS та Perforce для ігрових проєктів

Критерій Git LFS Perforce (Helix Core)
Робота з бінарними файлами Через LFS, потребує налаштування Нативна підтримка
Merge конфлікти Ризик при паралельних змінах Exclusive checkout виключає конфлікти
Розмір репозиторію Повільний clone при великому LFS-кеші Лінійне масштабування до ТБ
Ціна Безкоштовно для будь-яких розмірів Платна ліцензія на користувача
Складність налаштування Низька (Git LFS самонавчається) Висока (потрібне адміністрування)
Рекомендований розмір команди 1–10 осіб 10+ осіб

Branching strategy для ігрового проєкту

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

GitFlow адаптований для геймдеву:

  • main — стабільна версія, завжди запускається без критичних багів
  • develop — інтеграційна гілка, сюди вливаються фічі
  • feature/назва-фічі — короткоживучі гілки для конкретних систем
  • art/назва-ресурсу — гілки для великих асет-оновлень (новий рівень, пак персонажів)
  • hotfix/опис — термінові фікси поверх main

Гілки art/ живуть довше feature/ і мержаться великими пачками — це зменшує кількість конфліктів при роботі художників.

Trunk-based development — альтернатива для невеликих команд (2–4 особи). Всі працюють у main, короткі гілки живуть не більше 2 днів. Потребує хорошого CI та feature flags для незавершених фіч.

Управління сценами та префабами

Сцени в Unity — головне джерело merge-конфліктів. Стандартний підхід: кожен розробник не чіпає чужу сцену без домовленості. Краще: розбити рівні на Subscenes (через Multi-Scene Editing або Addressables Scene Loading). Художник працює над Art-підсценою рівня, програміст — над Logic-підсценою. Конфліктів немає, тому що це різні файли.

В Unreal — World Partition з Level Streaming. Кожен стример-регіон може редагуватися незалежно. Типові помилки при налаштуванні VCS:

  • Неправильний .gitattributes: скрипти в LFS втрачають диф.
  • Бінарні сцени: без Force Text merge неможливий.
  • Відсутність гілок art/: художники мержать у develop і ламають збірку.
  • Не налаштований exclusive checkout на бінарні файли (в Perforce).
  • Ігнорування .gitignore: потрапляють Library, Temp, Logs.

Інструменти для команди

Крім власне VCS — налаштовуємо інтеграції:

  • GitHub / GitLab / Bitbucket — hosting + code review workflow (Pull Requests, branch protection rules)
  • Unity Version Control (Plastic SCM) — альтернатива Git LFS від Unity, з нативним GUI в редакторі. Зручніший для нетехнічних учасників команди (художники, дизайнери рівнів)
  • Conventional Commits — стандарт повідомлень комітів: feat(combat): add parry mechanic, fix(ui): inventory count overflow on 3-digit numbers

Що входить у налаштування

  1. Аудит поточного репозиторію та оцінка обсягу.
  2. Налаштування .gitattributes, LFS та Force Text serialization.
  3. Розробка branching strategy під ваш проєкт.
  4. Інтеграція з CI/CD (GitHub Actions, GitLab CI).
  5. Навчання команди (1 година вебінар).
  6. Документація процесу та чек-лист.
  7. Пост-налаштування підтримка (2 тижні).

Реальна ситуація, яку вирішуємо: стартап, 5 осіб, git без LFS, сцена в бінарному форматі. Репозиторій виріс до 14 ГБ за 3 місяці, clone займає 40 хвилин, merge сцен — ручний вибір один з двох варіантів. Міграція зайняла 4 дні: git-lfs migrate import для всіх бінарних файлів, включення Force Text serialization, налаштування .gitattributes, навчання команди. Підсумок: репозиторій 1.2 ГБ (без LFS-об'єктів), clone за 5 хвилин, економія на простої команди склала кілька тисяч доларів на місяць.

Масштаб задачі Орієнтовні терміни
Налаштування Git LFS + .gitattributes + Force Text 1–2 дні
Повний VCS setup (git + branching strategy + CI hooks) 3–5 днів
Міграція існуючого репозиторію на LFS 2–4 дні
Налаштування Perforce для великої студії 1–2 тижні

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