О чем, собственно, вопрос, можно понять, прочитав это: https://unity.com/ru/dots
Сейчас я не касаюсь в своём вопросе burst и jobs, только Entity - Component - System, а точнее миграции проекта с КОП/ООП на эту парадигму.
Если с компонентно-ориентированным кодом все понятно - его нужно просто слегка модифицировать по образцу, то вот, что делать с объектно-ориентированным - не ясно. Представим ситуацию: у меня есть несколько C# скриптов, активно использующих наследование. В контексте игры это может быть что угодно - типы врагов, юнитов, персонажей в рпг и т.д. Главное, что все они в целом схожи, но при этом имеют ряд особенностей: например, у каждого есть своя реализация одного метода, у некоторых переопределен ещё один, у кого-то дописан другой. И вот тут возникает сложность: как все это обернуть в ECS?
Можно написать по компоненту/системе для каждого типа врага, но тогда придется буквально копировать 80% кода, что уже сразу недопустимо. Можно разбивать бывший ООП код на некоторое количестве компонентов/систем. Но в таком случае, если мы все же в будущем захотим использовать, скажем лишь половину фич компонента/системы, нам придётся все равно его переписывать. Можно вообще вынести буквально каждый метод, который теоретически может быть не использован в будущем в свой компонент/систему, но в таком случае, рано или поздно мы столкнемся с ситуацией, когда у одной сущности будет 20-30 компонентов вместо 5, как раньше. И как же, тогда, все таки поступать?
Итак, думаю, суть вопроса ясна. Заранее спасибо за ваше мнение.