Найти в Дзене
Уроки по Unreal Engine

Что вообще такое Mass Entity

Это Data - ориентированная система. Юниты, здания, ресурсы создаются не в виде Actor или Pawn, их вообще нет на игровой сцене. Они существуют лишь в локальном кеше и называются сущностям . Именно потому что этих данных нет на сцене, то они обрабатываются в многопоточном режиме. И есть ещё подсистема визуализации. Она спавнит всего один актор, который по координатам спавнит Instanced Static Mesh для оптимизированного рендеринга. То есть одинаковые объекты с точки зрения рендера будут являться 1 объектом. Меш может обрабатывать события клика по нему, поэтому всегда можете получить данные для отображения в виджете. Сущность изначально пустая и есть такой элемент, как фрагмент. Фрагмент это какой-то тип данных, например Transform, ещё фрагмент Mesh, ещё фрагмент Health к примеру и внутри специального Data Asset сущность, как конструктор, собирается из этих фрагментов и таким образом не содержит ничего лишнего. Для юнитов используется не ISM, а HISM. Тоже самое, но позволяет динамичес

Что вообще такое Mass Entity. Это Data - ориентированная система. Юниты, здания, ресурсы создаются не в виде Actor или Pawn, их вообще нет на игровой сцене. Они существуют лишь в локальном кеше и называются сущностям . Именно потому что этих данных нет на сцене, то они обрабатываются в многопоточном режиме. И есть ещё подсистема визуализации. Она спавнит всего один актор, который по координатам спавнит Instanced Static Mesh для оптимизированного рендеринга. То есть одинаковые объекты с точки зрения рендера будут являться 1 объектом.

Меш может обрабатывать события клика по нему, поэтому всегда можете получить данные для отображения в виджете.

Сущность изначально пустая и есть такой элемент, как фрагмент. Фрагмент это какой-то тип данных, например Transform, ещё фрагмент Mesh, ещё фрагмент Health к примеру и внутри специального Data Asset сущность, как конструктор, собирается из этих фрагментов и таким образом не содержит ничего лишнего.

Для юнитов используется не ISM, а HISM. Тоже самое, но позволяет динамически обновлять изображение. А это значит, что вместо скелетной сетки и AnimBlueprint можно использовать Static Mesh и VAT (вертексная анимация) через материал.

Есть ещё процессоры, это то, что занимается обновлением данных. По тику, по событию или просто при вызове. Можно раскидывать по разным потокам.

Вместо создания Enum или булевых переменных или тегов Actor или Gameplay Tag там есть MassTag. Это просто пустая метка, по которой можно производить поиск. И с помощью этих меток можно устанавливать категории, типы сущностей и их состояния.

И это ещё не все, есть Traits. Это готовые наборы из фрагментов, процессоров и тегов.

То есть можно создавать модульные готовые системы, чтобы сущности не хранили в себе лишнюю информацию и механики.

Например можно создать готовый Trait для здоровья и запихнуть туда все параметры, логику обновления здоровья, нанесения урона и теги, например здоров, ранен, убит.

Trait лесоруба. Можно поместить новый меш, теги, данные о количестве ресурсов и анимацию рубки леса добавить.

Возможности просто колоссальные, но система крайне тяжелая для понимания и использования.

Суть моего плагина - обеспечить более легкий вход в эту движуху и реально использовать в Top Down проектах.