Новое видео по движку на канале
conanspdlogpIpmlсинглтон МайерсаNonCopyable классstd::formatВидео юбилейное —#️⃣ 1️⃣ 🔤 🔤
Patreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#log #logging #gameengine #gameengine14 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
51 22🔥16❤10 2👍1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
Новое видео по игровому движку в эту пятницу! Продолжаем программировать систему логирования
Ранняя премьера уже доступна на Boosty и Patreon
DEFINE_LOG_CATEGORY_STATIC
std::filesyatem и std::chronoPatreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#log #logging #gameengine #gameengine15 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍19🔥13❤7 4🦄1 1
Новое видео по движку на канале
DEFINE_LOG_CATEGORY_STATIC
std::filesyatem и std::chronoPatreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#log #logging #gameengine #gameengine15 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
15.🕹️ Game Engine. Система логирования. Day2: категория логирования, файл лога, debug break
#log #logging #gameengine #cmake #cpp #lifeexe #lifeexecode #lifeexeengine #unrealengine #gamedev #ue5 #unrealengine5
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
5🔥30❤7❤🔥7🦄3 2
📱 Новое видео по разработке игрового движка уже доступно на 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🔥31❤10 7🦄1 1 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
55🔥32 11🦄6🐳2 2👍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❤27🔥18 7 3👍1🦄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❤21🔥11 6 3🦄1
Новое видео по разработке игрового движка на канале
std::source_location LE_LOG по аналогии с UE
/Zc:preprocessor📱 Видео уже доступно на Boosty и Patreon
Patreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#log #gameengine #cpp #gamedev #lifeexe #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
16.🕹️ Game Engine. Система логирования. Day3: c++ concepts, std::source_location, variadic macros
#gameengine #log #logging #concepts #cpp #lifeexe #lifeexecode #lifeexeengine #unrealengine #gamedev #ue5 #unrealengine5
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
5🔥26 9❤8👍2🦄1
Новая лекция по разработке игрового движка в эту пятницу на канале — активируем пайплайн тестирования
📱 Для желающих видео уже доступно на Boosty и Patreon
Patreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#tests #gameengine #gameengine17 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥23🤩8❤4 2🦄1 1
Новое видео по разработке игрового движка на канале — активируем пайплайн тестирования
Patreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#tests #gameengine #gameengine17 #cmake #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
17.🕹️ Game Engine. Google test. Базовые юнит тесты. Github workflow отчета по тестированию
#gameengine #unittests #googletest #lifeexe #lifeexecode #lifeexeengine #unrealengine #gamedev #ue5 #unrealengine5
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
🔥23👍11❤🔥8❤3⚡1
Непостоянная рубрика: Воскресный C++
📕 Полноценная статья доступна для подписчиков Boosty и Patreon
Raw String Literals (префикс R) — это необработанные строковые литералы
(raw string literals), появившиеся в C++11.Внутри
R"(...)" все символы интерпретируются буквально — не нужно экранировать специальные символы и переносы строк R"(HelloWorld)" // Базовый синтаксис
R"delimiter(HelloWorld)delimiter" // С delimiter
const std::regex pattern("\\d{3}-\\d{2}-\\d{4}");
const std::regex pattern(R"(\d{3}-\d{2}-\d{4})");const auto config = R"({
"server": {
"host": "localhost",
"port": 8080
},
"debug": true
})"s;const auto path1 = "C:\\Program Files\\MyApp\\config.ini"s;
const auto path2 = R"(C:\Program Files\MyApp\config.ini)"s;
Raw string literals — это compile-time фича. Все три варианта генерируют ИДЕНТИЧНЫЙ машинный код const auto s1 = "hello\\nworld"s;
const auto s2 = R"(hello\nworld)"s;
const auto s3 = std::string("hello\\nworld");
R"(\n)" — это буквально два символа \ и n, а не перенос строки!📕 Больше информации, ньюансов и примеров со ссылками на 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
10🔥31 11🦄7👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Новая лекция по разработке игрового движка на следующей неделе — приступаем к графике — создаем наше первое окно и оконный менеджер
📱 Для желающих видео уже доступно на Boosty и Patreon
std::expected и std::hash<=> spaceshipPatreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#glfw #graphics #gameengine #gameengine18 #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥29❤8👍3 1 1
Новая лекция по разработке игрового движка уже завтра на канале (в этот раз в четверг) —
приступаем к графике — создаем наше первое окно https://youtu.be/5EjLzkQchgE
📱 Для желающих видео уже доступно на Boosty и Patreon
std::expected и std::hash<=> spaceshipPatreon | Boosty | PayPal
GitHub | Itch | X | Wiki | LifeEXE School
#glfw #graphics #gameengine #gameengine18 #cpp #github #gamedev #lifeexe #lifeexecode #lifeexeengine
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
18.🕹️ Программируем Игровой Движок. Создаем GLFW окно. Пишем свой оконный менеджер #gamedev #code
#gameengine #glfw #graphics #lifeexe #lifeexeengine #unrealengine #gamedev #ue5 #unrealengine5 #opengl #directx
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
Мой курс «Unreal Engine — полное руководство по разработке на С++»
https://www.udemy.com/course/unrealengine/?referralCode=1DEBE7F013238C387B46…
15🔥26 15❤8🦄2 2👍1
Том Луман выложил отличный гайд по первоначальной настройке Rider для C++ и Unreal Engine
Дополнения
📱 Новое видео по игровому движку уже на канале➡️ https://youtu.be/5EjLzkQchgE
#rider #ide #cpp #unrealengine #ue5 #gamedev #games #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥37 9 8👍2🦄1