Курс
UE C++ для Blueprint разработчиков
Курс про переход от BP spaghetti к мышлению gameplay programmer'а через практику на Greybox Arena.
20
уроков
Greybox Arena
сквозной проект
Тестовый курс
статус
UE C++ для Blueprint разработчиков
Главная цель курса - перестать писать BP spaghetti и начать мыслить как gameplay programmer.
Курс помогает:
- начать мыслить как gameplay programmer;
- понимать, как Unreal реально работает;
- перестать писать BP spaghetti;
- научиться строить масштабируемые gameplay systems.
Сквозной проект - Greybox Arena
Это не "делаем игру". Не "делаем шутер". Не "делаем RPG".
Мы строим минималистичную gameplay sandbox сцену - gameplay systems playground.
Внутри Greybox Arena постепенно появляются:
- Character
- Weapon system
- Projectile system
- Health/Damage
- Interaction
- Gameplay Effects
- Dummy AI
- Pickups
- Debug tools
- Multiplayer support
- Data-driven configs
Главная идея курса
Вот простое решение. Вот почему оно начинает ломаться. Вот как это решают в production.
Правило всего курса
Каждый урок отвечает на 4 вопроса:
- Зачем это существует?
- Какую проблему решает?
- Где люди обычно ломаются?
- Как это выглядит в production?
Чем курс не является
Документация нужна для полного API, edge cases и полного списка specifier.
Этот курс - про мышление gameplay programmer'а.
Как добавлять контент
Каждый урок курса лежит отдельным Markdown-файлом в папке src/content/academy/ue-cpp-blueprint-devs.
Картинки, архивы и дополнительные материалы лучше класть в public/academy/ue-cpp-blueprint-devs, а в тексте подключать так:
Для обычного оформления достаточно Markdown: заголовки, списки, цитаты, картинки, ссылки и блоки кода.
Уроки курса
Блок 1 - Ментальный сдвиг
Настройка UE C++ окружения без боли
Как собрать рабочий C++ workflow в Unreal и перестать бояться билдов.
Что Unreal делает с твоим кодом под капотом
UHT, reflection, GENERATED_BODY и generated.h без магического тумана.
Никогда не пиши gameplay код в конструкторе UE
Actor lifecycle, BeginPlay, CreateDefaultSubobject, NewObject и editor-time ловушки.
Tick убивает проекты. Вот почему
Почему polling ломает производительность и как переходить на timers, delegates и event-driven код.
Блок 2 - Object Model и GC
Почему Unreal удаляет твои объекты
UObject, GC, UPROPERTY, ownership и почему pointer внезапно становится проблемой.
UPROPERTY без API-энциклопедии
Какие specifier реально нужны gameplay programmer'у и как делать удобный editor API.
UFUNCTION и Blueprint API нормального человека
Как делать C++ функции, которые нормально живут в Blueprint-графах.
Блок 3 - Gameplay Programmer Thinking
Giant god classes убивают разработку
Почему Character.cpp превращается в неподдерживаемый монолит и как раскладывать gameplay по компонентам.
Cast To Character - это не архитектура
Как перестать строить проект на цепочках Cast и перейти к interface-driven gameplay.
Делегаты - переход от BP spaghetti к production коду
Event-driven gameplay, multicast delegates и развязка систем без прямых зависимостей.
Data-driven Unreal Engine
Как отделить данные от логики, чтобы баланс и настройки не требовали перекомпиляции.
Блок 4 - UE Engineering
FString, FName и FText - три строки, три разных мира
Почему Unreal использует разные строковые типы и где каждый из них нужен.
Почему std::vector может ломать Unreal
TArray, TMap, TSet, UObject references и контейнеры как часть gameplay performance.
Твоя игра жрет 8 ГБ ОЗУ из-за hard references
Hard refs, soft refs, async loading и почему dependency chains убивают scalability.
Subsystems - как перестать делать singleton помойки
GameInstanceSubsystem, WorldSubsystem и архитектура глобальных gameplay services.
Консольные команды и CVars - суперсила gameplay programmer'а
Runtime tuning, debug toggles и изменение gameplay без перекомпиляции.
Блок 5 - Multiplayer Minimum