Entity Component System
Entity-Component-System (ECS, укр. Сутність-Компонент-Система) — це шаблон проєктування, який забезпечує велику гнучкість в проєктуванні загальної архітектури програмного забезпечення. Такі великі компанії, як Unity, Epic або Crytek використовують цей шаблон в своїх фреймворках, щоб надати розробникам дуже багатий можливостями інструмент, за допомогою якого вони розробляють власне ПЗ.
У 2007 році команда, що працювала над Operation Flashpoint: Dragon Rising, експериментувала з патерном ECS, а Адам Мартін пізніше написав докладний опис дизайну ECS, включаючи визначення основної термінології та концепцій. Зокрема, робота Мартіна популяризувала ідеї «систем» як елемента першого класу, «сутності як ідентифікатори», «компоненти як необроблені дані» і «код, що зберігається в системах, а не в компонентах або об'єктах».
Основна ціль ECS — розподіл різних проблем і завдань між сутностями (Entities), компонентами (Components) і системами (Systems). Це три основні поняття цього шаблону. Сутність це контейнер для компонентів. Компонент — це невеликий об'єкт, який не володіє ніякою логікою. Зазвичай компонент містить одне чи два поля. В ідеалі це об'єкти з простою структурою даних. Кожен тип компонента можна прикріпити до сутності, щоб дати їй щось на зразок властивості. Системи містять в собі логіку, наприклад, переміщення чи запуск анімації. Системи працюють з сутностями, які мають потрібний для неї набір компонентів.
Це незавершена стаття про інформаційні технології. Ви можете допомогти проєкту, виправивши або дописавши її. |
Ця стаття не містить посилань на джерела. (27 грудня 2018) |