LifeEXE | Unreal Engine | CG
1.89K subscribers
377 photos
470 videos
422 links
Download Telegram
🤘 Всем пятничный йоу! 🤘

И такое бывает в коде движка 😀

Engine\Source\Runtime\Core\Public\Delegates\MulticastDelegateBase.h


Почему const важен? Читаем по ссылкам ⬇️
🔤Const Correctness
🔤Const As Much As Possible
🔤Отдельная книга по constHow to use const in C++
🔤Комменты по поводу const в Doom3
Const serves several purposes which I believe too many programmers ignore. My rule is "everything should always be const unless it can't be". I wish all variables in C++ were const by default.


🔤🔤🔤 🔤🔤🔤🔤🔤 🔤🔤 🔤🔤🔤🔤🔤

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

Пятничная видео-игра сегодня ⬇️

📱 Twisted Tower

Мочилово в заброшенном парк развлечений 🎢

💥 Бесплатное демо в наличии
💥 Релиз soon...

#gamedev #games #lifeexe #lifeexecode #fridaygame #coolgame
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍106🤯1🦄1
📕 Всем вечерний привет! 📕

Epic Games выкатили ежемесячную подборку бесплатных курсов ⬇️

🔗 August learning content: MetaHuman, MetaSounds, and more

💡 В новой серии имеются полезные руководства по настройке Epic Online Services ➡️

🔤Stats
🔤Achievements
🔤Leaderboards

🔤🔤🔤🔤

#learn #course #tutorial #free #epic #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1665👍21🦄1
📕 Всем привет, всем привет! 📕

В эфире рубрика выходного дня: Воскресный C++ 🦊

Написал большую статью на тему:
«Asserts в стандарте C++ и в Unreal Engine»

❗️ На Boosty и Patreon полная версия с множеством примеров!


По традиции сначала разбираем как все работает на чистом
C++, а потом смотрим, что происходит в Unreal Engine
.

🔤🔤🔤🔤🔤🔤

Assertions — это утверждения, проверяющие предположения программиста о корректности кода. Они помогают выявлять ошибки и документировать инварианты.

Инвариант — это условие, которое должно быть истинным всегда в определённом контексте.

Зачем нужны assertions?
🔤Раннее выявление логических ошибок
🔤Документация ожиданий внутри кода
🔤Обеспечение корректности API

Виды assertions
🔤Времени выполнения — runtime assertions
🔤Времени компиляции — compile-time assertions

🔤🔤🔤🔤🔤🔤🔤🔤 🔤

В стандартном C++ основной инструмент для реализации утверждений — это макрос препроцессора assert, определенный в заголовочном файле <cassert> :

🔤Если выражение истинно — ничего не происходит, и выполнение программы продолжается.
🔤Если выражение ложно — макрос assert выводит диагностическое сообщение в стандартный поток ошибок stderr и немедленно завершает программу путем вызова функции std::abort() ➡️

double div(double numerator, double denominator) 
{
assert(denominator != 0.0);
return numerator / denominator;
}


Стандартный макрос assert не имеет встроенного параметра для пользовательских сообщений. Однако существуют две распространенные идиомы для добавления диагностики, которая будет выведена в диагностическом сообщении в случае сбоя ➡️

assert(divisor != 0 && "Divisor cannot be 0");
assert(("Divisor cannot be 0", divisor != 0));


Распространенная ошибка при использовании assert — это включение в проверяемое выражение кода с побочными эффектами.

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

⚠️ Пример того, как делать НЕЛЬЗЯ:
assert(InitializeSubsystem());


✔️ Правильный подход — всегда отделяем действие от проверки:
[[maybe_unused]] const bool bSuccess = InitializeSubsystem();
assert(bSuccess);


🔤🔤🔤🔤🔤🔤 🔤🔤🔤🔤🔤🔤

Unreal Engine расширяет стандартный макрос assert , добавляя дополнительные возможности к рантайм проверкам, Имеются следующие семейства: check, verify, ensure.

🔤🔤🔤🔤🔤

Семейство check является прямым эквивалентом стандартного assert в Unreal Engine. Сбой check указывает на критическую ошибку в программе, и выполнение немедленно останавливается ➡️

void AMyActor::CalculateJumpVelocity(AActor* JumpTarget, FVector& JumpVelocity)
{
check(JumpTarget != nullptr);
}


Остальные макросы данного семейства: check, checkf, checkSlow, checkfSlow, checkCode, checkNoEntry, checkNoReentry, checkNoRecursion, unimplemented

🔤🔤🔤🔤🔤🔤

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

Полный список макросов: verify, verifyf, verifySlow

🔤🔤🔤🔤🔤🔤

Данное семейство макросов используется для сообщения о нефатальных ошибках. Программа не завершает работу, а отправляет отчет со стеком вызовов в Crash Reporter и продолжает выполнение: ensure, ensureAlways, ensureMsgf, ensureAlwaysMsgf

🔤🔤🔤🔤🔤 🔤🔤🔤🔤

🔤Можно проверить на этапе компиляции → static_assert
🔤Критическая ошибка + нет побочных эффектов → check
🔤Критическая ошибка + есть побочные эффекты → verify
🔤Дорогая проверка только для отладки → checkSlow
🔤Некритическая ошибка, продолжаем работу → ensure
🔤Недостижимый код → checkNoEntry или unimplemented
🔤Защита от рекурсии → checkNoRecursion
🔤Защита от повторного вызова → checkNoReentry

В статье на Boosty и Patreon подробнее про каждый из макросов и static_assert


Всем чистого кода 🤘

🔤🔤🔤🔤🔤🔤🔤

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

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

#code #cpp #code_hints #lifeexeEDU #unrealengine #ue5 #gamedev #lifeexe #lifeexecode #best_practice #assert #clean_code
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥3810👍95🦄11
📕 Всем привет, всем привет! 📕

Поздравляю с началом нового учебного года! 👩‍🎓

Забирайте бесплатный купон на 100 мест на мой курс «Unreal Engine — полное руководство по разработке на С++»


🔗 https://www.udemy.com/course/unrealengine/?couponCode=00250F448AD817219C30

📣 Распространение купона приветствуется! 📣

🔤🔤🔤🔤🔤

Статистика по курсу на сегодня следующая ⬇️

6️⃣9️⃣0️⃣0️⃣студентов

1️⃣5️⃣0️⃣0️⃣ отзывов

Студенты из 7️⃣6️⃣ стран, знающие 1️⃣9️⃣ языков

3️⃣.3️⃣7️⃣9️⃣.8️⃣6️⃣3️⃣ минут просмотров6️⃣ лет

‼️ Курс находится на 15 месте среди всех курсов на русском языке по разработке программного обеспечения на Udemy — на первой странице!

Всем спасибо за отзывы и прохождение!

🔤🔤🔤🔤🔤🔤🔤

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

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

#code #cpp #lifeexeEDU #unrealengine #ue5 #gamedev #lifeexe #lifeexecode #udemy #course #shooter #free #coupon
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76216❤‍🔥32🦄11
📕 Всем вечерний привет! 📕

Epic Games опубликовали док с улучшениями редактора материалов, которые появились в Unreal Engine 5.6 ⬇️

🔗 Materials - Quality of Life Updates in Unreal Engine 5.6

🔤Live Material Updates
🔤Новая нода Convert
🔤Новый способ соединения нод с зажатым Shift
🔤.. и другие улучшения

🔤🔤🔤🔤

#material #ue_tips #shader #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍19🔥1464🦄1
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
🔥348😱52🦄1