Найти в Дзене
Вот у меня сейчас такая интересная фаза
Вот у меня сейчас такая интересная фаза. Вот я создал камеру на C++, она классная. Работает. Я записал видеообзор и инструкцию по настройке. Закинул на монтаж. Смонтировал. Но прихожу с работы, открываю проект и в голове «а что если.....» и понеслось. Архитектурно полностью все меняется, потому что узнал много нового и в итоге плагин меняется до неузнаваемости, что требует новую инструкцию. И так несколько раз. И как всегда всему виной являются блюпринты. Потому что я когда проектирую систему, я мыслю с точки зрения блюпринтов. И грубо говоря блюпринт логику переношу на плюсы. А плюсы работают...
1 неделю назад
Сейчас идёт сессия и сделал паузу в системе атрибутов
Сейчас идёт сессия и сделал паузу в системе атрибутов. Перешёл на 5.7 и создаю плагин камеры, который подойдет для RTS и градостроительных симуляторов и т.д. на c++. Чтобы получить максимум выгоды в производительности и минимум логики на блюпринтах. Скорее всего я теперь мало чего буду сдавать на блюпринтах и основная деятельность сведётся к тому, что буду делать модульные системы на C++ и записывать на них инструкции и обзоры. Я для себя решил, что мне нравится данное направление, ещё сильнее прокачивает мои навыки. Возвращаться к блюпринтам особого желания нет. На них теперь будет только...
3 недели назад
Теперь предыдущий опыт применю в новой системе, которая будет основана на Mass Entity
Теперь предыдущий опыт применю в новой системе, которая будет основана на Mass Entity. Она будет уже не универсальная, но все еще удобная. Проблема только в том, что нужно теперь сначала все начинать. Именно разработку системы.
4 недели назад
В общем, вынужден признать поражение
В общем, вынужден признать поражение. У меня была амбициозная идея построить универсальную систему атрибутов, которой можно было бы пользоваться в любом проекте. Меня ещё так удивило, что нет ничего подобного от эпиков. Есть GAS, но там все атрибуты нужно хардкодить на плюсах. И ещё есть Mass Entity тоже с высоким порогом входа. Мне это не понравилось, я выбрал дата ориентированный дизайн и начал творить. Я сделал систему, у меня все получилось, все работает. Но в проектах это использовать невозможно. Потому что универсальность - это противоположность оптимизации...
1 месяц назад
Всем привет! Вышло новое видео
Всем привет! Вышло новое видео. Обратите внимание, что тут огромное количество теории и лишь маленькие практические фрагменты. Видео подходит для всех версий Unreal Engine, а не только для 5.7. В конце я создам простенький шаблон, используя все знания и нюансы из теоретической части. И попробуем использовать интерфейсы по новому. А вот, что я расскажу в данном эпизоде: Что такое абстрактные классы и Cast. Как использовать интерфейсы. Как очищать переменные и зачем это надо. В каких случаях необходимо отписываться от делегатов...
1 месяц назад
Сегодня есть высокая вероятность, что я доделаю видео и ближе к ночи его опубликую
Сегодня есть высокая вероятность, что я доделаю видео и ближе к ночи его опубликую. Это мощный и крутой урок, который не касается моего проекта, а является неким справочником, с помощью которого вы сможете правильно организовать структуру логики проекта, чтобы повысить производительность, оптимизировать потребление памяти и устранить ее утечку...
1 месяц назад
У меня сейчас по сути 3 разных мощных модуля одного плагина
У меня сейчас по сути 3 разных мощных модуля одного плагина. Есть модуль с полезными вспомогательными функциями, типа цикла с пакетным обновлением, switch по геймплейным тегам, фильтрация по тегам, асинхронные таймеры. Второй модуль это пространственное хеширование. Мощная система для поиска объектов рядом, без необходимости перебора по всем акторам и проверкам расстояния. А ещё система умеет следить за ближайшим объектом. И есть разделение на мобильные и статичные объекты. И третья система - система атрибутов. Которая заменяет все переменные с качествами классов и имеет огромный потенциал для использования...
1 месяц назад
Хм, решил перезаписать видео
Хм, решил перезаписать видео. Сейчас пересматривал и в такой подаче есть высокий шанс неправильно уловить суть или же не понять ее вообще. Сделаю несколько примеров, чтобы лучше все понять.
1 месяц назад
Продолжаю разработку системы атрибутов
Продолжаю разработку системы атрибутов. Сначала я сделал таймер и возможность модифицировать атрибут. Затем я привязал это к состояниям и для каждого состояния для каждого атрибута своё измерение в зависимости от приоритета. Кажется сложным? Затем я добавил резисты, группы модификаторов, приоритеты применения, ещё типы модификаторов и понял, что создал бесконечно сложную систему, вовремя не остановившись. А очнулся лишь в тот момент, когда все сломалось и провести отладку было крайне сложно. Сейчас я занят полным рефактрингом системы, чтобы максимально упростить ее...
2 месяца назад
Полный успех
Полный успех! Большая часть функционала системы атрибутов работает, но пока только для одной сущности. Для множества ещё не пробовал. В системе огромное количество массивов (Array, Map) с частым чтением и записью и была проблема, что во время итераций или поиска данные могли модифицироваться другими функциями. И если итератор проводил проверки перед началом работы, то в какой-то момент они становились не актуальными из-за изменённых данных. Решением было добавить блокировки на запись и чтение, пока выполняется операция. Это добавило ещё больше проблем, но в итоге я разобрался и теперь вроде как все работает правильно...
2 месяца назад
Разработка системы атрибутов сильно затягивается
Разработка системы атрибутов сильно затягивается. Стараюсь код делать максимально чистым и оптимизированным, но не везде хватает опыта и знаний. И из-за масштаба отлаживать систему сложнее. Но работа идёт, медленно, но уверенно. Почему я не использую GAS? Система интересная, но я решил сделать что-то более узконаправленное и главной причиной является то, что в GAS надо четко в C++ указывать все возможные атрибуты. А в моей системе их можно создавать динамически когда угодно. Ну и уже встроенные таймеры для создания регенерации чего-либо с пакетным обновлением и LOD системой (3 таймера с разной периодичностью для оптимизации)...
2 месяца назад
С помощью такого конфига легко делать расы, нации или фракции
С помощью такого конфига легко делать расы, нации или фракции. Только сейчас дошло. Достаточно создать новый Data asset, в котором настроить классы для другой расы или нации со своими уникальным атрибутами.
2 месяца назад