LifeEXE | Unreal Engine | CG
1.93K subscribers
422 photos
519 videos
458 links
Download Telegram
🎮 Всем привет! 🎮

Новая жирная лекция по серии игрового движка в эту пятницу.
Автоматизируем буквально ВСЁ ⚙️

🟢 Интегрируем Conan и CMAKE
🟢 Создаем linux и windows conan профили
🟢 Исправляем linux и windows билды на github
🟢 Рассматриваем github actions
🟢 Разбираемся с матрицами параметров — matrix strategy
🟢 Собираем несколько таргетов одновременно
🟢 Автоматизируем форматирование кода clang-format
🟢 Запускаем тесты на github и публикуем отчет по тестированию в виде таблицы
🟢 Рассматриваем полезные расширения VS Code
🟢 Настраиваем PCH в CMAKE с помощью target_precompile_headers

Видео уже доступно на Boosty и Patreon

Это заключительная лекция перед стартом кода самого движка.
Увидимся в конце недели 🤘

#cmake #conan #cpp #github #gamedev #lifeexe #gameengine #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥83❤‍🔥96👍62🐳1
🎮 Всем привет, всем привет! 🎮

Новая лекция в сети:

https://youtu.be/lc61fQQKnkE

Автоматизируем процессы с помощью Github Actions

Бесплатным аккаунтам GitHub предоставляется 2000 минут работы облачных машин в месяц. Для персонального использования (как мы сегодня убедимся) этого вполне достаточно.

Репозиторий текущего проекта:
👉 https://github.com/life-exe/FIghtClubCppCMAKE

Кстати, поскольку VS Code иcпользует стек Typescript/Electron, то VS Code можно запустить напрямую в браузере и серфить код там. Меняем com на dev:
👉 https://github.dev/life-exe/FIghtClubCppCMAKE

Дополнительно:
👉 https://vscode.dev
👉 https://github.com/features/codespaces

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

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

#cmake #conan #cpp #github #gamedev #lifeexe #gameengine #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3664👍3❤‍🔥2
🆕 Всем привет! 🆕

Тем временем Midjourney выкатили новую модель V7 Alpha
Причины очевидны. Если бы была буква до alpha, то использовали бы её.

Подробности в блог посте:
https://www.midjourney.com/updates/v7-alpha
V7 is an amazing model. It’s much smarter with text prompts, image prompts look fantastic, image quality is noticeably higher with beautiful textures, and bodies, hands and objects of all kinds have significantly better coherence on all details.

Как говорится: сам себя не похвалишь — ...😅

Для концептов к игре пойдет 💬

#midjourney #lifeexe #imagegen
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥95👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Всем привет 🎮

Зацените реализацию инвентаря для INDUSTRIA 2

Насколько это удобно на практике — вопрос открытый, но визуально выглядит кайфово 🤘

#gamedev #games #lifeexe #lifeexecode #diegetic_interface #diegetic #ui
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥49🔥30👍143😁1🤯1😱1😍1👻1
This media is not supported in your browser
VIEW IN TELEGRAM
😮 Всем привет 😮

Epic Games анонсировали 8 новых шаблонов, которые появятся в Unreal Engine 5.6

https://www.youtube.com/live/BHI6zx8QMkg

🔴 Racing
🔴 2.5D Side Scroller
🔴 Top Down Strategy
🔴 Top Down Shooter
🔴 Arena Shooter
🔴 Horror
🔴 3D Platformer
🔴 Over the Shoulder Melee Combat

#unrealengine #ue5 #epicgames #gamedev #lifeexe
Please open Telegram to view this post
VIEW IN TELEGRAM
54🔥4015🤪4😱2❤‍🔥1🎉11
Media is too big
VIEW IN TELEGRAM
🎮 Всем привет 🎮

Еще один неплохой пример диегетического интерфейса (Diegetic Interface)

Проект Beautiful Light

#gamedev #games #lifeexe #diegetic_interface #diegetic #ui
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥11❤‍🔥22
▶️ Всем привет, всем привет! ▶️

Непостоянная рубрика: Субботний C++ 🦊

Сегодня в меню очевидный, но не всегда применяемый подход:
Immediately Invoked Lambda Expression (IILE)

