LifeEXE | Unreal Engine | CG
1.9K subscribers
370 photos
458 videos
414 links
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15872🦄1
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
🔥3310🦄64😁211👍1
LifeEXE | Unreal Engine | CG
💡 Всем привет, всем привет! 💡 Идея для pet-проекта на выходные — Крестики-Нолики! Но не простые, а расширенные! 🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤 🔤 Правила: 🔤Игровое поле — 9×9, разбито на 9 мини-полей 3×3 🔤Ход в мини-поле определяет, куда пойдёт соперник — в соответствующее…
📕 Всем вечерний привет! 📕

Не так давно вспоминал книгу «Математика с дурацкими рисунками. Идеи, которые формируют нашу реальность» Бена Орлина в связи с темой расширенных крестиков-ноликов.

У автора есть еще одна интересная книга-энциклопедия игр: «Математические игры с дурацкими рисунками», в которой можно найти много интересного, например:

🔤Геометрические игры: одуванчики, квантовые крестики-нолики, порядок и хаос, ростки
🔤Числовые игры: китайские палочки, от 33 до 99, черная дыра, звездный пасьянс
🔤Комбинаторные игры: тико, соседи, приказные крестики-нолики, своя линия, доминирование, уголки
🔤Рисковые игры: бокс на бумаге, из ряда вон, 101 и тебе крышка
🔤Информационные игры: квантовая виселица, лоскутное одеяло, сесара

💡 Идеи с кайфом можно применять во внутриигровых механиках или можно имплементировать в качестве тренировки на выходных


Часть игр запрограммирована и доступна онлайн ⬇️
🔗 https://mathgameswithbaddrawings.com/games

Сама книга есть на литрес ⬇️
🔗 Математические игры с дурацкими рисунками: 75¼ простых, но требующих сообразительности игр, в которые можно играть где угодно

Можно даже заказать оффлайн реквизит для игр ⬇️
🔗 Math Games with Bad Drawings: The Ultimate Game Collection

🔤🔤🔤🔤🔤

#gamedev #ideas #gameideas #lifeexe #lifeexecode #coolgame #books #read
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
189🦄6👍3🍓1👾111
🤘 Всем пятничный йоу! 🤘

Этим утром в «Академкнигу» и санджовезе-отдел заходил один и тот же графический дизайнер 🎨🍷

#пятничное #friday #vr #lifehack #gamedev #lifeexe #lifeexecode #meme #humor
Please open Telegram to view this post
VIEW IN TELEGRAM
😁45👍641🔥1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Всем вечерний привет! 🎮

Пятничная видео-игра сегодня — симулятор дантиста акулы ⬇️

📱 Shark Dentist

🦈🦈🦈

Кому страшнее в этой игре: акуле или дантисту — узнаем после релиза

#gamedev #games #lifeexe #lifeexecode #fridaygame #coolgame
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14😱8🔥7🦄32
This media is not supported in your browser
VIEW IN TELEGRAM
🤘 Всем воскресный привет!🤘

Полноценный брейкдаун спецэффекта пламени 🔥🔥🔥
В качестве тренировки можно реализовать в 🎮nreal Engine!

#vfx #material #shader #gamedev #unrealengine #ue5 #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1865👍3🦄2
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Всем привет, всем привет! 🎮

Picto — концепт mixed reality игры, в которой можно взаимодействовать с окружающим миром ⬇️

🔗 https://picto-game.com

Кому интересна база и теория Edge Detection ➡️
🔤Базовые градиенты. Sobel, Scharr, Laplacian
🔤Roberts cross
🔤Prewitt operator
🔤Structured forests for fast edge detection
🔤Holistically-Nested Edge Detection (HED)
🔤cuda::CannyEdgeDetector

#gamedev #games #lifeexe #lifeexecode #indie #coolgame #edge_dection #openCV
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24😱8👍3🦄2211