C++ в Unreal Engine 5

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

Прямо сейчас посмотрите презентацию курса…

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

Об авторе

Для начала я обязан представиться. Меня зовут Михаил Русаков, на момент написания этих строк мне 32 года, имею высшее техническое образование. С начала 2010-го веду учебную деятельность, а именно обучаю людей программированию, включая созданию игр.

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

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

Мой опыт в C++
и в Unreal Engine

С C++ я познакомился ещё в 2007 – 2008 годах. Правда, создавал я в нём тогда не игры, а различный софт. На протяжении всех этих лет я регулярно возвращался к C++ по тем или иным причинам.

Что касается Unreal Engine, то с ним я работаю с 2016-го года. Поначалу делал проекты только на Blueprint, освоив которые я решил дополнительно изучить C++ в движке. Сделать это было проблематично, поскольку если по Blueprint даже бесплатных уроков и даже на русском языке относительно много, то вот по C++ бесплатных мало даже на английском. Про качество даже заикаться не стоило. Blueprint способен освоить и толковый шестиклассник, а вот C++ - это уже очень серьёзная вещь, из-за чего в подобных уроках я мог наблюдать откровенную безграмотность «преподавателей» и крайне сомнительные реализации функционала.

Поэтому, к сожалению, пришлось всё осваивать самостоятельно. Опыт в C++ у меня был достаточный, но вот знаний по фреймворку Unreal Engine, конечно же, не хватало. Я отлично помню, как в первый раз я два часа просидел, чтобы просто включить лампочку при входе в триггер. На Blueprint – это дело 30 секунд, в C++ ненамного больше, если знать, как и что делать. Но я не знал. И вот таких затыков были сотни. Но спустя несколько месяцев практики я стал замечать, что сложных ситуаций, зависящих от знаний фреймворка, я стал встречать всё реже и реже.

Сейчас я совершенно спокойно пишу игры на C++ в Unreal Engine, и к Blueprint возвращаться нет желания из-за отсутствия merge, плохо выравненных блоков, расположение которых всё равно потом сбивается, отдельные окна для каждой функции и прочие мелочи, которые просто неудобны. Хотя, безусловно, полностью отказываться от Blueprint неразумно. По меньшей мере, он служит для настройки C++-классов (например, указать конкретный Static Mesh, конкретные звуки, эффекты и тому подобное).

Подведём итог того, что мы имеем:

1. Освоить C++ в Unreal Engine по бесплатным урокам в Интернете новичкам невозможно вовсе, а профессионалы не смогут это смотреть.

2. На русском языке даже плохих уроков по C++ в Unreal Engine практически нет, не говоря уже о хороших. По крайней мере, среди бесплатных.

3. Хороший пошаговый курс даже на английском языке найти крайне сложно. Среди бесплатных я их не встречаю до сих пор.

Таким образом, если Вы действительно хорошо владеете C++, то спустя несколько месяцев усердных занятий (по 5-6 часов в день), Вы освоите фреймворк движка, как это было у меня.

Однако, если знания по C++ посредственные, то освоить движок самостоятельно в рамках адекватных сроков не получится.

К счастью, у меня хорошая новость для обеих групп. По многочисленным просьбам моих подписчиков и клиентов (а опрос на темы новых курсов я провожу ежегодно) я подготовил для Вас курс «Программирование на C++ в Unreal Engine 5».

Видеокурс

Программирование на C++ в Unreal Engine 5

Для кого этот
курс?

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

Для тех, кто уже хорошо владеет C++ и хочет освоить фреймворк Unreal Engine в разы быстрее и интереснее, чем самостоятельно, а также не хвататься постоянно за сердце, когда очередной «туторщик» хардкодит, вызывает виртуальные функции из конструктора, делает все переменные класса открытыми и тому подобное.

Для тех, кто хочет трудоустроиться на работу в игровую студию программистом. Думаю, не нужно пояснять, что умеющих «программировать» на Blueprint вагон и маленькая тележка, а вот хороших C++-программистов днём с огнём не сыщешь. Поэтому если Вы хотите иметь конкурентное преимущество перед другими (и, само собой, более высокую зарплату), то этот курс обязателен.

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

Для тех, кому просто интересно программирование и создание игр. Кстати, это именно мой случай. Именно по этой причине, несмотря на мой опыт программирования с 2006-го года, я продолжаю учиться, смотреть курсы, читать (и некоторые перечитывать) книги.

Цели курса

Дать Вам всю необходимую базу для создания Ваших C++ проектов на Unreal Engine 5.

Дать Вам достаточно знаний для устройства на работу в игровую студию.

Заинтересовать Вас на дальнейшее развитие в области геймдева.

Программа курса

Программирование на C++ в Unreal Engine 5

