Хороший дип-дайв разбор того, как делают идеальные дробовики в VR
#gamedev #VRdev #leveldesign #games #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍9 5❤2🦄2
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный кейс от Nick Pattas — в блог-посте он разбирает, как сделать в
sin/cos — только текстуры и хитрая логика #gamedev #material #shader #niagara #lifeexe #lifeexecode #unrealengine #ue5 #graphics #LUT
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27 10❤7🦄2 1
Media is too big
VIEW IN TELEGRAM
В
CCR позволяет размещать в сцене специальные регионы, внутри которых можно применять свои настройки цветокоррекции. Это работает в реальном времени и не требует постобработки!
Post Process Volume накладывает эффект на камеру, когда игрок заходит в объем — меняется картинка целиком.
Color Correct Regions меняет цвет самих объектов, находящихся внутри региона — остальная сцена и камера остаются неизменными.
Edit > Plugins > Color Correction Regions > RestartEdit > Project Settings > Rendering(Window > Color Grading) — это специализированный интерфейс для работы с цветом в ваших сценах. Панель позволяет управлять настройкам Color Correction Regions и Post Process Volume.📌 Демонстрация работы плагина в прикреплённом видео
#ccr #gamedev #tips_and_tricks #UEtips #unrealengine #ue5 #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16 6 5❤1🦄1
При отображении массива структур в Unreal Engine спецификатор TitleProperty позволяет настроить текст, который выводится в заголовке каждого элемента.
Поддерживается структурное форматирование в стиле
FText::Format для комбинирования нескольких параметров в одной строке USTRUCT(BlueprintType)
struct FWeaponStats
{
GENERATED_BODY();
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FName Name;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Damage;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Ammo;
};
...
UPROPERTY(EditAnywhere)
TArray<FWeaponStats> WeaponsLame;
UPROPERTY(EditAnywhere, Meta = (TitleProperty = "{Name} - {Damage} DMG"))
TArray<FWeaponStats> Weapons;
#gamedev #tips_and_tricks #UEtips #unrealengine #ue5 #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
120🔥50❤10 10🦄2
This media is not supported in your browser
VIEW IN TELEGRAM
3dSen — симулятор, который превращает любимые олдскульные 8-битные игры в полноценные 3D-диорамы
Фишки
#3dSen #gamedev #VRdev #leveldesign #games #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤7 5🦄1 1
Media is too big
VIEW IN TELEGRAM
Мини tip для
Edit > Editor PreferencesPerformance > Show Frame Rate And Memory💡 Ctrl+Shift+H выводит FPS в HUD вьюпорта. Больше хоткеев в последнем видео на канале — TOP-50 UNREAL ENGINE HOTKEYSPatreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#tips_and_tricks #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥11 11🦄1 1
This media is not supported in your browser
VIEW IN TELEGRAM
#gamedev #ue5 #unrealengine #ideas #benchmark #lifeexe #lifeexecode #friday
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17 14😁6🤩2🦄2 1
This media is not supported in your browser
VIEW IN TELEGRAM
Видео-игра недели — ламповый симулятор ремонтной ретро-мастерской Японии середины 2000-х годов
#restory #gamedev #games #lifeexe #lifeexecode #coolgame
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24❤11👍8 2 2🦄1
Media is too big
VIEW IN TELEGRAM
Игра на вечер выходного дня — головоломка Viewfinder, в которой вы перестраиваете реальность с помощью снимков, картин и открыток
Всё, что изображено на фото в вашей руке, можно добавить в мир игры
#gamedev #games #lifeexe #lifeexecode #coolgame #escher
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥7 7 3👍1🦄1
Непостоянная рубрика: Воскресный C++
Типизация и применение
std::string_literals в современном C++📕 Полноценная статья доступна для подписчиков Boosty и Patreon
using namespace std::string_literals; — это директива в C++, которая позволяет использовать суффикс s для создания объектов std::string напрямую из строковых литералов.Эта возможность появилась в стандарте C++14.
В «классическом» C++ строковый литерал
"Hello" имеет тип const char* — C-style массив символов, а не std::string#include <string>
int main()
{
auto str1 = "Hello"; // Тип: const char*
using namespace std::string_literals;
auto str2 = "Hello"s; // Тип: std::string
return EXIT_SUCCESS;
}
Без
string_literals нельзя просто взять и сложить два const char*std::string result = "Hello" + ", world";
// ОШИБКА компиляции!
// компилятор выдаст что-то такое ->
// error: invalid operands to binary expression
А вот с суффиксом
s это работает, так как вызывается перегруженный operator+ для класса string #include <print>
#include <string>
int main()
{
using namespace std::string_literals;
auto result = "Hello"s + ", world"s;
std::println("{}", result);
return EXIT_SUCCESS;
}
Что будет выведено в консоль?
#include <print>
#include <string>
void process(bool param)
{
std::println("bool");
}
void process(const std::string& str)
{
std::println("string");
}
int main()
{
using namespace std::string_literals;
process("hello"); // ?
process("hello"s); // ?
return EXIT_SUCCESS;
}
Ответ может удивить:
process("hello") выведет boolprocess("hello"s) выведет stringПочему так? У компилятора есть два пути
const char* к std::string через конструктор класса — это User-defined conversion.bool (любой не null указатель = true) — это Standard conversion.В C++ стандартные преобразования имеют приоритет. Поэтому строка молча превращается в
true, и вы попадаете не в ту функцию — суффикс s решает эту проблему.📕 Больше информации, ньюансов и примеров со ссылками на Compiler Explorer в полноценной статье на Boosty и Patreon
Patreon | Boosty | PayPal
GitHub | LifeEXE School | Itch | X | Wiki | Курс по UE
#cpp #tips_and_tricks #code #lifeexe #lifeexecode #lifeexeEDU
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤24🔥15 5 2👍1
Новая лекция по разработке игрового движка в эту пятницу на канале — финально полируем систему логирования
📱 Для желающих видео уже доступно на Boosty и Patreon
C++20 ConceptsКонцепты — это именованные требования к типам, которые делают ограничения шаблонов читаемыми и служат современной альтернативой идиоме SFINAE.
Можно сказать, что это эволюция метапрограммирования: «сырые» type traits превращаются в выразительные интерфейсы.
Разбираемся со следующими концептами на практике
std::constructible_from
std::convertible_to
std::same_as
Другие темы выпуска
std::source_location (C++20) — автоматический вывод имени функции и номера строкиLE_LOG по аналогии с Unreal Engine
do{}while(0)if constexpr (C++17) для compile-time проверокdebugbreak под Linux /Zc:preprocessor (стандартный препроцессор в MSVC) ..., __VA_ARGS__ и __VA_OPT__Patreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#concepts #log #logging #gameengine #gameengine16 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
55❤15🔥9 4 2