Как стать автором
Обновить

Интервью с Луисом Катальди (Epic Games) об игровом движке Unreal Engine

Время на прочтение3 мин
Количество просмотров8.1K
Всего голосов 21: ↑20 и ↓1+19
Комментарии10

Комментарии 10

В Unreal Engine лично меня расстраивает их приверженность бинарному хранению данных.
Причем во всем:


  • Файлы перевода;
  • BluePrint-ы, включая Data-only.

Это сильно мешает использованию веток при разработке.


К сожалению, сами EpicGames проблемы в этом не видят, и от того ситуация вряд ли скоро изменится :(


А в остальном — это лучший движок, с которым мне приходилось работать.

А с какими еще движками приходилось работать? А то может и сравнивать то не с чем.

Мне довелось работать с:


  • CryEngine
  • RenderWare
  • Unity
  • UnrealEngine
Бинарные blueprint-ы, действительно, убивают. Система контроля версий становится бессильной, чтоб посмотреть, что добавил товарищ. Как разрабатывать в команде до сих пор для меня вопрос.
Мы только таким образом работаем, если кто-то берет задачу, то отмечает какие blueprint-ы сейчас трогает, пока он в них что-то меняет, другие в эти blueprint-ы не лезут. Не очень удобно, но со временем привыкли уже.

У нас получился следующий алгоритм:


  • blueprint-ы всегда редактирует кто-то один;
  • избегаем blueprint-ы с логикой (прототип в blueprint, потом переносится в C++);
  • стараемся blueprint-ы использовать только как dataonly.

При этом бинарные формат имеет еще одну проблему: там лежит много мусора, который никто не видит.


К примеру, я бы предпочёл видеть за пределами ассетов:


  • предрасчитанное освещение карты;
  • предрасчитанный навигационный граф;
  • скомпилированный байт-код blueprint-ов.

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


Утилиты просмотра и слияния изменений, которые пишут Epic Games проблему не решают:


  • Они не показывают всю картину. Два визуально одинаковых ассета могут иметь разное поведение (например: https://udn.unrealengine.com/questions/271376/ue410-incorrect-asset-loading-in-cooked-game-data.html);
  • Они полагаются на то, что ассет можно распарсить текущей версией редактора.
  • Они не существуют отдельно от редактора. К примеру их проблематично использовать в bash-скриптах.

Git LFS решает только проблему хранения blueprint-ов в Git.
Проблема просмотра изменений и слияния остаётся не решенной.

Скорее всего, Луис Катальди имел в виду этот канал, когда говорил о канале, на котором выкладывают training livestreams. По Вашей ссылке предоставлен немного другой.
Спасибо, поменяли.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий