На этом курсе ты научишься реализовывать все основные механики шутеров в Unreal Engine и получишь навыки, необходимые для работы геймплей-программистом в крупной студии.
Первое знакомство с основными инструментами игрового разработчика: Unreal Engine, Visual Studio и Perforce. Реализация одной из популярных игровых механик в Action играх. Установка и настройка:
Перечень программ, с которыми мы будем работать на этом курсе
Установка и обзор Epic Games Launcher: структура вкладок, секции Unreal Engine, Learn, Marketplace, Library. Установка Unreal Engine
Установка Microsoft Visual Studio Community Edition
Установка и настройка Perforce Helix Core и Helix Visual Client. Работа с Perforce, основные операции: checkout, submit, revert, resolve
Установка завершена
Создаем первый проект в Unreal Engine, разбираемся со структурой папки и добавляем в Perforce
Открываем solution проекта в Visual Studio. Обзор структуры решения: проект игры, проект UE4. Обзор основных инструментов и меню Visual Studio. Полезные расширения Visual Studio
Обзор редактора Unreal Engine 4
Реализация механики бега по стенам:
Почему именно бег по стенам и цели разработки
Создаем новый проект, добавляем в перфорс. Определяем факт и сторону столкновения
Создаем специальный уровень для тестирования нашей механики
Добавляем проверку на условия для работы механики. Начинаем и оканчиваем бег по стене по таймеру
Проверяем наличие необходимой поверхности сбоку во время бега. Добавляем поддержку изогнутых стен и наклона камеры. Усовершенствуем прыжок
Блок 1. Введение в курс
Основные сведения о курсе: как он построен и как сдавать домашки.
О курсе
Руководство по домашкам
Руководство по работе с Perforce и Swarm
Блок 2. Введение в Unreal Engine
Основные объекты UE4, начало работы с Blueprint и С++, знакомство с Gameplay framework и архитектурой движка, системой сборки и упаковки игры.
Основные объекты в Unreal Engine
С++ в Unreal Engine 4. Создание новых C++ классов. Рефлексия в C++ в UE4. Система событий. Классы для хранения данных
Исходный код UE4. Unreal build tool, сборка игры и движка. Конфигурации сборки. Введение в Gameplay Framework. Полезные фишки редактора
Блок 3. Персонаж, контроллер, камеры и передвижение
Знакомство c InputComponent и PlayerController. Создание персонажа: классы Pawn vs Character. Работа с MovementComponent и камерами. Что такое SkeletalMesh, скелетная анимация и анимационный блупринт. FirstPerson Chracater vs. ThirdPerson Character: сходства и различия.
Знакомство с концепцией персонажей, камер и контроллеров. Работа с вводом. Создание своих классов Pawn и PawnMovement. Работа с камерами. Логирование
Скелет и скелетная анимация. Анимационные ассеты в UE4. Анимационный блупринт и стейт машина. Инверсная кинематика и анимационные нотификации
Класс Character и базовое перемещение. Классы ACharacter и UCharacterMovementComponent. Реализация механик перемещения, прыжка, приседания и спринта для гуманоидного персонажа
Продвинутое перемещение персонажа: плавание
Продвинутое перемещение персонажа: перелазание
Продвинутое перемещение персонажа: лестницы
First Person Character. Персонаж от первого лица. Особенности управления, камеры и скелетной геометрии. Механики перемещения для первого лица
Блок 4. Оружие
Холодное и огнестрельное оружие. Регистрация попаданий: HitScan и Projectile. Анимации оружия и персонажа. Чем пистолет отличается от автомата и дробовика. Гранаты и взрывы.
Концепция урона в Unreal Engine. Здоровье и другие атрибуты персонажа. Смерть персонажа и Ragdoll
Пистолет. Регистрация попаданий через HitScan. AimSpace и AimOffset. Эффекты дульных вспышек и следов от пуль
Амуниция, переключение оружия, интерфейс. Реализуем свап между пистолетом и автоматом, виджет патронов, перезарядку и ее анимацию
Дробовик. Множественная регистрация попаданий. Перезарядка по одному патрону. скорострельность дробовика. Импульс при попадании
Взрывы и граната. Взрывы, radial damage и explosion component. Снаряды (projectiles) и бросаемые предметы
Снайперская винтовка. Использование снарядов (projectiles) для регистрации попаданий. Прицеливание для снайперской винтовки
Нож. Оружие ближнего боя и его регистрация попаданий
Блок 5. Искусственный интеллект и NPC
Создашь «стационарного» NPC — башни. Настроишь чувства, систему восприятия, навигацию и дерево поведений. Система Sense-Think-Act. AIController и Blackboard. Система восприятия: AIPerception и AIPerceptionStimuliSource. Система навигации: Nav Mesh, Nav Link, Nav Modifier и Recast NavMesh.
Система восприятия искусственного интеллекта. Создание первого персонажа ИИ — автоматической башни. Идентификаторы команд
Система навигации искусственного интеллекта и его передвижения
Дерево поведений. Узлы дерева поведения: Selections, Sequences и Tasks. Декораторы и сервисы. Реализация стреляющего и движущегося AI
Блок 6. Сеть и репликация
Клиент-серверная модель в UE4. Что такое репликация? Репликация экторов, свойств и вызов удаленных процедур. Репликация персонажей, регистрации попаданий и прочих игровых механик. Создание, поиск и присоединение к многопользовательской сети.
Введение в репликацию. Что такое репликация? Сетевые роли в Unreal Engine. Репликация свойств и вызов удаленных процедур
Подключение онлайн подсистемы Steam. Создание игрового меню. Создание, поиск и присоединение к онлайн сессии
Блок 7. Взаимодействие с объектами и инвентарь игрока
Взаимодействие с окружением: кнопки, двери, триггеры. Подбираемые объекты и система инвентаря и чем она отличается от экипировки. Spawn таблицы для предметов в инвентаре.
Интерактивные объекты. Взаимодействие с объектами по линии взгляда игрока. Интерфейс интерактивных объектов
Компонент инвентаря. Визуальное представление (view) инвентаря. Подбирание объектов в инвентарь. Потребление объектов из инвентаря
Перемещение оружия из инвентаря в экипировку. View экипировки
Радиальное меню — колесо выбора оружия
Блок 8. Система сохранения, загрузка и стриминг уровней
Класс USaveGame и слоты для сохранения. Типы сохранения и загрузки игры (asynchronous, synchronous, binary). Открытие и стриминг уровней. Сохранения состояния выгруженного уровня при стриминге.
Разберём и реализуем систему сохранения в Unreal Engine
Стриминг уровней: разберёмся как динамически подгружать и выгружать уровни.
Блок 9. Оптимизация в UE4
Инструменты отладки и профилирования в UE4: консоль и STAT команды, Session Frontend и Unreal Insights. Логические LOD'ы, Significance manager.
Инструменты профилирования и логические лоды: разберём различные механизмы для тестирования и оптимизации в Unreal Engine
Блок 10. Gameplay Ability System
Знакомство с Gameplay Ability System, с атрибутами и эффектами, ability tasks, а также познакомимся с репликацией по сети в ней.
Знакомство с Gameplay Ability System или сокращённо GAS
Атрибуты и эффекты ч.1
Атрибуты и эффекты ч.2
Ability tasks: знакомство и работа
Репликация: познакомимся и настроим некоторые механики для работы по сети
Дипломная работа: ты реализуешь одну из геймплейных систем на выбор — летающий дрон или лук.
Бонусный блок с дополнительными стримами по курсу
Гостевые и совместные стримы:
Стрим с Александром Пироговым. Профессия Tool программист
Александр Пирогов о Rider for Unreal Engine 2020.3: новые фичи и возможности
Rider для Unreal Engine с инженером-программистом из JetBrains
Леонид Горбачев. Использование UE4 для создания экономической стратегии
Геймдизайнер и нарративный дизайнер о квест-системе
Стрим с менеджером игровых проектов про управление технической командой
Взаимодействие геймдизайнера и программиста
Файт-система и хит реакции
Как разработчики работают с художниками игрового окружения
Стримы про Unreal Engine:
Документация кода
Ещё раз об отладке. Методы и различные полезные фишки
GAS — gameplay ability system
Blueprint components и их использование
Работа с sequencer и анимациями
Отдача оружия
Перевод эффектов из Cascade в Niagara
Hit реакции
Анимации поворота
Impact FX
Хит Маркеры и их индикаторы
Debug Курсового проекта
Control Rig:
Знакомство с Control Rig Pt_1
Знакомство с Control Rig Pt_2
Знакомство с Control Rig Pt_3
AirCraft:
Реализация летательного аппарата
Летательный аппарат: репликация
Летательный аппарат: Часть 2
Плагины:
Плагины в UE4 Pt_1
Плагины в UE4 Pt_2
А также:
Стрим про модуль загрузочного экрана
Пайплайны и особенности работы геймплей программиста на ААА проекте
Пайплайны и особенности работы геймплей программиста на ААА проекте 2.0