Курс «Создание игр на Unreal Engine 5»

Видеоуроки / Самостоятельно / Обучение в ЛК на сайте автора

  • 81 день
  • 12 модулей
  • 105 уроков
  • Сертификат
  • Видеоуроки

Получите необходимую базу для создания C++ проектов на Unreal Engine 5. За 81 день научитесь создавать игры на C++ в Unreal Engine 5, увидите наглядный пример создания игры, создадите свой собственный серьёзный проект для портфолио, и всё это с нуля!

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

Обновлено: 18.11.2023

Источник изображения: Unsplash

Стоимость:

5 970 
  • Оплата на сайте автора. Цена может отличаться.
Этот курс включает:
  • 81 день
  • 12 модулей
  • 105 уроков
  • Обучение: в ЛК на сайте автора
  • Когда будете учиться: в любой день в любое время
  • Уровень сложности: для опытных
  • Бонусы: для всех учеников
  • Сертификат
  • Техническая поддержка: в рабочее время, чат на сайте
  • Доступ: сразу после оплаты
Создание игр на Unreal Engine 5

Михаил Русаков

Перейти на сайт
Тематика: Языки С, С++, С#
Профессии: Веб-разработчик

Чему вы научитесь?

  • Решать проблемы с работоспособностью кода.
  • Создавать игровые механики с помощью C++.
  • Писать грамотный код.
  • Тестировать Unreal-проекты с помощью Python.
  • Программировать на C++ в Unreal Engine.
  • Создавать необходимые виджеты.

О курсе

Unreal Engine 5 — востребованный и мощный движок, на котором можно быстро создать игру с нуля. Используется он для создания игр любых жанров. Крупные мировые студии переходят на UE5, а это значит, что для специалистов, умеющих создавать качественные продукты на Unreal Engine 5, работа программистом удаленно — это реальность, а не мечта. На этом курсе вы научитесь создавать игры на C++ в Unreal Engine 5.

Михаил Русаков ждет на курсе новичков, которые хотят пройти обучение основам программирования, кто владеет языком С++ на начальном уровне и желает повысить навыки работы, кто стремится получить работу в игровой студии программистом. На уроках вы будете учиться реализовывать игровые механики, писать грамотный код, тестировать Unreal-проекты и многому другому.

Краткая программа курса «Создание игр на Unreal Engine 5»:

  1. Ставим клиент, разбираемся в настройках и шаблонах для первого проекта.
  2. Работа движка. Создание C++-класса.
  3. Составление техзадания для игры. Итеративные методы создания программного обеспечения.
  4. Пошаговые видеоуроки по созданию игры на движке UE5.
  5. Тест на работоспособность, на Python.

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

Модуль 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 разработки.
  • Создание и настройка проекта. Сделаем все необходимые стартовые вещи.
  • Добавление персонажа. Добавим персонажа для игрока, импортируем анимации, наведём порядок.
  • Добавление животных. Добавим животных и все необходимые ассеты для них.
  • Добавление предметов. Поскольку у нас будет создаваться инвентарь в будущем, мы заранее добавим сами предметы в наш проект, чтобы потом на этом не останавливаться.

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

С этого раздела начинается активное и серьёзное программирование.

  • Создание уровней и GameMode. Создадим карту для тестового уровня, для главного меню, а так же необходимые GameMode.
  • Создание класса персонажа и игрока. После этого урока у нас уже будет готовый персонаж с видом от первого лица, которым можно управлять. Оба класса будут созданы с нуля.
  • Создание AnimInstance и AnimBlueprint. В рамках этого урока мы создадим необходимый интерфейс (чтобы не было лишних зависимостей), реализуем его, применим. Так же создадим AnimInstance, который ближе к концу урока ляжет в основу AnimBlueprint.
  • Создание класса животных и их AnimBlueprint. Создадим класс для животных, которые в будущем будут жить своей жизнью. Также благодаря нашему классу AnimInstance, созданному ранее, Вы увидите, насколько приятно создавать AnimBlueprint для самых разных персонажей.
  • Создание HUD. Создадим HUD, основа которого нам пригодится в будущем.
  • Создание «границы». Сделаем так, что если игрок попытается уйти за пределы карты, то его возвращало обратно на уровень. Подобная механика реализована в таких играх как «Ведьмак 3: Дикая охота» и «Kingdom Come Deliverance».
  • Создание компонента взаимодействия. Создадим компонент, который позволит нам взаимодействовать с внешним миром (например, взаимодействовать с магазином, поднимать предметы).
  • Создание компонента здоровья. Думаю, не нужно пояснять, что просто добавить переменную Health в класс персонажа – это плохая идея. Это классический пример нарушения принципа единственной ответственности класса. В общем, в уроке мы всё сделаем правильно.
  • Создание компонента для выносливости. Поскольку в будущем быстрый бег и прицеливание из лука будут расходовать выносливость, нам необходимо заранее написать компонент для выносливости.
  • Создание компонента CharacterMovementComponent. Поскольку у нас есть режим спринта, а также расходование выносливости в этом режиме, мы реализуем свой компонент для передвижения, попутно заменив в классе персонажа базовый компонент своим.
  • Режим спринта и расход выносливости. Реализуем спринт, плюс расход выносливости от него.
  • Создание компонента камеры. При расходе выносливости у нас будет искажаться и затемняться экран, поэтому будет разумным создать свой компонент камеры, чем мы и займёмся.
  • Создание компонента CameraShakeSourceComponent. Данный компонент будет создавать тряску при прицеливании из лука. Более того, чем ниже выносливость, тем сильнее будет тряска (и тем сложнее будет прицелиться).

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

