При создании масштабируемых игровых систем на C++ в Unreal Engine 5, особенно при использовании Game Features и плагинов Modular Gameplay, одной из самых сложных задач становится порядок инициализации.
Компоненты, прикреплённые к актору, часто создаются в разное время, зависят от реплицируемых данных с сервера (например, PlayerState или Inventory) или опираются на асинхронную загрузку ассетов.
IGameFrameworkInitStateInterface (предоставляется плагином ModularGameplay и показан в стартовой игре Lyra от Epic) решает это, вводя управляемую тегами машину состояний для инициализации.
В этом руководстве мы разберём, как работает интерфейс, как устроена его архитектура, какое архитектурное решение выбрать — реализацию на стороне актора или компонента, — и как выстроить аккуратный конвейер инициализации для собственных модульных игровых компонентов.
https://dev.epicgames.com/community/learning/tutorials/7r46/unreal-engine-1-igameframeworkinitstateinterface-ue-5-lyra