🔗 Текст поста также добавил в статьи в вики

Почему const — это важно?
Неизменяемость (immutability) — залог надежного и понятного кода. Использование const там, где это возможно, помогает компилятору отлавливать ошибки и показывает намерения программиста яснее. Когда другой человек читает ваш код и видит const, снижается когнитивная нагрузка на мозг — «запоминать изменения данного значения не надо — расслабься». Const correctness является важной практикой в C++.

Проблематика
В простых случаях инициализация констант не вызывает проблем:
const int c_maxPlayers = 100;
const double c_scale = getScaleFactor() * 1.5;
const bool c_enabled = check() || FORCE_ENABLE;
const int c_healthModifier = bHealing ? 20 : 0;


Но что делать, если для вычисления значения константы требуется несколько шагов, временные переменные, циклы или условия?
float c_calculatedDamage = getBaseDamageValue();
if (targetAimed(calculatedDamage)) {
for (int i = 0; i < c_effectCount; ++i) {
calculatedDamage += getBonusDamage(i);
}
}


Традиционные подходы — вынести логику в отдельную именованную функцию или отказаться от const — не всегда идеальны. Создание отдельной функции может быть избыточным, если логика используется только один раз. Отказ от const снижает безопасность и выразительность кода.

Immediately Invoked Lambda Expression (IILE)
Здесь на помощь приходит использование немедленно вызываемого лямбда-выражения (IILE). Мы определяем лямбда-функцию, которая инкапсулирует всю сложную логику инициализации, и тут же вызываем её. Результат этого вызова и присваивается нашей константе.

Как это выглядит:
const auto myLambda = [](){ return 13; }();


Скобочки форева 🤪 Последние круглые скобки () после фигурных скобок лямбды — это и есть немедленный вызов. Они заставляют лямбду выполниться прямо в месте определения. То есть мы можем проинициализировать сложный объект и сохранить константность:
const auto c_calculatedDamage = [&]() {
float tempDamage = getBaseDamageValue();
if (targetAimed(tempDamage)) {
for (int i = 0; i < c_effectCount; ++i) {
tempDamage += getBonusDamage(i);
}
}
return tempDamage;
}();


Преимущества IILE для инициализации
🟢Инкапсуляция — вся логика инициализации собрана в одном месте.
🟢Локальность — временные переменные, используемые для вычисления, не «загрязняют» внешнюю область видимости.
🟢Сonst сorrectness — позволяет объявить переменную как const (или даже constexpr, если лямбда соответствует требованиям), даже если её вычисление многоэтапное.
🟢Чистота кода — избавляет от необходимости создавать отдельные, одноразовые именованные функции.

Альтернативный синтаксис (C++17)
В C++17 можно использовать std::invoke, хотя для IILE прямой вызов () обычно предпочтительнее и понятнее:
#include <functional> 
// ...
const auto c_anotherConstant = std::invoke([] {
// ...
return 13;
});


Ссылки
🔗ES.28: Use lambdas for complex initialization, especially of const variables
🔗Article in english

🔤🔤🔤🔤🔤🔤🔤

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

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

#cpp #tipsandtricks #code #fun #lifeexe #lifeexecode #lifeexeEDU
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8316👍9❤‍🔥2
Media is too big
VIEW IN TELEGRAM
🆕 Всем воскресный привет 🆕

На неделе у многих жестко подгорело, когда ​Microsoft представила AI версию Quake II, каждый кадр которой генерируется с помощью модели Muse — это часть инициативы Copilot for Gaming.

Затестить:
https://copilot.microsoft.com/wham

Для того чтобы WASD клавиши работали не забудьте переключить раскладку на английскую. Одно дело обучить нейросеть, а другое — настроить сканкоды клавиш 🙂

Жаркая дискуссия в 📱
https://x.com/rubyrangerr/status/1908686763817918994

В реплаи даже залетел сам Джон Кармак:
This is impressive research work!


🎮 Выводы делайте сами 🎮

#news #gamedev #games #copilot #quake #lifeexe
Please open Telegram to view this post
VIEW IN TELEGRAM
215😱5😁1🤯1