Pull to refresh

Comments 5

Все вот эти системы тонкости это конечно интересно. Но интересует вопрос: когда игры начиная от Heartstone, валхейма заканчивая танковым перестанут лагать? Вообще любые игры на юнити на любом компе лагают.

Хорошая статья, поддерживаю стремление двигать ECS в массы, про монолинки очень понравился подход, возьму, пожалуй, на вооружение, спасибо!

P.S. Путаете связность и связанность

Unity Technologies известна тем, что старается разработать универсальный движок для создания любых игр: от казуальных match-3 до фотореалистичных AAA-проектов. 

Честно говоря, ААА игр на юнити около нуля (возможно чуть меньше) и Unity не собираются с этим ничего делать, да и у них вряд ли выйдет без выкладывания исходников в опенсоурс. Основное приемуществf Unity это относительная простота, поддержка кучи платформ и большое камюнити, так вообщем-то они себя и рекламируют. Про движок, на котором фотореалистичные ААА игры можно делать, они точно не заявляют.

Спасибо автору, годная статья.

Есть вопрос автору: у Вас spawn объектов происходит через подтягивание заранее заготовленных префабов из ресурсов. А Вы отдельную обертку (что-то типа конвертера из DOTS) не стали прикручивать уже для тех объектов, которые и компоненты используют, и уже расположены на сцене?

Вообще это очень просто. Достаточно разместить ECS-монобехи в родительском трансформе какого-нибудь public Transform EcsEntity;, который стоит сохранить в SceneData. А потом завести систему, которая при инициализации будет запрашивать все MonoEntity из SceneData. Что-то типа такого:

public MonoEntity[] FindEntity()  
{
		return EcsEntity.GetComponentsInChildren<MonoEntity>();
}

А потом просто инициализировать их все в отдельной системе:

public void Init()  
{
    var monoEntities = _scene.FindEntity();
  	foreach (MonoEntity monoEntity in monoEntities)
  	{
      	EcsEntity entity = _world.NewEntity();
        monoEntity.Make(ref entity);
  	}
}

Конечно стоит это делать на этапе сборки уровня в редакторе. Кешировать внутри SceneData, подтягивая через кастомную тулу-редактора все новые MonoEntity, которые размещаются на сцене, но это уже тянет на отдельную статью на тему написания собственных редакторов для Unity)

Sign up to leave a comment.