С этого раздела начинается активное и серьёзное программирование.

  • Создание уровней и GameMode. Создадим карту для тестового уровня, для главного меню, а так же необходимые GameMode.
  • Создание класса персонажа и игрока. После этого урока у нас уже будет готовый персонаж с видом от первого лица, которым можно управлять. Оба класса будут созданы с нуля.
  • Создание AnimInstance и AnimBlueprint. В рамках этого урока мы создадим необходимый интерфейс (чтобы не было лишних зависимостей), реализуем его, применим. Так же создадим AnimInstance, который ближе к концу урока ляжет в основу AnimBlueprint.
  • Создание класса животных и их AnimBlueprint. Создадим класс для животных, которые в будущем будут жить своей жизнью. Также благодаря нашему классу AnimInstance, созданному ранее, Вы увидите, насколько приятно создавать AnimBlueprint для самых разных персонажей.
  • Создание HUD. Создадим HUD, основа которого нам пригодится в будущем.
  • Создание «границы». Сделаем так, что если игрок попытается уйти за пределы карты, то его возвращало обратно на уровень. Подобная механика реализована в таких играх как «Ведьмак 3: Дикая охота» и «Kingdom Come Deliverance».
  • Создание компонента взаимодействия. Создадим компонент, который позволит нам взаимодействовать с внешним миром (например, взаимодействовать с магазином, поднимать предметы).
  • Создание компонента здоровья. Думаю, не нужно пояснять, что просто добавить переменную Health в класс персонажа – это плохая идея. Это классический пример нарушения принципа единственной ответственности класса. В общем, в уроке мы всё сделаем правильно.
  • Создание компонента для выносливости. Поскольку в будущем быстрый бег и прицеливание из лука будут расходовать выносливость, нам необходимо заранее написать компонент для выносливости.
  • Создание компонента CharacterMovementComponent. Поскольку у нас есть режим спринта, а также расходование выносливости в этом режиме, мы реализуем свой компонент для передвижения, попутно заменив в классе персонажа базовый компонент своим.
  • Режим спринта и расход выносливости. Реализуем спринт, плюс расход выносливости от него.
  • Создание компонента камеры. При расходе выносливости у нас будет искажаться и затемняться экран, поэтому будет разумным создать свой компонент камеры, чем мы и займёмся.
  • Создание компонента CameraShakeSourceComponent. Данный компонент будет создавать тряску при прицеливании из лука. Более того, чем ниже выносливость, тем сильнее будет тряска (и тем сложнее будет прицелиться).

Модуль 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-версию.
  • Заключение. Важные слова напутствия и советы, в каком направлении стоит двигаться дальше, исходя из моего опыта.
  • Формат
    Самостоятельно
    Видеоуроки
    Обучение в ЛК на сайте автора
  • Количество уроков
    105
  • Продолжительность
    81 день
  • Уровень сложности
    Для опытных
  • Когда вы будете учиться
    В любой день в любое время
  • Документ об обучении
    Сертификат Освоение программы курса
  • Обязательное выполнение итоговой работы
  • Техническая поддержка
    В рабочее времяЧат на сайте
  • Безопасная покупка
    В течение 30 дней с даты покупки
  • Бонусы
    Для всех учеников
  1. Нажмите на кнопку
    Узнать подробнее
  2. Вы перейдете на детальную страницу курса Михаила Русакова. Внимательно прочитайте представленную на ней информацию.
  3. Следуя указаниям, оформите заказ на курс.
  4. Обязательно укажите актуальный e-mail. На него придет вся информация, в частности, по доступу к курсу.
  5. Если вы еще не готовы к покупке курса, то советуем для начала освоить бесплатный материал Михаила Русакова.

Если инструкция вам не помогла, пожалуйста напишите нам на почту info@info-hit.ru, мы оперативно поможем вам получить необходимую информацию.

Отзывы о курсе

Пока никто не оставил отзывов. Чтобы оставить отзыв перейдите на полную версию страницы.

Другие курсы автора