Курс состоит из 105 уроков (101 в основном + 4 в бонусном) общей продолжительностью более 31-го часа. Сам курс разбит на 12 разделов. Первые 2 раздела – это теория, оставшиеся 10 частей – это практика, в рамках которой Вы увидите создание достаточно сложного и крупного (для одного человека) проекта на более, чем 5000 строк качественного кода.

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

Модуль 1

Введение

3 урока

Список уроков:

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

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

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

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

Модуль 2

Основы C++ в Unreal Engine

17 уроков

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

Список уроков:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модуль 3

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

5 уроков

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

Список уроков:

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

2. Создание и настройка проектаСделаем все необходимые стартовые вещи.

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

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

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

Модуль 4

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

13 уроков

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

Список уроков:

1. Создание уровней и GameModeСоздадим карту для тестового уровня, для главного меню, а так же необходимые GameMode.

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

3. Создание AnimInstance и AnimBlueprint.В рамках этого урока мы создадим необходимый интерфейс (чтобы не было лишних зависимостей), реализуем его, применим. Так же создадим AnimInstance, который ближе к концу урока ляжет в основу AnimBlueprint.

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

5. Создание HUDСоздадим HUD, основа которого нам пригодится в будущем.

6. Создание «границы»Сделаем так, что если игрок попытается уйти за пределы карты, то его возвращало обратно на уровень. Подобная механика реализована в таких играх как «Ведьмак 3: Дикая охота» и «Kingdom Come Deliverance».

7. Создание компонента взаимодействияСоздадим компонент, который позволит нам взаимодействовать с внешним миром (например, взаимодействовать с магазином, поднимать предметы).

8. Создание компонента здоровьяДумаю, не нужно пояснять, что просто добавить переменную Health в класс персонажа – это плохая идея. Это классический пример нарушения принципа единственной ответственности класса. В общем, в уроке мы всё сделаем правильно.

9. Создание компонента для выносливостиПоскольку в будущем быстрый бег и прицеливание из лука будут расходовать выносливость, нам необходимо заранее написать компонент для выносливости.

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

11. Режим спринта и расход выносливостиРеализуем спринт, плюс расход выносливости от него.

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

13. Создание компонента CameraShakeSourceComponentДанный компонент будет создавать тряску при прицеливании из лука. Более того, чем ниже выносливость, тем сильнее будет тряска (и тем сложнее будет прицелиться).

Модуль 5

Создание игры: AI

6 уроков

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

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

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

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

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

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

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

Модуль 6

Создание игры: инвентарь

6 уроков

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

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

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

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

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

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

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

Модуль 7

Создание игры: виджеты

19 уроков

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

Список уроков:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15. Открытие и закрытие загрузочного виджетаРеализуем логику появления и плавного исчезновения загрузочного экрана.

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

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

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

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

Модуль 8

Создание игры: лук и экипировка

10 уроков

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

Список уроков:

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

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

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

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

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

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

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

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

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

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

Модуль 9

Создание игры: магазины

3 урока

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

Список уроков:

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

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

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

Модуль 10

Создание игры: смена времени суток

4 урока

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

Список уроков:

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

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

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

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

Модуль 11

Создание игры: звуки и музыка

8 уроков

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

Список уроков:

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

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

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

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

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

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

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

8. Добавление музыкиДобавим музыку в игру.

Модуль 12

Создание игры: игровой уровень

7 уроков

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

Список уроков:

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

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

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

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

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

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

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

Бонус

Тестирование Unreal-проектов на Python

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

Важнейшим элементом создания игр является тестирование. И вот о тестировании Unreal-проектов с помощью Python мы и поговорим в этом Бонусе. Для чего это нужно? А всё очень просто. Допустим, Вы хотите убедиться, что в названии ассетов нет кириллицы. Можно проверить вручную, но это долго, плюс человеческий фактор никто не отменял. Да, и многие буквы в кириллице и латинице выглядят одинаково. А можно написать скрипт, который запустить прямо в Unreal, и он сразу выдаст, какой ассет и где имеет в названии нелатинские символы.

Или другой пример. Вы хотите убедиться, что в Вашем коде нет циклических зависимостей, то есть, когда класс A ссылается на класс B, который ссылается на C, который ссылается снова на A. Эта ситуация очень нехорошая. Любой разработчик даже уровня Middle об этом знает, но глаз у разработчика бывает замылен, и он просто этого может не заметить. А с помощью теста такие ситуации можно выявить за доли секунды.

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

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

Данный ценнейший подарок получат абсолютно бесплатно все, кто закажет основной курс «Программирование на C++ в Unreal Engine 5».

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

Подведём краткий итог того, что Вы получаете, пройдя курс «Программирование на C++ в Unreal Engine 5»:

