Курс «Создание игр на Unreal Engine 5»
Видеоуроки / Самостоятельно / Обучение в ЛК на сайте автора
Получите необходимую базу для создания C++ проектов на Unreal Engine 5. За 81 день научитесь создавать игры на C++ в Unreal Engine 5, увидите наглядный пример создания игры, создадите свой собственный серьёзный проект для портфолио, и всё это с нуля!
Обновлено: 18.11.2023
Источник изображения: Unsplash
Стоимость:
5 970 ₽- Оплата на сайте автора. Цена может отличаться.
- 81 день
- 12 модулей
- 105 уроков
- Обучение: в ЛК на сайте автора
- Когда будете учиться: в любой день в любое время
- Уровень сложности: для опытных
- Бонусы: для всех учеников
- Сертификат
- Техническая поддержка: в рабочее время, чат на сайте
- Доступ: сразу после оплаты
Чему вы научитесь?
- Решать проблемы с работоспособностью кода.
- Создавать игровые механики с помощью C++.
- Писать грамотный код.
- Тестировать Unreal-проекты с помощью Python.
- Программировать на C++ в Unreal Engine.
- Создавать необходимые виджеты.
О курсе
Описание
Программа курса
Особенности
Unreal Engine 5 — востребованный и мощный движок, на котором можно быстро создать игру с нуля. Используется он для создания игр любых жанров. Крупные мировые студии переходят на UE5, а это значит, что для специалистов, умеющих создавать качественные продукты на Unreal Engine 5, работа программистом удаленно — это реальность, а не мечта. На этом курсе вы научитесь создавать игры на C++ в Unreal Engine 5.
Михаил Русаков ждет на курсе новичков, которые хотят пройти обучение основам программирования, кто владеет языком С++ на начальном уровне и желает повысить навыки работы, кто стремится получить работу в игровой студии программистом. На уроках вы будете учиться реализовывать игровые механики, писать грамотный код, тестировать Unreal-проекты и многому другому.
Краткая программа курса «Создание игр на Unreal Engine 5»:
- Ставим клиент, разбираемся в настройках и шаблонах для первого проекта.
- Работа движка. Создание C++-класса.
- Составление техзадания для игры. Итеративные методы создания программного обеспечения.
- Пошаговые видеоуроки по созданию игры на движке UE5.
- Тест на работоспособность, на 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 дней с даты покупки
-
БонусыДля всех учеников
- Нажмите на кнопку
Узнать подробнее - Вы перейдете на детальную страницу курса Михаила Русакова. Внимательно прочитайте представленную на ней информацию.
- Следуя указаниям, оформите заказ на курс.
- Обязательно укажите актуальный e-mail. На него придет вся информация, в частности, по доступу к курсу.
- Если вы еще не готовы к покупке курса, то советуем для начала освоить бесплатный материал Михаила Русакова.
Если инструкция вам не помогла, пожалуйста напишите нам на почту info@info-hit.ru, мы оперативно поможем вам получить необходимую информацию.
Отзывы о курсе
Пока никто не оставил отзывов. Чтобы оставить отзыв перейдите на полную версию страницы.
Другие курсы автора
- Формат — PDF-пособие/книга
Книга — Создание сайта от начала и до конца
- Формат — Видеоуроки
- 12 часов 23 минуты
- 54 урока
Курс — Вёрстка сайта с нуля 2.0
- Формат — Видеоуроки
- 7 уроков
Видеокурс — Создание, продвижение лендинга
- Формат — Видеоуроки
- 14 часов 35 минут
- 80 уроков
Видеокурс — Программирование на Java с нуля до Гуру
- Формат — Видеоуроки
- 30 часов
Курс — PHP и MySQL с Нуля до Гуру 2.0
- Формат — Видеоуроки