АнонсБлок 3 - Gameplay Programmer ThinkingКурс: Тестируется

Data-driven Unreal Engine

Как отделить данные от логики, чтобы баланс и настройки не требовали перекомпиляции.

Главная боль

Любой баланс требует перекомпиляции

Главная мысль

Данные отдельно. Логика отдельно.

Главная боль

Любой баланс требует перекомпиляции.

Зачем это существует?

Gameplay system должна быть стабильной, а данные должны меняться быстро. Если каждое изменение урона, скорости или cooldown требует C++ rebuild, итерация становится слишком дорогой.

Темы

  • USTRUCT
  • DataAsset
  • PrimaryDataAsset
  • BP for data
  • C++ for systems
  • Static vs runtime data

Greybox Arena

  • Weapon configs
  • Projectile configs
  • Gameplay effect configs

Где люди обычно ломаются?

  • Хардкодят баланс прямо в C++ классах
  • Делают Blueprint не только данными, но и местом всей логики
  • Не различают immutable config и runtime state
  • Дублируют одинаковые настройки в разных Actor'ах
  • Не понимают, когда нужен DataAsset, а когда достаточно USTRUCT

Как это выглядит в production?

Production gameplay code часто выглядит так: C++ описывает систему, DataAsset описывает конкретную конфигурацию, Blueprint помогает собрать authoring workflow для дизайнеров.

Главная мысль

Данные отдельно. Логика отдельно.

Бейдж Unreal Authorized Instructor используется по лицензии Epic Games. Absolute Academy — независимый авторский проект. Авторизация инструктора не означает, что Epic Games одобряет или спонсирует Академию и её учебные материалы, либо что Академия аффилирована с Epic Games.

Мой учебный код можно свободно использовать в своих проектах. Упоминание автора — по желанию. Условия и лицензия 0BSD