Научитесь реализовывать любые игровые механики с помощью C++.

В десятки раз сократите время на решение проблем, связанных с компиляцией кода и вообще с его работоспособностью.

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

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

Научитесь тестировать Unreal-проекты с помощью Python.

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

Формат обучения

Формат обучения следующий:

1. Весь курс разбит по дням: «День 1», «День 2», «День 3» и так далее.

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

3. После выполнения всех заданий в рамках текущего дня открывается следующий день.

4. Курс состоит из 81 дня, однако, Вы можете идти в удобном для себе темпе. Поскольку в среднем 1 день потребует 1 час времени, то весь курс можно пройти за 81 час. Вы можете заниматься 30 минут в день, и тогда материал, рассчитанный на 1 день, Вы выполните за 2 дня. А можете заниматься 8 часов в день, и тогда материал, рассчитанный на 8 дней, Вы выполните за 1 день. Однако, моя рекомендация: не перегружайте себя информацией и за 1 день выполняйте норму, рассчитанную именно на 1 день. Как раз для этого эта разбивка вообще и существует.

5. Когда будут пройдены все дни (по сути, просмотрены и выполнены все задания), открывается доступ к финальному тесту.

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

Какие знания потребуются для прохождения курса?

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

1. Необходимо уметь работать в движке Unreal Engine 5. Например: импортировать ассеты, делать сборку проекта (отличать development от shipping), программировать на Blueprint, отличать BlendSpace от AnimBlueprint и тому подобные базовые вещи. Если Вы не владеете движком, то всё в порядке, поскольку вместе с курсом «Программирование на C++ в Unreal Engine 5», Вы сможете с очень крупной скидкой заказать и курс «Создание игр на Unreal Engine 5», в котором Вы получите все необходимые знания и даже больше.

Создание игр
на Unreal Engine 5

Заказать

2. Необходимо знать хотя бы на базовом уровне C++. Например: отличать классы от объектов, понимать назначение модификаторов доступа, отличать ссылки от указателей. Опять же, если нет этих знаний, то вместе с курсом «Программирование на C++ в Unreal Engine 5», можно с отличной скидкой заказать и курс «Программирование на C++ с Нуля до Гуру», который предоставит абсолютно все необходимые знания.

Программирование
на C++ с Нуля до Гуру

Заказать

Теперь есть и DVD-
версия курса!

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

Гарантия

Срок действия гарантии составляет 30 суток с момента оплаты.

