LifeEXE | Unreal Engine | CG
2.1K subscribers
566 photos
810 videos
715 links
Download Telegram
⚡️Всем привет!⚡️

Новое техническое видео на канале. Поговорим про дальнейшую коммуникацию в случаю блокировок, про Udemy, про ресурсы и многое другое.

Бонус 😊 внутри прилагается.

https://youtu.be/IF1mDdNHFjk

Ресурсы:
🔴LifeEXE School: https://life-exe.teachable.com
🔴Группа ВКонтакте: https://vk.com/lifeexecode
🔴Twitter: https://twitter.com/LifeExeCode
🔴GitHub: https://github.com/life-exe
🔴Medium: https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate: https://bit.ly/LifeExePayPalDonate
🔴Patreon: https://www.patreon.com/lifeexecode

Ссылки из видео:
🔴 UE5 release notes: https://docs.unrealengine.com/5.0/en-US/unreal-engine-5_0-release-notes
🔴 Lyra game: https://unrealengine.com/marketplace/en-US/learn/lyra
🔴 VPN: https://lifeexe-art.gitbook.io/unreal-automation/vpn
🔴 Все ресурсы: https://lifeexe-art.gitbook.io/unreal-automation/resursy

#unrealengine #gamedev #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥22👍32🤔1
⚡️ Всем привет! ⚡️

Новая лекция по тестированию на моем канале.

В уроке продолжим работать с компонентом для записи инпута. Запишем action bindings персонажа и проиграем инпут в тесте. На этом с записью закончим.

План лекции следующий:
🎯 Переносим проект на Unreal Engine 5 (есть пару нюансов).
🎯 Рассмотрим объект плеер контроллера класса UPlayerInput.
С помощью него получим информацию о клавишах.
🎯 Обновим тест.
🎯 Продолжим эксперименты с Boris из Paragon, создадим пару Anim Montage ассетов для теста.

https://youtu.be/lb323RFkbBo

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube)
🔴Группа ВКонтакте
🔴Twitter
🔴GitHub
🔴Medium

Поддержать канал:
🔴
PayPal Donate
🔴Patreon

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥28🤩41
⚡️ Всем привет! ⚡️

Новое видео по тестированию на канале!

Работаем с IMPLEMENT_COMPLEX_AUTOMATION_TEST

План лекции следующий:
🎯 Рассматриваем тип данных TTuple
🎯 Пишем два complex automation теста
🎯 Усовершенствуем макрос обхода по элементам enum (спасибо подписчику)
🎯 Обновляем манекен персонажа из TPS шаблона 5-ой версии движка

https://youtu.be/OSrivnX7wRc

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube) - https://life-exe.teachable.com/
🔴Группа ВКонтакте - https://vk.com/lifeexecode
🔴Twitter - https://twitter.com/LifeExeCode
🔴GitHub - https://github.com/life-exe
🔴Medium - https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate - https://bit.ly/LifeExePayPalDonate
🔴Patreon - https://www.patreon.com/lifeexecode

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥33👍8🤯2
Всем привет!

🔥 Новое видео на канале 🔥

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

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

План видео следующий:
🎯 Создаем логику паузы, добавляем делегат оповещения для UI
🎯 Проектируем пользовательский интерфейс на виджетах
🎯 Создаем свой класс GameUserSettings
🎯 Связываем модель и интерфейс
🎯 Делаем кнопку benchmark
🎯 Упаковываем игру, проверяем билд

https://youtu.be/xB-QMNwEecc

Коммит к лекции: https://bit.ly/3usNP42

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube): https://life-exe.teachable.com
🔴Группа ВКонтакте: https://vk.com/lifeexecode
🔴Twitter: https://twitter.com/LifeExeCode
🔴GitHub: https://github.com/life-exe
🔴Medium: https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate: https://bit.ly/LifeExePayPalDonate
🔴Patreon: https://www.patreon.com/lifeexecode

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥34👍15🥰5🤩1
Всем привет!

🔥 Новое видео на канале 🔥

Тестируем код из предыдущей лекции — пользовательский интерфейс видео настроек игры.

План видео следующий:
🎯 Вспоминаем код предыдущей лекции
🎯 Тестируем PlayerController
🎯 Тестируем Game User Settings
🎯 Тестируем интерфейс, UI тесты
🎯 Тестируем benchmark, стресс тест
🎯 Рефакторинг

https://youtu.be/TF3Q1zmXROE

Коммит к лекции: https://bit.ly/3INLCWG

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube): https://life-exe.teachable.com
🔴Группа ВКонтакте: https://vk.com/lifeexecode
🔴Twitter: https://twitter.com/LifeExeCode
🔴GitHub: https://github.com/life-exe
🔴Medium: https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate: https://bit.ly/LifeExePayPalDonate
🔴Patreon: https://www.patreon.com/lifeexecode

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥32👍131
Всем привет!

