Описание тега entity-component-system
Сущность – компонент – система (ECS)
ECS следует принципу компоновки над наследованием, который обеспечивает большую гибкость в определении сущностей, где каждый объект в игровой сцене является сущностью (например, враги, пули, транспортные средства и т. Д.).
Каждая сущность состоит из одного или нескольких компонентов, которые добавляют дополнительное поведение или функциональность. Таким образом, поведение Entity можно изменить во время выполнения, добавив или удалив компоненты. Это устраняет проблемы неоднозначности глубоких и широких иерархий наследования, которые трудно понять, поддерживать и расширять. Общие подходы ECS очень совместимы и часто сочетаются с методами проектирования, ориентированного на данные.
Описание взято из исходного документа:
https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system
Дополнительные источники:
- https://github.com/SergeyMakeev/ecs/blob/master/README.md
- http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
Примеры:
- Артемида (Ява)
- ECS (C++)
- Цистрон (C++)
- Svelto.ECS (C# Unity3d)
- BrokenBricksECS (C# Unity3d)
- Entitas (C# Unity3d)
Ролики:
- Unite Austin 2017 - Написание высокопроизводительных скриптов на C#
- Unity в GDC - ориентированный на данные подход к использованию компонентных систем
Похожие темы:
- Дизайн, ориентированный на данные: