Entity Component System

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Entity-Component-System (ECS, укр. Сутність-Компонент-Система) — це шаблон проєктування, який забезпечує велику гнучкість в проєктуванні загальної архітектури програмного забезпечення. Такі великі компанії, як Unity, Epic або Crytek використовують цей шаблон в своїх фреймворках, щоб надати розробникам дуже багатий можливостями інструмент, за допомогою якого вони розробляють власне ПЗ.

Історія[ред. | ред. код]

У 2007 році команда, що працювала над Operation Flashpoint: Dragon Rising, експериментувала з патерном ECS, а Адам Мартін пізніше написав докладний опис дизайну ECS, включаючи визначення основної термінології та концепцій. Зокрема, робота Мартіна популяризувала ідеї «систем» як елемента першого класу, «сутності як ідентифікатори», «компоненти як необроблені дані» і «код, що зберігається в системах, а не в компонентах або об'єктах».

Характеристика[ред. | ред. код]

Основна ціль ECS — розподіл різних проблем і завдань між сутностями (Entities), компонентами (Components) і системами (Systems). Це три основні поняття цього шаблону. Сутність це контейнер для компонентів. Компонент — це невеликий об'єкт, який не володіє ніякою логікою. Зазвичай компонент містить одне чи два поля. В ідеалі це об'єкти з простою структурою даних. Кожен тип компонента можна прикріпити до сутності, щоб дати їй щось на зразок властивості. Системи містять в собі логіку, наприклад, переміщення чи запуск анімації. Системи працюють з сутностями, які мають потрібний для неї набір компонентів.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]