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

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

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
Media is too big
VIEW IN TELEGRAM
🎮 Всем привет! 🎮

Понедельник. В эфире карательный гейм-дев!

Вы: пастушья собака 🐶
Ваша цель: отсортировать уток 🦆
Уровень сложности: невозможное ⚰️

🔗 https://keepee.itch.io/duck-sorter

Небольшое пояснение матчасти происходящего ⤵️

За этим хаосом стоит физика автономных агентов и роевое поведение — swarm behaviour.

Изначально термин swarm behaviour пришёл из биологии: большая группа относительно простых организмов (птицы, рыбы, насекомые) показывает сложное, скоординированное поведение, хотя у них нет центрального лидера, и каждый реагирует только на своих ближайших соседей.

Как запрограммировать 👨‍💻 такое поведение можно подробно изучить на сайте The Nature of Code:

🔗 https://natureofcode.com/autonomous-agents

Я упоминал эту книгу в одном из общих видео на канале. Примеры в книге на Processing/JS, но принципы легко переносятся на C++, C# и другие языки. Easy,

Ключевые принципы swarm behaviour:
🟢 Децентрализация — нет лидера, решения принимаются локально.
🟢 Локальные взаимодействия — агент реагирует только на то, что видит рядом.
🟢 Простые правила — поведение каждого отдельного агента простое: избегай столкновений, держись рядом, двигайся как соседи.
🟢 Эмерджентность — из простых локальных правил рождается сложное и «умное» поведение всей группы.

Классические примеры в природе:
📌 Мурмурация птиц
📌 Синхронные косяки рыб
📌 Организованные рои насекомых

Концепция «роя» применяется не только в играх и симуляциях, но и в архитектуре — это направление называется Swarm Urbanism. Оно использует моделирование поведения толпы для проектирования городских пространств: помогает понять, где будут наиболее оживлённые зоны, как оптимизировать потоки людей и сделать среду более эффективной:

🔗https://bit.ly/swarm_urbanism
🔗 https://www.youtube.com/watch?v=p38awHtjePA

Имеется специализированный софт для этих целей: NetLogo, AnyLogic, GAMA Platform

🔤🔤🔤🔤🔤🔤🔤

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

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

#gamedev #ai #simulation #swarmintelligence #physics #agents #coding #natureofcode #lifeexe #lifeexecode #lifeexeEDU
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5015❤‍🔥10👍3🤩1
📱 Всем привет!​ 📱

На днях вышел новый сезон «Чёрного зеркала», и четвёртый эпизод Plaything касается геймдева непосредственно.

Без спойлеров

В центре сюжета — игра Thronglets, которая реально была выпущена Netflix совместно с Night School Studio:

⬇️iOS
⬇️Android
👀 Black Mirror: Thronglets - Gameplay Walkthrough

На первый взгляд, игра представляет собой простой симулятор. Вам поручено присматривать за Тонглетами, маленькими милыми существами, напоминающими тамагочи 🐥

Но так как это симулятор Black Mirror, то существа со временем становятся более осознанными и начинают задавать вам ВОПРОСИКИ. К тому же придётся столкнуться с моральными дилеммами: быть добрым или жестоким, использовать ресурсы или жертвовать существами 😂

Концепция игры отсылает к проекту 1996 года Creatures, где игроки заботились о цифровых существах с примитивным ИИ.​

Подробнее об игре и её связи с сериалом можно прочитать в статьях:​

🔗 Polygon
🔗 WIRED
🔗 The Verge

P.S. В эпизоде имеется прямая отсылка на старый интерактивный эпизод Bandersnatch

P.P.S. Не рекомендую начинать игру, если не смотрели серию 🙃

#gamedev #movie #game #netflix #lifeexe #blackmirror
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍277🔥5