Pull to refresh

Comments 6

Очень похоже на мою реализацию ECS (CES — у нас почему-то всегда так называют этот подход), только вот за исключением что на каждый компонент у меня обязательно есть своя система. Почему, кстати, у вас нет RenderComponent'а, но есть RenderSystem? Еще не доконца ознакомился с вашей реализацией, не пойму как происходит обход parent->children? Я, вот, наделял Entity способностью добавлять child'ов и затем система обходила это дерево. Например если у Entity изменился компонент трансформации, то система брала чилдов этой сущности и обновляла их компоненты трансформации согласно родительской и так далее.
Еще, кстати, для получения уникального Id объекта по инстацированию шаблонов, как сделано у вас в FamilyTypeID, можно вместо счетчика использовать адрес на локальную статичную переменную, например
    static typeid_t Id()
    {
        static char const type_id = '\0';
        return (typeid_t)(&type_id);
    }
Ах, дико извиняюсь, я не заметил, что статья является переводом и автор статьи не является автором кода
Полностью согласен. Проще было бы форкнуть эту реализацию, если уж очень захотелось свой ECS с блэкджеком и еще чем-то там.
Прочитать более широкое обсуждение по этой тематике можно в этих постах [2,3,4,5].

можно конечно подсмотреть в оригинале статьи)
но что бы вдруг не потерялись, я бы разместил бы тут
P.S. Очень неожиданно было увидеть справочную литературу в середине статьи)
Sign up to leave a comment.

Articles