Улучшения времени итерации C++ в Unreal Engine 4.22

0
6
Улучшения времени итерации C++ в Unreal Engine 4.22

Live Coding – живое кодирование (экспериментально)

Epic Games лицензировали Live++ от Molecular Matter, чтобы все разработчики могли использовать это своих проектах Unreal Engine, и интегрировали его в качестве новой функции живого кодирования.

С помощью Live Coding вы можете вносить изменения в код C++ в вашей среде разработки, компилировать и вставлять его в работающий редактор или автономную игру в течение нескольких секунд. В отличие от устаревшего механизма горячей перезагрузки Live Coding будет исправлять отдельные функции, не требуя особого внимания для повторного создания экземпляра объекта, что делает его гораздо более надежным и масштабируемым для больших проектов.

Просто выберите опцию Live Coding (Experimental) в раскрывающемся списке рядом с кнопкой компиляции в редакторе и нажмите Ctrl+Alt+F11, чтобы скомпилировать и применить ваши изменения. Чтобы включить из готовой игры, введите «LiveCoding» в окне консоли.

Заметки:

  • Изменение макетов классов во время работы движка не поддерживается. В будущем выпуске разработчики намерены решить эту проблему.
  • В настоящее время поддерживается только Windows.

Время сборки

Теперь оптимизированы UnrealBuildTool и UnrealHeaderTool, и, как результат, время итерации C++ сокращено в 3 раза!

Полная сборка

UE4 Редактор Win64 DevelopmentUnreal Engine 4.21Unreal Engine 4.22Улучшения
Общее время сборки436.90326.81на 30% быстрее
Компиляция UnrealHeaderTool:46.1246.30
Генерация заголовков25.0515.50на 60% быстрее
Компиляция Редактора UE4323.15257.97на 25% быстрее
Расходы UnrealBuildTool42.587.04на 600% быстрее

Инкрементная сборка

UE4Editor Win64 DevelopmentUnreal Engine 4.21Unreal Engine 4.22Улучшения
Общее время сборки7.472.14на 340% быстрее
Компиляция Редактора UE41.191.08
Расходы UnrealBuildTool6.281.06на 590% быстрее

Без кодовых изменений

UE4Editor Win64 DevelopmentUnreal Engine 4.21Unreal Engine 4.22Улучшения
Расходы UnrealBuildTool5.381.03на 520% быстрее

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