Сегодня мы обсудим некоторые из интересных и интересных новостей о Unity: Data-Oriented Technology Stack, Unity Physics, Project Tiny.

ТОЧКИ

Как следует из названия, новая DOTS Unity в значительной степени основана на новой методике проектирования и программирования, ориентированной на данные. Из нашего прошлого опыта мы знаем, что можем писать наш код C # объектно-ориентированным способом в Unity, но команда Unity обещает совершенно другой подход к дизайну игр, и этот DOD (Data-Oriented Design) во многом отличается от OOD. Я не буду утруждать себя объяснением различий между ними в этом посте, поэтому, если вы не знакомы с этими концепциями, прочтите следующую статью:

Https://medium.com/@jonathanmines/data-orient-vs-object-oriated-design-50ef35a99056

В прошлом 2018 году на GDC Unity анонсировала новую реализацию паттерна Entity Component System, и они назвали ее Unity ECS, которая стала DOTS, как нас называют.

Unity DOTS состоит из 3 основных частей:

  • Система заданий C #
  • Сущность-Компонент-Система
  • Компилятор Burst

Система заданий C #

«Новая система заданий C # использует преимущества нескольких ядер в современных компьютерах. Он разработан, чтобы открыть этот подход для пользовательских сценариев C # и позволяет пользователям писать безопасный, быстрый, функциональный код, защищая при этом от некоторых ловушек многопоточности, таких как условия гонки ».

Новая система заданий C # весьма обнадеживает разработчиков игр, которые хотят по умолчанию писать поточно-ориентированный, быстрый и организованный код. Как говорят в команде Unity «Производительность по умолчанию».

Сущность-Компонент-Система

«Лучший подход к игровому дизайну».

ECS - это новая реализация паттерна Entity-Component-System в Unity, которая имеет множество преимуществ для разработчиков игр. ECS отличается от классических сценариев, основанных на моноповедении.

  • Сущность: Сущность - это всего лишь 32-битное целое число, содержащее только данные своих компонентов.
  • Компонент: набор данных, которые мы хотим обработать, это может быть Rigidbody, Collider или Position, который представляет собой просто вектор float3.
  • Система: системы - это набор инструкций для выполнения определенных работ с объектами, имеющими определенные компоненты.

Проще говоря, Система использует данные Компонента, хранящиеся в Сущности, для выполнения работы с этой Сущностью. .

ECS группирует в памяти все сущности, которые имеют точно такие же компоненты, набор компонентов называется архетипом. Примером архетипа может быть «Скорость и жесткое тело».

При таком макете данных вместо того, чтобы пользовательский метод Update выполнял поиск других компонентов для работы во время выполнения, в среде ECS вы должны статически объявить «Я хочу выполнить некоторые операции для всех сущностей, которые имеют как скорость, так и скорость». Компонент RigidBody.

Предварительная версия пакета ECS доступна в диспетчере пакетов как «Сущности».

Компилятор Burst

Компилятор Burst - это негласный прирост производительности, который является результатом того, что система компонентов сущности более эффективно организовала ваши данные. По сути, пакетный компилятор оптимизирует операции с кодом в зависимости от возможностей процессора на вашем плеере. Он преобразует вашу работу C # в чрезвычайно производительный машинный код.

Система заданий C # + ECS + пакетный компилятор = DOTS!

Комбинация этих трех факторов позволяет создать игру, которая будет работать намного быстрее, чем ее версия, основанная на OOD. Если вам интересно, насколько быстро это работает, просто посмотрите эти демонстрации от Unity Technologies и узнайте больше о DOTS:

ТОЧКИ

Демонстрация мегаполиса

ECS Tech Demo

Unity Physics Engine и Havok Physics

Команда движка Unity продолжает улучшать основные компоненты движка, такие как Unity Physics и Havok Physics для DOTS. Новый Unity Physics написан с использованием инфраструктуры DOTS и доступен с Unity 2019.1 Beta.

Система Unity Physics предлагает следующее:

Конструкция без кеширования совместима с архитектурой отката сети для критически важных для ввода симуляций, таких как файтинги, шутеры от первого лица и т. Д.

Совместимость и совместимость с данными с Havok Physics.

Мы можем догадаться о других новостях о Unity Physics, поскольку это важно для особо требовательных клиентов.

Проект Tiny

Project Tiny - это новая модульная среда выполнения и режим редактора Unity, предназначенная для создания игр и приложений, которые могут загружаться мгновенно и без установки. На сегодняшний день он доступен в виде пакета предварительной версии для Unity 2018.3, который называется Tiny Mode, через диспетчер пакетов.

Project Tiny предлагает вам новый способ разработки вашей игры. С Project Tiny вы сможете создавать свои собственные компоненты и системы, используя новую структуру DOTS.

Project Tiny еще новичок, но это не значит, что вы не можете использовать его прямо сейчас. TypeScript - единственный язык, на котором вы можете писать, но скоро появится поддержка C #.



Подробнее о Project Tiny

Ресурсы: https://github.com/Unity-Technologies/EntityComponentSystemSamples