====== ECS to Apparatus (Словарь) ====== Apparatus предоставляет базовые идиомы ECS и даже больше. Чтобы быть недвусмысленными (и самодостаточным), наш фреймворк использует другую схему именования, нежели чем в классическом ECS. Вот список терминов, которые мы используем в документации: ^ Общий термин ^ Термин ^ Описание ^ ECS Термин ^ | Subject (Сущность) | [[ru:toolworks:docs:apparatus:subject|Subject]] (Сущность) | Низкоуровневая компоновка трейтов. | Entity | | ::: | [[ru:toolworks:docs:apparatus:subjective|Subjective]] (Сущностный объект) | Высокоуровневая часть Subject-а, состоящая из деталей. | N/A | | Component (Компонент) | [[ru:toolworks:docs:apparatus:trait|Trait]] (Трейт) | Блок данных основанный на структуре. | Component | | ::: | [[ru:toolworks:docs:apparatus:detail|Detail]] (Деталь) | Блок данных основанный на классе. | N/A | | Iterable (Итерируемый) | [[ru:toolworks:docs:apparatus:chunk|Chunk]] (Чанк) | Хранилище слотов сущностей и трейтов. | Chunk | | ::: | [[ru:toolworks:docs:apparatus:belt|Belt]] (Ремень) | Хранилище слотов сущностей. | Chunk | | N/A | [[ru:toolworks:docs:apparatus:slot|Slot]] (Слот) | Отдельный элемент итерирования. | N/A | | ::: | [[ru:toolworks:docs:apparatus:flagmark|Flagmark]] (Флажки) | Ручная битовая маска специфицирующая сущность. | N/A | | ::: | [[ru:toolworks:docs:apparatus:traitmark|Traitmark]] (Флажки трейта) | Набор трейтов специфицирующий сущность. | Archetype | | ::: | [[ru:toolworks:docs:apparatus:detailmark|Detailmark]] (Флажки детали) | Набор деталей, специфицирующий сущность. | N/A | | ::: | [[ru:toolworks:docs:apparatus:fingerprint|Fingerprint]] (След или отпечаток) | Полная спецификация топологии сущности. | N/A | | ::: | [[ru:toolworks:docs:apparatus:filter|Filter]] (Фильтр) | Выбранные и исключенные свойства в топологии сущности. | Query | | ::: | [[ru:toolworks:docs:apparatus:mechanic|Mechanic]] (Механика) | Логика выполняемая над сущностями. | System | | ::: | [[ru:toolworks:docs:apparatus:mechanism|Mechanism]] (Механизм) | Множество сущностей и механик на уровне мира Unreal-а. | N/A | | ::: | [[ru:toolworks:docs:apparatus:machine|Machine]] (Машина) | Глобальное состояние фреймворка. | N/A | ===== Обоснование ===== Почему же мы позиционируем нестандартные имена на первом месте? Ну, конечно, мы считаем нашу схему лучше и вот почему. "Entity" - это более широкое понятие, часто зарезервированное для объектов общего назначения, вместе с тем оно довольно удобно для общей документации. "Subject", в свою очередь, лучше ассоциируется с чем-то автономным и обычно так называют вещи зависимые от других, подчинённые. Само же слово "system" - более обобщённое и может обозначать почти всё что угодно, например, систему частиц, систему загрузки/сохранения, систему библиотек и так далее. "Mechanic" - интуитивно понятно, что это нечто, оперирующее над понятиями тика (ticking) и обеспечивающее весь игровой дизайн в целом. Что на счёт "component" - так это имя уже было зарезервировано [[ue>components-in-unreal-engine/|самим Unreal Engine]]. Слова "Detail" и "Trait" оказались незанятыми и достаточно очевидно, что они обозначают часть чего-то (сущности). Будем использовать слово "Component", когда речь идёт и о трейтах, и о деталях одновременно. Поначалу это может быть трудно для запоминания, но привыкнуть к таким обозначениям не так-то и сложно, а логика, лежащая в основе терминов, в конечном итоге станет вашей собственной. Подводя итог, можно сказать, что тройка «Entity-Component-System» у нас трансформируется в «Subject-Trait/Deatil(Component)-Mechanic». Пожалуйста, возвращайтесь к этой статье время от времени в случаях, когда используемые термины вызывают трудности понимания.