Видео 15Блок 4 - UE Engineering
Subsystems - как перестать делать singleton помойки
GameInstanceSubsystem, WorldSubsystem и архитектура глобальных gameplay services.
Главная боль
GameInstance превратился в мусорку
Главная мысль
Global systems тоже должны иметь архитектуру.
Subsystems - как перестать делать singleton помойки
Главная боль
GameInstance превратился в мусорку.
Зачем это существует?
Глобальные системы нужны, но если складывать их в GameInstance или самодельные singletons, проект быстро теряет понятные lifecycle, ownership и зависимости.
Темы
- GameInstanceSubsystem
- WorldSubsystem
- Gameplay services
- Manager architecture
Greybox Arena
- Gameplay event service
- Arena-wide systems
- Centralized gameplay notifications
Где люди обычно ломаются?
- Делают оди н global manager для всего
- Не различают lifetime GameInstance и World
- Хранят level-specific state в слишком долгоживущем объекте
- Используют singleton как способ не думать об ownership
- Создают hidden dependencies через global access
Как это выглядит в production?
Production subsystem отвечает за конкретную область: inventory service, matchmaking service, gameplay event service, save service. У каждой системы есть понятный lifetime и зона ответственности.
Главная мысль
Global systems тоже должны иметь архитектуру.