Видеокурс "Программирование на C++ в Unreal Engine 5"
5970
157
0
157

Видеокурс "Программирование на C++ в Unreal Engine 5"

  • Цена:
    5970

    ПОДРОБНОЕ ОПИСАНИЕ

    Автор: Михаил Русаков

    Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

    Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

    Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.


    Программирование на C++ в Unreal Engine 5. (Михаил Русаков)
  • Модуль №1. Введение

    • Как проходить курс?

    В уроке будут даны важные рекомендации по эффективному прохождению курса.

    • Установка необходимого ПО

    В уроке скачаем и установим весь необходимый софт. Уже даже на этом этапе у новичков возникают проблемы, но благодаря этому уроку у Вас их не будет.

    • Установка и настройка clang-format

    Совершенно необходимый инструмент, нужный для быстрого форматирования/выравнивания кода.

    После этого модуля у Вас будет уже всё готово для работы в самом движке.

    Модуль №2. Основы C++ в Unreal Engine

    Материал этого раздела совершенно необходим, прежде чем пытаться хоть что-то делать в Unreal Engine на C++.

    • Создание первого проекта

    Создадим проект из шаблона ThirdPerson и подробно разберём каждую строчку кода. Это уже будет отличным стартом.

    • Как работает движок изнутри?

    Достаточно важный урок, если Вы действительно хотите понять, как работает вся «магия» изнутри. Это, во-первых, может пригодиться на собеседовании, во-вторых, Вы лучше будете понимать, что делаете.

    • Рефакторинг шаблона от третьего лица

    В уроке мы почистим сгенерированные классы от лишнего мусора, переименуем классы (а это не так просто сделать, как кажется), наведём порядок.

    • Создание C++-класса

    В уроке создадим C++-класс с нуля.

    • Типы данных

    В рамках урока Вы познакомитесь с основными типами, которые нам предоставляет фреймворк Unreal Engine 5.

    • Логирование

    После урока Вы научитесь делать записи в лог, в том числе, выводя переменные самых разных типов. Это необычайно важные знания, особенно, когда речь заходит об отладке.

    • Макрос UPROPERTY

    Подробно обсудим этот важнейший макрос в Unreal Engine.

    • Construction Script в C++

    Разберём аналог Construction Script из Blueprint, но в рамках C++.

    • Asserts

    Разберём эту группу макросов, которые очень важны, если Вы хотите писать качественный код.

    • Макрос UFUNCTION

    Ещё один фундаментальный макрос, который мы тщательно обговорим.

    • Структуры

    Обсудим создание структур в C++, которые будут доступны, в том числе, и в Blueprint.

    • Перечисления

    После этого урока Вы научитесь создавать перечисления в C++ для Unreal Engine.

    • Делегаты

    Это эквивалент Event Dispatcher из Blueprint. И из урока Вы узнаете, как создавать делегаты с параметрами или без, только для C++ или для C++ и Blueprint.

    • Виджеты

    Обсудим процедуру создания виджетов с использованием C++. Здесь очень много тонкостей и нюансов, дойти до которых можно лишь, имея большой опыт. Но Вы получите всё и сразу в этом уроке.

    • Таймеры

    После этого урока Вы научитесь использовать таймеры в C++.

    • Delay

    Функция Delay является очень часто используемой (гораздо чаще, чем надо, кстати), и как её реализовать в C++ мы и обсудим.

    • Интерфейсы

    В уроке мы разберём процедуру создания и применения интерфейсов на C++, которая доступна благодаря фреймворку Unreal Engine.

    После данного раздела Вы уже будете иметь очень серьёзную базу. Даже этих знаний уже достаточно, чтобы уверенно начать программировать на C++ в Unreal Engine. Но, безусловно, это пока всего лишь теория с абстрактными примерами. А ведь гораздо лучше всё усваивается, когда после теории идёт наглядный пример. И вот во всех последующих разделах будет создаваться достаточно серьёзный проект на C++.

    Модуль №3. Создание игры: подготовка проекта

    Материал этого раздела совершенно необходим, прежде чем пытаться хоть что-то делать в Unreal Engine на C++.

    • Разбор технического задания

    Один из ценнейших уроков курса, в котором мы, во-первых, подробно разберём то, что мы будем создавать. Во-вторых, Вы научитесь писать свои технические задания (для себя или для других), узнаете про итеративные методики создания ПО, поймёте, как, в целом, строится pipeline разработки.

    • Создание и настройка проекта

    Сделаем все необходимые стартовые вещи.

    • Добавление персонажа

    Добавим персонажа для игрока, импортируем анимации, наведём порядок.

    • Добавление животных

    Добавим животных и все необходимые ассеты для них.

    • Добавление предметов

    Поскольку у нас будет создаваться инвентарь в будущем, мы заранее добавим сами предметы в наш проект, чтобы потом на этом не останавливаться.

    Модуль №3. Создание игры: подготовка проекта

    Материал этого раздела совершенно необходим, прежде чем пытаться хоть что-то делать в Unreal Engine на C++.

    • Разбор технического задания

    Один из ценнейших уроков курса, в котором мы, во-первых, подробно разберём то, что мы будем создавать. Во-вторых, Вы научитесь писать свои технические задания (для себя или для других), узнаете про итеративные методики создания ПО, поймёте, как, в целом, строится pipeline разработки.

    • Создание и настройка проекта

    Сделаем все необходимые стартовые вещи.

    • Добавление персонажа

    Добавим персонажа для игрока, импортируем анимации, наведём порядок.

    • Добавление животных

    Добавим животных и все необходимые ассеты для них.

    • Добавление предметов

    Поскольку у нас будет создаваться инвентарь в будущем, мы заранее добавим сами предметы в наш проект, чтобы потом на этом не останавливаться.

    Модуль №5. Создание игры: AI

    В рамках этих уроков мы реализуем на C++ всю логику искусственного интеллекта для животных.

    • Создание AnimalAIController

    Создадим основной контроллер, который будет своего рода «пультом», отвечающего за включение и выключение тех или иных компонентов, которые будут созданы впоследствии.

    • Создание базового AI-компонента

    Создадим базовый AI-компонент, от которого будут наследоваться остальные.

    • Создание компонента патрулирования

    При запуске в контроллере этого компонента животные будут спокойно прогуливаться по территории недалеко от своего спавна.

    • Создание компонента для убегания от противника

    Если животное увидит противника, то немедленно начнёт от него убегать до тех пор, пока расстояние не будет безопасным. Как реализовать подобную логику, Вы узнаете в этом уроке.

    • Подключение AI-компонентов к контроллеру

    В уроке мы возьмём созданные компоненты и подключим их к нашему контроллеру, а также настроим логику их включения/выключения.

    • Создание спавнера

    Создадим спавнер для животных (вообще говоря, он подойдёт для любых Actor), который можно будет в редакторе вытащить на сцену и настроить.

    Модуль №6. Создание игры: инвентарь

    В рамках этого раздела мы будем создавать техническую часть инвентаря для нашей игры.

    • Добавление своих настроек в Project Settings

    В этом уроке Вы увидите, как можно добавить свои собственные настройки в Project Settings, доступ к которым потом получить из кода на C++.

    • Создание структуры и DataTable

    В уроке мы создадим структуру для предметов, а также таблицу с ними, которую будет очень легко заполнять, добавляя всё новые и новые предметы в игру.

    • Создание класса предметов

    В уроке Вы узнаете, как использовать DataTable, создадим необходимые Helper и, само собой, сам класс предмета.

    • Создание компонента инвентаря

    Я своими глазами видел, как один «учитель» с очень положительными комментариями под его видео создавал инвентарь в виде Actor (видимо, у инвентаря по мнению автора есть местоположение и поворот в мире), а попутно хранил сами предметы в массиве опять же типа Actor. Мы же всё с Вами реализуем, как полагается: с интерфейсом, с хранением только RowName и в виде ActorComponent.

    • Сбор предметов

    Реализуем подбирание предметов и добавление их в инвентарь.

    • Создание компонента стартовых предметов

    Чтобы в начале игры у наших персонажей (игрока и животных) были уже какие-то предметы в инвентаре, мы реализуем и добавим необходимый для этого компонент.

    Модуль №7. Создание игры: виджеты

    В рамках этого большого раздела будут созданы все необходимые виджеты. Помимо большого объёма C++-кода, здесь нам потребуется использовать и редактор виджетов для их вёрстки.

    • Создание базового класса виджета

    В уроке разберём, зачем нужен наш собственный базовый класс для всех виджетов, и создадим его.

    • Создание виджета кнопки

    Поскольку кнопки мы будем использовать многократно в других виджетах, разумно создать отдельный виджет для неё, чтобы всегда можно было поменять её дизайн, а, по сути, автоматически изменить дизайн всех остальных виджетов.

    • Создание виджета для взаимодействия

    Непосредственно создадим логику виджета и сделаем его вёрстку.

    • Создание компонента InteractWidgetComponent

    Создадим компонент, который будет отвечать за вывод виджета при наведении на объекты мира (например, на предметы, которые можно подобрать) с информацией о них и о том, как с ними взаимодействовать.

    • Вывод виджета при взаимодействии с миром

    Объединим созданный виджет из позапрошлого урока с компонентом из прошлого и подключим всё это, например, в тот же класс предмета.

    • Создание GameHUDWidget

    Создадим и выведем виджет, который будет доступен во время игры.

    • Создание виджета для слота инвентаря

    Создадим виджет слотов инвентаря.

    • Создание виджета инвентаря

    Полностью создадим весь виджет инвентаря, включая логику и вёрстку.

    • Открытие и закрытие виджета инвентаря

    Используя делегат, реализуем механизм открытия и закрытия инвентаря.

    • Создание виджета для сообщений инвентаря

    Реализуем механизм, при котором, подбирая или тратя предметы в инвентаре, у нас будет писаться соответствующее сообщение.

    • Создание стратегий для инвентаря

    Реализуем паттерн Strategy, благодаря которому мы гибко сможем делать обработку нажатий на предмет в инвентаре.

    • Создание главного меню

    Создадим виджет для главного меню.

    • Обработка главного меню

    В уроке обработаем кнопки главного меню.

    • Создание загрузочного виджета

    Процесс перехода из главного меню на уровень игры занимает некоторое время, на протяжении которого желательно вывести какой-нибудь загрузочный виджет, чем мы и займёмся в этом уроке.

    • Открытие и закрытие загрузочного виджета

    Реализуем логику появления и плавного исчезновения загрузочного экрана.

    • Создание меню паузы

    В этом уроке мы создадим меню паузы.

    • Открытие и закрытие виджета паузы

    Из этого урока Вы узнаете, как правильно реализовать функционал переключения видимости виджета с помощью нажатия одной и той же кнопки.

    • Обработка меню паузы

    В меню паузы будет несколько кнопок, обработку которых мы реализуем в этом уроке.

    • Добавление курсора

    Добавим свой собственный курсор в нашу игру.

    Модуль №8. Создание игры: лук и экипировка

    В этом разделе мы займёмся созданием механизма экипировки и стрельбы из лука.

    • Создание класса оружия

    В уроке будет создан общий класс для любого оружия.

    • Создание анимации лука

    Поскольку в игре тетива лука будет натягиваться, нам потребуется AnimInstance и AnimBlueprint, чем мы и займёмся в этом видео.

    • Создание базового компонента для экипировки

    Данный компонент будет являться общим для любых других компонентов-экипировки.

    • Создание компонента для экипировки оружия

    Создадим компонент экипировки, который подойдёт для любого оружия. Всю общую логику, характерную именно для экипированного оружия, мы пропишем в этом компоненте.

    • Создание компонента для экипировки лука

    Реализуем компонент, который будет отвечать за экипировку лука.

    • Создание класса стрелы

    Реализуем класс для стрелы, которая будет лететь по баллистическому закону.

    • Создание класса лука

    Создадим класс для лука.

    • Экипировка лука

    Реализуем нужную стратегию и экипируем уже сам лук, путём клика по нему на слот в инвентаре.

    • Реализация стрельбы из лука

    Реализуем саму стрельбу из лука, а так же сделаем так, чтобы при попадании стрелы в голову, наносился повышенный урон.

    • Сборка ресурсов с животных

    Сделаем сбор ресурсов с животных и добавление их в инвентарь.

    Модуль №9. Создание игры: магазины

    В рамках этого раздела мы реализуем механизм магазинов. У нас будут магазины, которые скупают товары (например, кожу и мясо), а будут магазины, которые продают товар (например, различные луки и стрелы).

    • Создание базового класса магазина

    В уроке мы создадим общую логику для любых магазинов.

    • Создание класса для магазина-покупателя

    Реализуем магазин, который будет скупать соответствующие предметы у игрока, когда тот взаимодействует с магазином.

    • Создание класса для магазина-продавца

    Создадим логику магазина, который продаёт различные предметы. И при взаимодействии с ним игрок сможет делать покупки.

    Модуль №10. Создание игры: смена времени суток

    В этом разделе мы создадим динамическую смену дня и ночи.

    • Создание кривой для солнца

    Поскольку солнце будет двигаться, то мы заранее создадим CurveFloat, в котором опишем движение солнца.

    • Создание класса для изменения времени суток

    Напишем основной класс, в котором можно будет задавать текущее время, а также в котором будет происходить его течение.

    • Добавление Луны

    В уроке добавим Луну и подключим к нашей системе., причём не только с её движением по небосводу, но и с фазами луны.

    • Движение Луны и её фазы

    Настроим движение Луны по небосводу, а дополнительно сделаем и плавное изменение фаз Луны.

    Модуль №11. Создание игры: звуки и музыка

    В рамках этого раздела мы добавим в наш код проигрывание самых разных звуков и музыки.

    • Добавление звуков лука

    Натягивание тетивы, выстрел из лука, попадание стрелы – для всего этого мы добавим звуки.

    • Добавление звуков кнопки

    Достаточно простой урок, в котором мы обойдёмся без программирования.

    • Добавление звуков животных

    Добавим различные звуки для животных. Они будут проигрываться произвольным образом в случайное время.

    • Добавление звуков леса

    Поскольку часть нашего мира будет покрыта лесами, то разумно будет сделать правильную атмосферу в нём с помощью звуков, чем мы и займёмся в этом уроке.

    • Добавление звука попытки уйти с карты

    Добавим фразу персонажа при попытке уйти за границы карты.

    • Создание классов AnimNotify

    Объекты данных классов будут вызываться во время проигрывания анимации. Таким образом, в определённые моменты анимации мы сможем выполнить определённую логику.

    • Добавление звуков шагов

    В рамках этого урока мы, используя класс AnimNotify из прошлого урока, реализуем проигрывание звуков шагов в зависимости от поверхности под ногами персонажа.

    • Добавление музыки

    Добавим музыку в игру.

    Модуль №12. Создание игры: игровой уровень

    Заключительный раздел, в котором мы соберём все наши уже работающие механики в рамках игрового уровня, а также сделаем и протестируем готовую сборку.

    • Рефакторинг

    Проведём небольшой рефакторинг для улучшения кода.

    • Замена Input на Enhanced Input

    Заменим классические Input на Enhanced Input, которые уже на данный момент являются стандартом Unreal Engine 5.

    • Импорт ассетов

    В уроке мы импортируем необходимые ассеты для дизайна уровня.

    • Создание игрового уровня

    Используя импортированные ассеты, создадим мир нашей игры.

    • Добавление игровых элементов

    Добавим все необходимые элементы: спавнеры животных, звуки леса, навигационную сетку, магазины, дом ловчего, стартовые предметы и много чего ещё по мелочи.

    • Сборка проекта

    Соберём и протестируем shipping-версию.

    • Заключение

    Важные слова напутствия и советы, в каком направлении стоит двигаться дальше, исходя из моего опыта.


  • Программирование на C++ в Unreal Engine 5. (Михаил Русаков)

ПОХОЖИЕ ТОВАРЫ