Pull to refresh

Comments 12

Спасибо большое за статью, особенно за примеры и то, что не забыли про фильтрацию сущностей и JobSystem. Я как раз хотел написать свой обзор Unity ECS, но вы меня опередили) Уже несколько лет занимаюсь вопросом разработки на ECS, тема для меня горячая, можно почитать в моих последних статьях на Хабре.
Что хотелось бы добавить: текущая реализация пока работает только редакторе. Она пишется, можно сказать, всем миром, т.к. Unity стараются собрать по максимуму опыт специалистов в области и их реализация еще сто раз может измениться. На ближайшей Unite Berlin скорее всего расскажут о дальнейшем развитии.
Также добавил вас в свой небольшой обзор статей про ECS на Хабре (см. в конце статьи). Примечательно, что наши статьи вышли практически одновременно, это очень горячая тема на сегодня.
Да, уже посмотрел ваш вариант, интересно.
Достаточно почитать ветку форума про ECS, где народ предлагает и реактивное UI, и физику на GPU, а работники Unity отвечают в стиле: «Да, мы думаем над этим», «Мы хотим сделать что-то похожее» и т.д. В общем, пытаются везде успеть.
P.S. Забавно, но в субботу меня пригласили пройти собеседование в вашу компанию :)
Так приходите, будем рады)
Шикарная статья, огромное вам спасибо за проделанную работу!
Звучит новая система интересно: и лапшу из кода может вылечить и перфоманс повысить. Интересно, перегонят ли всех насильно на новый подход?(страшно представить сколько плагинов отклеятся)
Очень хотелось бы интеграции в текущую КОП систему, или полную замену текущей системы «под капотом». Не думаю, что станут терять совместимость (может, через пару-другую лет). Насколько знаю, у них не настолько большая команда, чтобы делать форк и поддерживать две версии движка.
ECS удобна лишь для проектов, где большое стадо сущностей должно выполнять одно и то же, причем в апдейтах. С джобсами та же хрень, ибо рожать потоки для сложения двух значений, для одной сущности, выйдет накладней ИМХО. Перепробовал кучу велосипедов, включая упомянутые в статье, по приведенной ссылке. В проектах без упомянутого выше стада, вся прелесть сводится на нет некислым оверхедом в писанине. То что обычно умещается в три строчки, с джобсами разрастается до 20-30, и компоненты приходится плодить тоннами. Единственно, что есть в этом стоящего, это отделение данных и действительно 100% переиспользование систем, но для этого есть другие велосипеды. )
Да, системы с джобами довольно объемно смотрятся, поэтому я выносил в них только то, что требует многопоточности

Что это за джобы-то такие, если потоки надо рожать? :) И по поводу скорости ECS и "стада" у вас имеются пробелы — достаточно иметь типов компонентов больше одного, чтобы увидеть очевидный прирост в скорости (если, конечно, память организована верно, а не для галочки). Вообще с инженерией так и бывает — сложные проблемы требуют сложных решений. А писанина довольно легко автоматизируется.

Что это за джобы-то такие, если потоки надо рожать?

В чем смысл джобов? Вот они и рожают.
достаточно иметь типов компонентов больше одного, чтобы увидеть очевидный прирост в скорости

Ну, ка, ну ка, покажите ка мне этот прирост? ) У вас наверно есть спецуанальный мелкоскоп, для измерений в наносекундах )
Да, и расскажите мне за автоматизацию, очень интересно было бы послушать.
Не знаете, а в этой версии возможность распараллелить EncodeToPNG дали? Или всё еще только в основном потоке?
Всё, что относится к namespace UnityEngine, всё ещё должно выполняться в основном потоке
Sign up to leave a comment.

Articles