🔥 Новое видео по тестированию скриншотами на канале 🔥

План видео следующий:
🎯 Зачем делать скриншот тестирование
🎯 Тестируем скриншотам в блюпринтах
🎯 Разбираемся как вычисляется глобальная, локальная дельта
🎯 Визуализируем opacity и depth buffer
🎯 Тестируем скриншотами виджеты
🎯 Создаем скриншот тесты на C++
🎯 Рефакторинг

https://youtu.be/zvWs-vGHip8

Коммит к лекции: https://bit.ly/3RxJGVF

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube): https://life-exe.teachable.com
🔴Группа ВКонтакте: https://vk.com/lifeexecode
🔴Twitter: https://twitter.com/LifeExeCode
🔴GitHub: https://github.com/life-exe
🔴Medium: https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate: https://bit.ly/LifeExePayPalDonate
🔴Patreon: https://www.patreon.com/lifeexecode

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥39👍8🥰3
Всем привет!

🔥 Новое видео на канале 🔥

План видео следующий:
🎯 Подробно рассматриваем AutomationSpec (Define/Describe/It/BeforeEach/AfterEach) — дополнительный подход в UE для написания тестов.
🎯 Напишем и оттестируем функцию вычисления факториала.
🎯 Немного попрограммируем: создадим туррель, стреляющую проджектайлами и естественно оттестируем весь новый код с помощью спека.

https://youtu.be/GJYxqFJnSFg

Коммит к лекции: https://bit.ly/3Uwig4I

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube): https://life-exe.teachable.com
🔴Группа ВКонтакте: https://vk.com/lifeexecode
🔴Twitter: https://twitter.com/LifeExeCode
🔴GitHub: https://github.com/life-exe
🔴Medium: https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate: https://bit.ly/LifeExePayPalDonate
🔴Patreon: https://www.patreon.com/lifeexecode

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
🔥35🥰42🤯1
Всем привет!

🔥 Новое видео на канале 🔥

План лекции следующий:
🎯 Создаем работу в Jenkins для запуска тестов
🎯 Запускаем Jenkins агента на отдельной ноде
🎯 Рассмотрим python скрипт конвертации анриловского json отчета в jUnit
🎯 Публикуем отчет jUnit в Jenkins
🎯 Создаем туннель до нашего локального Jenkins'a с помощью ngrok
🎯 Рассмотрим Github Webhooks
🎯 Установим Pull Request Builder плагин
🎯 Запускаем тесты в Jenkins по каждому pull-request
🎯 Поработаем с разными credentials

https://youtu.be/U6p-VQZhFcI

Информации будет много, поэтому все ссылки для удобства собрал на отдельной странице в вики:
https://lifeexe-art.gitbook.io/unreal-automation/plan-video-kursa/lekciya-31

Ресурсы:
🔴LifeEXE School (в случае блокировки YouTube): https://life-exe.teachable.com
🔴Группа ВКонтакте: https://vk.com/lifeexecode
🔴Twitter: https://twitter.com/LifeExeCode
🔴GitHub: https://github.com/life-exe
🔴Medium: https://medium.com/@lifeexe

Поддержать канал:
🔴PayPal Donate: https://bit.ly/LifeExePayPalDonate
🔴Patreon: https://www.patreon.com/lifeexecode

#unrealengine #ue4 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #unrealengine5 #ue5 #lifeexe #lifeexecode #cplusplus
#jenkins #jUnit #ngrok
👍26🔥16🤯3
Всем привет!

🔥 Новое видео на канале 🔥

План лекции следующий:
🎯 Говорим про тестовое покрытие
🎯Рассматриваем OpenCppCoverage
🎯 Пишем bat скрипт для запуска тестового покрытия
🎯 Рассматриваем форматы публикации отчета: html, cobertura
🎯 Создаем Jenkins работу для запуска тестового покрытия
🎯 Проверим макрос FORCENOINLINE

https://youtu.be/owBUien7aRs

Все ссылки из видео для удобства собрал на отдельной странице в вики

Ресурсы:
🔴LifeEXE School
🔴Группа ВКонтакте
🔴Twitter
🔴GitHub
🔴Medium

Поддержать канал:
🔴PayPal Donate
🔴Patreon

#unrealengine #ue5 #gamedev #devops #unit_tests #test_automation #TDD #test_report #test_coverage #code_coverage #unrealengine5 #ue4 #lifeexe #lifeexecode #cplusplus
🔥413👍3
Media is too big
VIEW IN TELEGRAM
👨‍💻 Всем вечерний привет! 👨‍💻

В новый Unreal Engine 5.7 завезли ИИ ассистента — плагин AIAssistant, который находится по адресу: Engine\Plugins\Experimental\AIAssistant

