Flecs — быстрая и легковесная ECS

Flecs - быстрая и легковесная ECS (Entity Component System), упакованная в небольшую библиотеку с C99 API без всяких зависимостей. В последнее время очень многие заинтересовались ECS, т.к. подобных подход может значительно ускорить/упростить разработку. Особенно Unity упорно продвигает DOTS с ECS. Кому-то может пригодится для своего движка на C++ подобная библиотека. Или же просто с академической точки зрения.

Flecs — быстрая и легковесная ECS

В ECS (Entity Component System) код обычно куда производительней, чем при использовании традиционного ООП, и, как правило, его проще использовать повторно. Фреймворк являет собой ECS, если имеет:

  • Сущности с уникальными идентификаторами (целыми числами).
  • Компоненты, представляющие собой простые типы данных, которые могут быть добавлены к сущностям.
  • Системы, которые являются функциями, сопоставляющие сущности с набором компонентов.

Основное, что позволяет Flecs:

  • Обрабатывать объекты в нескольких потоках с lock-free, zero-overhead архитектурой [подробнее].
  • Организовывать компоненты и системы для многократного использования [подробнее].
  • Периодически запускать системы покадрово, по требованию или по событиям [ подробнее].

Есть и админка:

Flecs — быстрая и легковесная ECS

Весь код библиотеки распространяется по MIT лицензии, дашборд по GPL v3. Подробную документацию можно найти тут, с кучей примеров.

Так же есть куча демок, к примеру, игры Pong.

3939
28 комментариев
Раскрывать всегда
[]