Автор курса Game Code Александр Балакшин, работавший над Rainbow Six Siege, Atomic Heart, Halo: Infinite, рассказал на стриме на примере Unreal Engine, чем визуальный кодинг отличается от классического, в чём может заменить его, а в чём — нет. Собрали главное.
Чем отличаются визуальное и классическое программирование
Чтобы разграничить возможности визуального и классического кодинга, надо вспомнить уровни разработки игры:
- Первый, базовый уровень: игровой движок. В его функции входят рендер, работа с ресурсами, драйверами, памятью и сетью на уровне протоколов и передачи пакетов
- Второй уровень: инструменты, к которым относятся различные редакторы, конвертация и хранение ассетов
- Третий уровень: геймплейный код. Это регистрация попаданий, перемещение, репликация, искусственный интеллект и другие реакции на действия игрока. Обычно он базируется на фреймворке, созданном разработчиками движка — в Unreal Engine это C++
- Самый высокий, четвёртый уровень: скрипты. Их основная задача — максимально быстрое получение результата. Систему визуального программирования Blueprints можно назвать элементом скриптинга в Unreal Engine
Когда подойдёт Blueprints, а когда нужно классическое программирование
Blueprints подойдёт для:
- создания быстрых прототипов и небольших проектов
- работы с визуалом
- проработки заскриптованных сцен
- работы в малой команде
Классический кодинг предпочтительнее, если вам важны:
- Производительность — в Blueprints производительность хуже из-за отсутствия машинной оптимизации компилятора
- Читаемость — при использовании Blueprints для просмотра каждой функции нужно открывать новый экран, когда с обычным кодом работает поиск текста
- Объединение изменений — Blueprints не код, а данные, которые нельзя легко объединить без дополнительных инструментов.
- Масштабирование
- Поддержка сторонних API и работа не с UObject
Сегодня из-за своей доступности Blueprints начинают вытеснять классическое программирование. В итоге они практически заменяют геймплейный код скриптами. Это может быть допустимо в инди-играх, но в крупных проектах лучше соблюдать баланс / Александр Балакшин, программист и автор курса Game Code
Для более глубокого изучения темы Александр рекомендует посмотреть эти материалы:
Курс Epic Games о том, как сбалансировать работу с Blueprints и C++
Та же тема, но кратко и в виде текста
И в формате краткой видео-лекции
Если хотите стать разработчиком игр и программировать для Action игр в Unreal Engine и C++ — записывайтесь на курс Gamecode.
За 5 месяцев вас научат писать код, который позволит персонажам игры двигаться, перемещаться, стрелять и активно взаимодействовать с окружающим миром. Помогут освоить С++, работать с движком Unreal Engine, настраивать инвентарь и окружение, создавать персонажей и оружие.