Я занимаюсь обучающей деятельностью с 2010-го года, за это время я записал больше полусотни как платных, так и бесплатных видеокурсов по самым различным темам, прямо или косвенно относящихся к программированию (https://blog.myrusakov.ru/courses.html).

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

По моей статистике, клиентов, просящих у меня возврат, чуть больше 1%. Учитывая такое малое количество возвратов, мне нет смысла отказывать в них. Более того, я уже много лет даю безусловную гарантию. То есть независимо от причины, возврат Вам будет сделан.

Срок действия гарантии составляет 30 суток с момента оплаты.

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

Для получения возврата Вам необходимо написать запрос в отдел «Возврат» в моей службе поддержки: https://support.myrusakov.ru/ask

Стоимость курса

Данный курс достаточно уникален, по крайней мере, в русскоязычном сегменте. Среди бесплатных подобных курсов нет и близко. Среди платных по C++ в Unreal Engine (а я знаю их все, поскольку их немного) более-менее приличный я видел только 1 раз, однако, он меньше по объёму, там даётся меньше знаний, да и создаваемый проект в 2 раза меньше. Из плюсов только достаточно качественный код и грамотный автор.

Всё остальное за деньги, что я видел – абсолютный кошмар. Так же я частично видел несколько платных курсов на английском языке (смотрел пару уроков, изучал исходный код). Вменяемого не было ни одного, в том числе, и среди «признанных экспертов», у которых вывод виджета происходит прямо в PlayerController, что само по себе даже дико звучит, когда речь заходит о проекте, а не о прототипе, который будет удалён через 5 минут. Огромный объём дублирования, который элементарно устраняется с помощью тех же табличных методов (целая глава посвещена этому в книге «Совершенный код», но почему-то эти «учителя» напрочь отказываются учиться сами). Да, и цены там были, мягко говоря, для западной аудитории.

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

Таким образом, аналогов курса «Программирование на C++ в Unreal Engine 5», по крайней мере, на русском языке нет.

Теперь посмотрим, какие зарплаты ждут тех, кто овладеет данной специальностью.

Как видите, зарплаты очень высокие. Кстати, пока изучал эти вакансии я обратил внимание, что Unreal-разработчики без знаний C++ практически не нужны. Поэтому Blueprint знать нужно, но для устройства на работу всё равно потребуется изучить и C++.

Исходя из этих зарплат, я мог бы смело ставить цену в 50 000 рублей. Да, клиентов бы значительно уменьшилось, но прибыль бы явно увеличилась, плюс уменьшилась бы нагрузка на меня. Меньше клиентов – меньше забот. Но это не мой путь. Я хочу, чтобы качественное обучение было доступно максимальному числу людей. И пока я финансово могу себе позволить ставить низкий ценник, я буду его ставить. Но не обещаю, что так будет всегда.

Поэтому итоговая цена этого курса составляет всего лишь 5970 рублей. За такое качество и количества материала да по текущим ценам – это вообще даром. Поэтому пользуйтесь, пока есть такая возможность.

Видеокурс

Программирование на C++ в Unreal Engine 5

Как оформить заказ?

Выберите в таблице ниже те курсы, которые хотите заказать, после перейдите по кнопке «Оформить заказ» и следуйте дальнейшей инструкции.

Программирование на C++ в Unreal Engine 5

Для тех, кто хочет разрабатывать игры на C++ или для тех, кто хочет устроиться на работу в игровую студию разработчиком.

Создание игр на Unreal Engine 5

Необходим, если Вы плохо владеете Unreal Engine, а также если слабо разбираетесь в Blueprint.

Программирование на C++ с Нуля до Гуру

Необходим, если нет хотя бы базовых знаний по C++.

Итоговая цена: 5970 рублей

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

В заключении скажу следующее. Разработка игр лично для меня является на данный момент хобби №1. Я этому уделяю действительно очень много свободного времени, поскольку геймдев - необычайно интересный и захватывающий процесс. Да, и в целом, это очень полезное занятие для мозга.

В заключении скажу следующее. В наше непростое время лучшая инвестиция – это инвестиция в знания. Деньги на счетах могут заморозить, акции/облигации могут заблокировать, недвижимость может быть разрушена, наличные сильно обесценится инфляцией, и лишь деньги, вложенные в знания, не пропадут, поскольку у человека можно отобрать всё, но только не его квалификацию и опыт. И уж что-что, а хорошие IT-специалисты будут востребованы ещё, по меньшей мере, десятилетия.

С Уважением, Михаил Русаков!

Вопросы и ответы

  • 1. Какое разрешение у видео?

    2K (2560 на 1480).

  • 2. Какова общая продолжительность курса?

    Курс состоит из 105 уроков общей продолжительностью 31 час и 14 минут.

  • 3. Актуальная ли информация в курсе?

    Этот курс вышел в 2023 году, поэтому, безусловно, да, информация актуальная. А когда она становится уже не совсем актуальной, то курс снимается с продаж и выпускается его новая версия.

  • 4. Выдаётся ли сертификат?

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

  • 5. Есть ли упражнения в курсе?

    Да, упражнения идут практически к каждому уроку, за исключением нескольких чисто теоретических уроков.

  • 6. Есть ли защита у курса? Можно ли будет его посмотреть на разных компьютерах?

    Защита у курса есть. Активировать его можно будет на 3-х различных устройствах.

  • 7. За сколько можно пройти курс?

    Курс разбит на 81 день и пройти его можно, соответственно, за 81 час. Двигаться можно в любом удобном для себя темпе.

  • 8. Оказывается ли помощь по курсу? Куда можно задавать вопросы?

    Да, оказывается. Все вопросы можно задавать в мою службу поддержки, в отдел «Помощь по курсам»: https://support.myrusakov.ru/ask

  • 9. После переустановки операционной системы потребуется ли замена лицензионного ключа?

    Нет, не потребуется, так как лицензионный ключ привязывается к «железу» устройства, а не к его операционной системе.

  • 10. Нужен ли доступ в Интернет для просмотра уроков?

    Да, нужен.

  • 11. Я не уверен, что мне хватит пропускной способности Интернета. Что мне делать?

    Для просмотра видео достаточно 4 Мбит/с. Но если вдруг Интернет совсем слабый, то Вы в любой момент сможете вернуть деньги.

  • 12. Можно ли будет посмотреть курс на Mac?

    Да, можно будет.

  • 13. А можно будет смотреть курс на разных компьютерах?

    Да, так как активировать ключ можно на 3-х устройствах.

  • 14. Можно ли заказать курс на дисках?

    Да, можно. Для этого при оформлении заказа надо указать способ доставки: «По почте». Однако, обратите внимание, что этот способ дороже, так как требует оплату изготовления бокса, дисков, а также содержит стоимость самой доставки.

  • 15. Нужно ли знание английского языка?

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

  • 16. У меня остались ещё вопросы. Куда мне их написать?

    Любые вопросы можете задать в мою службу поддержки: https://support.myrusakov.ru/ask