Плагин элементарный: он просто открывает веб-морду Epic Developer Assistant в отдельном окне редактора движка, и, кстати, работает без логина:
🔗 https://dev.epicgames.com/community/assistant/embedded

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


Лапидарно — несколько моментов, которые прямо бросаются в глаза 👀

🚨 Структура — всё в кучу, как в гостях у Облонских: и бизнес-логика, и Slate UI, и конфиги, и тесты.

💡 Один из способов организации кода плагина можно посмотреть в моём open-source UnrealOpenAIPlugin — простейшее разделение исходников на 3 модуля:

🔤Core классы — ядро
🔤Пользовательский интерфейс — Slate/UMG
🔤Тесты

🔴 Использование TSet в простейшем случае для 14 символов? Возможно, конечно автор изучал структуры данных на данном коде — кто знает:
FString FAIAssistantConfig::GetMainUrlAsRegexString() const
{
static const TSet<FString::ElementType> CharactersToEscape{
'.', '*', '+', '?', '(', ')', '[', ']', '{', '}', '^', '$', '|', '\\',
};
FString Escaped;
Escaped.Reserve((MainUrl.Len() * 2) + 2 /* Allow for regex anchors */);
Escaped += FString::ElementType('^');
for (const FString::ElementType Character : MainUrl)
{
if (CharactersToEscape.Contains(Character))
{
Escaped += FString::ElementType('\\');
}
Escaped += Character;
}
Escaped += FString::ElementType('$');
Escaped.Shrink();
return Escaped;
}


💡 TSet тут избыточен — создаётся хеш-таблица с бакетами и метаданными для всего нескольких статических символов. Хватит switch/if или простейшей строки-набора:
static const FString CharsToEsc = TEXT(".+*?()[]{}^$|\\");


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

🔴 FString::ElementType в данном случае только усложняет читаемость — можно смело использовать TCHAR.

🟢 Напоминаю, что тип FString имеет методы Append и AppendChar, которые аккуратно избавят от громоздких конструкций вида += FString::ElementType
⬇️
Escaped += FString::ElementType('^');

⬇️
Escaped.AppendChar('^');


💡 Сама функция GetMainUrlAsRegexString привязана к классу. Очевидно, её можно освободить или оформить как часть библиотеки утилит, передавая MainUrl параметром. Это разблокирует (помимо славы выдающегося архитектора ПО):

🔤Переиспользование
🔤Простоту тестирования — изолированные unit-тесты
🔤Композицию — можно комбинировать функции
🔤Single Responsibility Principe (SRP) — принцип единственной ответственности: функция делает ровно свою работу, а не «висит» на конфиг-классе, к которому относится лишь косвенно

🔴 Тесты написаны в старых нотациях IMPLEMENT_SIMPLE_AUTOMATION_TEST, хотя Automation Spec уже давно доступен. Ничего критичного, но зачем тянуть старое в новом плагине.

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

🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | X | LifeEXE School | Itch | Wiki | Курс по UE

#code #cpp #plugin #unrealengine #ue5 #gamedev #lifeexe #lifeexecode #ai #ai_assistant #tests #code_review
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3813🦄842😁21👍1
🤘 Всем привет, всем привет! 🤘

Новая лекция по разработке игрового движка в эту пятницу на канале — активируем пайплайн тестирования 🤖

📱 Для желающих видео уже доступно на Boosty и Patreon


🔤🔤🔤🔤🔤🔤

🟢 Подключаем Google test
🟢 Пишем базовые тесты
🟢 Добавляем Github workflow для тестов

💡 Через одну лекцию переходим к графике — начинаем программировать окна!

🔤🔤🔤🔤🔤

💡 Плейлист серии GAME ENGINE
💡 Вики проекта
💡 Репозиторий движка

🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | Itch | X | Wiki | LifeEXE School

#tests #gameengine #gameengine17 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥23🤩842🦄11
🙃 Всем вечерний привет! 🙃

Новое видео по разработке игрового движка на канале — активируем пайплайн тестирования⬇️

🔗 https://www.youtube.com/watch?v=PmZlNwS1EMA

🔤🔤🔤🔤🔤🔤

🟢 Подключаем Google test
🟢 Пишем базовые тесты
🟢 Добавляем Github workflow для тестов

💡 Через одну лекцию переходим к графике — начинаем программировать окна!

🔤🔤🔤🔤🔤

💡 Плейлист серии GAME ENGINE
💡 Вики проекта
💡 Репозиторий движка

🔤🔤🔤🔤🔤🔤🔤

🤝 Поддержать:
Patreon | Boosty | PayPal

Ресурсы:
GitHub | Itch | X | Wiki | LifeEXE School

#tests #gameengine #gameengine17 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍11❤‍🔥831