📱 Новое видео по разработке игрового движка уже доступно на Boosty и Patreon
Лекция очень насыщенная — финально полируем систему логирования
C++20 ConceptsРазбираемся с концептами на практике
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
7🔥30❤9 6🦄1 1 1
This media is not supported in your browser
VIEW IN TELEGRAM
Пятничный вопрос знатокам: сможет ли ИИ подфиксить баг в этом нодовом генераторе японских дорожных знаков?
#blueprint #blender #gamedev #lifeexe #lifeexecode #friday #meme #humour
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27🔥9 5😱2🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
Пятничная видео-игра сегодня — атмосферный хоррор Silver Pines
#silver_pines #gamedev #horror #pixel #games #lifeexe #lifeexecode #fridaygame #coolgame
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👻7🔥4🦄1 1
This media is not supported in your browser
VIEW IN TELEGRAM
Quixel выложили новый бесплатный пак под
#quixel #megascans #tutorial #free #unrealengine #ue5 #gamedev #level_design #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22 9 5❤1🦄1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥5 5 2🦄1
Epic Games выпустили детальный гайд, посвященный тому, как правильно искать причины фризов при стриминге уровней, используя профайлер Unreal Insights
#optimization #level_streaming #unreal_insights #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24🔥14 7 2
This media is not supported in your browser
VIEW IN TELEGRAM
Отличная демонстрация использования
PCG в целом и GetDynamicMeshData в частности #unrealengine #ue5 #pcg #gamedev #lifeexecode #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29 7 6
This media is not supported in your browser
VIEW IN TELEGRAM
QuickMesh — небольшой бесплатный генератор low-poly моделей деревьев и камней
#mesh #low_poly #free #tool #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍11❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Отличная статья о том, какие техники помогают уложить эффектные шейдер-демки в 500-700 символов: ray-marching, smooth-min, шумы, варпинг и другие мини-приёмы для генеративной графики
Например, код трилобита в аттаче состоит из 602 символов
// Cutie [602] by bµg
// License: CC BY-NC-SA 4.0
#define V vec3
#define L length(p
#define C(A,B,X,Y)d=min(d,-.2*log2(exp2(X-L-A)/.2)+exp2(Y-L-B)/.2)))
#define H(Z)S,k=fract(T*1.5+s),a=V(1.3,.2,Z),b=V(1,.3*max(1.-abs(3.*k-1.),z),Z*.75+3.*max(-k*S,k-1.)),q=b*S,q+=a+sqrt(1.-dot(q,q))*normalize(V(-b.y,b.x,0)),C(a,q,3.5,2.5),C(q,a-b,2.5,2.)
void main(){float i,t,k,z,s,S=.5,d=S;for(V p,q,a,b;i++<5e1&&d>.001;t+=d=min(d,s=L+V(S-2.*p.x,-1,S))-S))p=normalize(V(P+P-R,R.y))*t,p.z-=5.,p.zy*=mat2(cos(vec4(1,12,34,1))),p.xz*=mat2(cos(sin(T)+vec4(0,11,33,0))),d=1.+p.y,C(z,V(z,z,1.2),7.5,6.),s=p.x<z?p.x=-p.x,z:H(z),s+=H(1.);O=vec4(V(exp(-i/(s>d?1e2:9.))),1);}
#shader #glsl #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🫡10❤4🔥2
Media is too big
VIEW IN TELEGRAM
Мини tip для
Patreon | 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
❤17🔥11 4🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
Бесплатный ассет материала в Material maker
Другие материалы автора
#material #shader #unrealengine #ue5 #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15 8🔥3 1
В
ArraySizeEnum UENUM(BlueprintType)
enum class ECharacterClass : uint8
{
Warrior UMETA(DisplayName = "Warrior"),
Priest UMETA(DisplayName = "Priest"),
Ranger UMETA(DisplayName = "Ranger"),
Druid UMETA(DisplayName = "Druid"),
Count UMETA(Hidden)
};
// UI цвета для каждого класса
UPROPERTY(EditAnywhere, meta = (ArraySizeEnum = "ECharacterClass"))
FColor UIColors[(uint8)ECharacterClass::Count];
// Базовое здоровье для каждого класса
UPROPERTY(EditAnywhere, meta = (ArraySizeEnum = "ECharacterClass"))
float BaseHealth[(uint8)ECharacterClass::Count];
enumenumenum элемент Count/MAX/Total с пометкой UMETA(Hidden) — так удобнее определять размер массива и этот элемент не будет виден в редактореBlueprintReadWrite/BlueprintReadOnlyC-style cast для компактности кода, но лучше использовать современный подход со static_castPatreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#tips_and_tricks #unrealengine #ue5 #code #cpp #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17 3🐳2 2❤1🦄1