Apparatus предоставляет базовые идиомы ECS и даже больше. Чтобы быть недвусмысленными (и самодостаточным), наш фреймворк использует другую схему именования, нежели чем в классическом ECS. Вот список терминов, которые мы используем в документации:
Общий термин | Термин | Описание | ECS Термин |
---|---|---|---|
Subject (Сущность) | Subject (Сущность) | Низкоуровневая компоновка трейтов. | Entity |
Subjective (Сущностный объект) | Высокоуровневая часть Subject-а, состоящая из деталей. | N/A | |
Component (Компонент) | Trait (Трейт) | Блок данных основанный на структуре. | Component |
Detail (Деталь) | Блок данных основанный на классе. | N/A | |
Iterable (Итерируемый) | Chunk (Чанк) | Хранилище слотов сущностей и трейтов. | Chunk |
Belt (Ремень) | Хранилище слотов сущностей. | Chunk | |
N/A | Slot (Слот) | Отдельный элемент итерирования. | N/A |
Flagmark (Флажки) | Ручная битовая маска специфицирующая сущность. | N/A | |
Traitmark (Флажки трейта) | Набор трейтов специфицирующий сущность. | Archetype | |
Detailmark (Флажки детали) | Набор деталей, специфицирующий сущность. | N/A | |
Fingerprint (След или отпечаток) | Полная спецификация топологии сущности. | N/A | |
Filter (Фильтр) | Выбранные и исключенные свойства в топологии сущности. | Query | |
Mechanic (Механика) | Логика выполняемая над сущностями. | System | |
Mechanism (Механизм) | Множество сущностей и механик на уровне мира Unreal-а. | N/A | |
Machine (Машина) | Глобальное состояние фреймворка. | N/A |
Почему же мы позиционируем нестандартные имена на первом месте? Ну, конечно, мы считаем нашу схему лучше и вот почему.
«Entity» - это более широкое понятие, часто зарезервированное для объектов общего назначения, вместе с тем оно довольно удобно для общей документации. «Subject», в свою очередь, лучше ассоциируется с чем-то автономным и обычно так называют вещи зависимые от других, подчинённые.
Само же слово «system» - более обобщённое и может обозначать почти всё что угодно, например, систему частиц, систему загрузки/сохранения, систему библиотек и так далее. «Mechanic» - интуитивно понятно, что это нечто, оперирующее над понятиями тика (ticking) и обеспечивающее весь игровой дизайн в целом.
Что на счёт «component» - так это имя уже было зарезервировано самим Unreal Engine. Слова «Detail» и «Trait» оказались незанятыми и достаточно очевидно, что они обозначают часть чего-то (сущности). Будем использовать слово «Component», когда речь идёт и о трейтах, и о деталях одновременно.
Поначалу это может быть трудно для запоминания, но привыкнуть к таким обозначениям не так-то и сложно, а логика, лежащая в основе терминов, в конечном итоге станет вашей собственной. Подводя итог, можно сказать, что тройка «Entity-Component-System» у нас трансформируется в «Subject-Trait/Deatil(Component)-Mechanic». Пожалуйста, возвращайтесь к этой статье время от времени в случаях, когда используемые термины вызывают трудности понимания.