Видео 2Блок 1 - Ментальный сдвиг
Что Unreal делает с твоим кодом под капотом
UHT, reflection, GENERATED_BODY и generated.h без магического тумана.
Главная боль
Что вообще делают GENERATED_BODY и макросы?
Главная мысль
Сначала Unreal строит reflection system. Потом gameplay.
Что Unreal делает с твоим кодом под капотом
Главная боль
Что вообще делают GENERATED_BODY и макросы?
Зачем это существует?
Unreal должен знать о классах, свойствах и функциях больше, чем обычный C++ compiler. Для этого движок сначала строит reflection system.
Темы
- UHT
- Reflection
- GENERATED_BODY
- generated.h
- Include dependencies
- Forward declarations
- Compile pipeline
Greybox Arena
- Создаем базовый gameplay actor
- Специально устраиваем include hell
- Смотрим на compile dependency explosion
Где люди обычно ломаются?
- Считают макросы просто синтаксическим шумом
- Не понимают, почему
generated.hдолжен быть последним include - Подключают лишние headers вместо forward declarations
- Не видят связь между includes и временем компиляции
Как это выглядит в production?
Production-код держит public headers легкими, forward declarations используются осознанно, а зависимости между gameplay-модулями контролируются заранее.
Главная мысль
Сначала Unreal строит reflection system. Потом gameplay.