Курс посвящен автоматизации и тестированию в Unreal Engine. В лекциях рассматриваются различные темы, начиная со сборки исходников и проектов Unreal Engine в Jenkins, заканчивая современными техниками тестирования, генерации документации и много другое.
Лекции предполагают знание С++, хотя это и не главное. Курс поможет научиться вам экономить время при разработке и минимизировать количество ошибок посредством тестирования.
Курс абсолютно бесплатный. Присоединяйтесь, будет интересно.
Основные разделы курса
Автоматизация процесса сборки UE из исходников
Unreal Engine 4 и Unreal Engine5
Работа с Jenkins
Самый популярный бесплатный сервер непрерывной интеграции
Unit тесты для
проектов Unreal Engine
Подробно рассматривается Unreal Automotaion Framework
Сборка UE проектов во всех конфигурациях
Game, Client, Server, Editor
Сборка dedicated и listen серверов
.bat файл и Jenkins job
Современные инструменты автоматизации и разработки
Jenkins pipelines, OpenCppCoverage,
.clang-format, Doxygen, bat файлы
Зачем автоматизировать процесс разработки?
Все повторяющие действия необходимо автоматизировать. Бессмысленно тратить время на то, что может выполняться автоматически. В общем случае автоматизация затрагивает любую разработку, независимо от платформы, языка программирования, фреймворка и размера команды разработчиков.
Основные преимущества автоматизации
- экономия времени и как следствие человеко-часов
- уверенность в своем коде
- наличие актуального билда каждый день (daily / night build)
- быстрое обнаружение ошибок и моментальный фикс, а не фикс при релизе
- автоматическое оповещение всех членов команды о состоянии проекта
- независимость от пользовательского интерфейса программы (для UE4/5 подходы одинаковы)
- отделение процесса разработки от сборки (вы не блокируете собственную работу, когда идет сборка)
- сосредоточенность именно на написании кода, а не на инфраструктуре
- наличие статистики: время сборки, тестовое покрытие и т.д.
Модельная, утрированная ситуация
Вы разрабатываете кроссплатформенный, многопользовательский проект под Win, Linux и допустим IOS. И также у вас собственная, кастомная версия движка. Два раза в день вам необходимо иметь стабильную сборку под каждую платформу, что в общем случае означает:
- компиляция исходников UE
- компиляция под все платформы клиентов
- компиляция сервера
- запуск тестов
- деплой (загрузка) сервера в облако
- возможно деплой на подключенные IOS девайсы (последние три модели iPhone и iPad, например)
- оповещение всех мануальных тестеров и разработчиков, что билд готов (slack, почта) и отправка ссылок на все созданные билды
Теперь представьте, что это все делает вручную человек через пользовательский интерфейс и сколько это займет времени. А если он ошибется в "скрипте" сборки?
Для кого подойдет данный курс?
Курс создан для разработчиков Unreal Engine среднего и продвинутого уровня, которые желают в разы повысить свою эффективность и производительность.
Ваш инструктор
Всем привет! Меня зовут Юрий. Я занимаюсь разработкой программного обеспечения более 10 лет, 5 из которых использую Unreal Engine в коммерческих и собственных проектах.
Окончил ВМиК МГУ. Работал над проектами в различных сферах: от игр и мобильных приложений до интерактивных инсталляций и программирования микроконтроллеров.
На данный момент являюсь инженером компьютерной графики и работаю в индустрии виртуальной реальности в Финляндии.
Мне нравится рассказывать сложные вещи простым языком. Я уверен, мой опыт и курс будут полезны в освоении профессии разработчика игр. Считаю, что теория и практика одинаковы важны, а для глубокого усвоения материала все концепты теории должны быть объяснены на примерах по фейнмановскому методу.
Профессиональная область интересов: разработка игр, С++, компьютерное зрение, DevOps, трекинг системы, процедурная графика, VR/XR/AR.
Программа курса
- Введение. Обзор процесса автоматизации (6:25)
- Собираем UE4 из исходников в один клик (36:26)
- Упаковка Blueprint проекта в один клик в Jenkins (27:18)
- Упаковка C++ проекта в один клик в Jenkins (43:05)
- Забываем о проблемах форматирования кода (clang-format / git pre-commit hook) (37:52)
- Собираем и запускаем новый Unreal Engine 5.0EA из исходников (9:12)
- Unreal Engine 5. Исправляем генерацию проектных файлов для С++ проектов (28:31)
- Исправляем ошибки Unreal Version Selector для 5-ой версии движка (13:13)
- Собираем собственную бинарную версию Unreal Engine из исходников (30:57)
- Собираем dedicated / listen сервер, подключаем клиентов (45:41)
- Тестирование в Unreal Engine. Обзор модуля (7:11)
- Тестирование игр. Теория (34:32)
- Первый unit тест. Unreal Automation Frontend (39:23)
- Последовательность Фибоначчи (55:57)
- Тестирование простейшего C++ класса (38:20)
- Создаем C++ инвентарь для тестирования (часть 1) (39:05)
- Создаем C++ инвентарь для тестирования (часть 2) (33:54)
- Тестируем UObject — класс компонента инвентаря (41:57)
- Тестируем AActor — класс инвентаря. Открываем карту. Спауним блюпринт в C++ (50:30)
- Тестирование классов AActor. Вызов блюпринт функций из C++ (43:24)
- Создаем C++ логику жизней персонажа (42:43)
- Latent automation command. Тестирование жизней персонажа (62:38)
- Gameplay tests. Симуляция ввода Input Component (55:21)
- Gameplay tests. Запись ввода Input Component. Axis (65:05)
- Gameplay tests. Запись ввода Input Component. Aсtion (34:04)
- Complex automation test
- Functional screenshot test
- Дополнительный подход по написаню тестов: Define/Describe/It/BeforeEach/AfterEach
- Публикация отчета по тестам. Test Report
- Метрики тестирования. Тестовое покрытие. OpenCppCoverage
- Создание работы в Jenkins для автоматического запуска тестов с публикацией отчетов