В основе футуристического проекта Megacity для мобильных устройств лежит DOTS

Nordeus: пример использования Unity в разработке

What inspires wow-factor demos like Megacity at Unity community events? Are they just eye-candy or are there real benefits for Unity developers? Belgrade-based Nordeus has been a featured studio at many Unite developer conferences, demoing work drawn from their hit games. But their cutting-edge clips aren’t about showing off – they’re about demonstrating new Unity capabilities that will dramatically change what you can achieve both creatively and programmatically.

Проект

Регулярно демонстрирует новейшие достижения нашей инициативы DOTS «Производительность по умолчанию»

Цель

Улучшает производительность многопоточного кода для всех разработчиков Unity

Платформы

Android, iOS, ПК

Количество сотрудников

3 для Megacity, 20 для Battle Demo

Регион

Белград, Сербия

Информационно-ориентированное программирование ускорило вывод Megacity на мобильные устройства

С ростом количества ядер процессоров высокая эффективность многопоточности становится одной из самых необходимых функций любой вычислительной платформы. Решением Unity в этой области является стек Data-Oriented Technology Stack (DOTS), который объединяет в себе Entity Component System (ECS), систему задач C#, а также компилятор Burst.

Раз за разом вызывая восторг аудиторий на конференциях Unite от Лос-Анджелеса до Берлина, Nordeus демонстрировала преимущества этих и других решений Unity, включая Lightweight Render Pipeline (LWRP), а также вложенные префабы.

Результаты:

  • Простой в разработке и эффективный многопоточный код
  • Оптимизированный рендеринг на бюджетных платформах, например, на мобильных устройствах
  • Ускоренный контроль качества благодаря меньшему количеству ошибок интеграции
Объединяйтесь под флагом DOTS на хакатоне

Ужасно талантливая международная команда

Founded in 2010 by ex-Microsoft engineers Branko Milutinovic, Milan Jovovic, and Ivan Stojisavljevic, Nordeus first published Top Eleven – Be a Soccer Manager (“Football” outside the US), a freemium team-management game. It was enormously successful on Facebook, becoming profitable in three weeks, and was ported to Android and iOS in 2011. Since then, the company has published Golden Boot on iOS and Android, has Heroic: Magic Duel in soft launch, and numerous other games in development stages.

Nordeus has drawn talent from 22 countries to its headquarters in Belgrade, a locale extraordinarily rich in culture and history. They’re routinely cited as a top workplace in Europe and are known as generous contributors to a number of philanthropic organizations.

Two of their top software engineers are Belgrade locals: Jozef Oros and Srdja Stetic-Kozic, who work in the Nordeus Central Tech team with eight others. They are responsible for fostering the tools and techniques used in all Nordeus games, and as Srdja notes, “All of our games are made in Unity.”

Объединяйтесь под флагом DOTS на хакатоне

«Узнав о DOTS, мы тут же связались с Unity, чтобы опробовать этот стек и принять участие в разработке, — сказал Йозеф. — Мы всегда стремимся дать самое лучшее нашим игрокам, и производительность здесь играет важную роль, поэтому мы, естественно, заинтересованы во всем, что способно сделать наши игры быстрее».

Сотрудничество началось со встречи главных технических директоров Unity и Nordeus в Белграде. Nordeus была рада помощи в освоении новых технологий, а Unity искала варианты для проверки возможностей DOTS. Срдья добавляет: «Еще мы хотели сделать нечто классное и эпичное, что мог бы показать Йоаким Анте (сооснователь Unity). Поэтому для Unite Austin (2017) мы решили: а давайте сделаем битву в Heroic: Magic Duel с участием до 100 тысяч бойцов, и порвем зал! Мы были невероятно рады возможности».

Йозеф и Срдья были первыми пользователями DOTS в Nordeus. Они тратили около 90% своего времени на создание игровых систем, особенно систем рендеринга, перемещения бойцов и игровой логики. «DOTS от Unity позволяет нам создавать крутые заклинания с масштабными взрывами, которые вызовут бурную реакцию у аудитории», — говорит Йозеф.

Команда создала Nordeus Battle Demo для доклада на Unite Austin за два месяца, первые четыре недели из которых они занимались программированием и созданием прототипа. Одну из этих недель они провели в Копенгагене с сотрудниками Unity, работая в формате хакатона в одном помещении. «Работать с Джо и его командой было классно. Мы из первых рук узнали очень много о ECS, системе задач C#, о компиляторе Burst и об информационно-ориентированном программировании в целом», — добавляет Йозеф.

Прощание с объектно-ориентированным программированием

Переход на информационно-ориентированное программирование — это серьезная смена парадигмы, которая на первый взгляд может показаться очень сложной. Тем не менее, Срдья отмечает: «DOTS — это принципиально новый способ мышления, но всего лишь за неделю или две мы сумели разобраться со стеком, и эффективность работы программистов увеличилась, а когда нужно интегрировать старый код, ECS позволяет сделать это с легкостью».

Неотъемлемой частью DOTS служит система задач C#, которая создает оптимизированный многопоточный код, управляет конкуренцией (потоками, выполняемыми в произвольном порядке, что приводит к непредсказуемым результатам) и оптимизирует переключение контекста для практически стопроцентной загрузки многоядерных процессоров. Другой компонент — компилятор Burst, основанный на LLVM с учетом особенностей вычисления, который использует задачи на C# для создания высокоэффективного машинного кода, оптимизированного для конкретных требований целевой платформы.

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

Победа в битве за Megacity

The Battle Demo shown at Unite Austin used components from Heroic: Magic Duel. The Nordeus team applied its DOTS expertise primarily on dynamic gameplay elements, with huge numbers of animated units on a limited-size terrain.

This paved the way for its next challenge, as Nordeus took on Megacity, which is a big, open world with 4.5 million objects that need to be rendered, culled, and loaded, 5,000 flying cars needing to be simulated, and 100,000 audio sources that had to be played simultaneously. And all of this needs to work on mobile as well as PC. Jozef said, “For Megacity, Unity’s DOTS was used for everything, like new rendering and animation techniques, UI systems, and even audio. We can use all of this in our existing games, as well as those in development.”

LWRP открывает двери мегаполиса мобильным устройствам

В программный доклад Йоакима Анте на Unite LA 2018 входила невероятно сложная демонстрация в реальном времени из Megacity. В нее были включены 4,5 млн отрисовываемых моделей, 5000 динамических автомобилей и 200 000 уникальных объектов архитектуры. Машины летели по сплайновым полосам, не сталкиваясь, а сам мир озвучивался 100 000 уникальных источников звука, включая неоновые вывески, вентиляторы кондиционеров и автомобили, издающие уникальные звуки. Это создавало насыщенную и реалистичную звуковую картину, и все это неплохо работало на смартфонах.

«Демонстрация Megacity была призвана показать сложную графику на мобильных устройствах с большой частотой кадров. Мы использовали LWRP и несколько измененных шейдеров, чтобы добиться максимального сходства с ПК-версией», — говорит Йозеф. Срдья добавляет: «Когда работаешь над игрой, устанавливающей новую планку качества на ПК, а затем портируешь ее на мобильные устройства, то обычно приходится перерабатывать большую часть: это связано с ограничениями производительности мобильных платформ. Но Megacity к таким случаям не относилась. DOTS позволила без всяких изменений кода перенести игру для ПК вместе со всей графикой и логикой на мобильные устройства».

Unity Lightweight Render Pipeline улучшает рендеринг реального времени за счет оптимизации освещения и шейдинга. В системе используется однопроходный упреждающий рендеринг с одним источником света, дающим тень, и с отсечением света на каждый объект (при тенях от всех источников света) за один проход, что снижает количество вызовов отрисовки.

Вложенные префабы и прыжок в DOTS

«Демофильм Megacity — это еще и демонстрация на Unity, где мы впервые использовали вложенные префабы, и нашим разработчикам это очень понравилось», — говорит Йозеф. Например, этот метод позволяет создать большое здание, которое будет состоять из множества префабов комнат, которые, в свою очередь, будут состоять из множества префабов мебели, и так далее. Разработчики могут разбивать префабы на несколько экземпляров для эффективности работы, многократно использовать любые объекты, большие или маленькие, и работать над различными элементами контента одновременно.

У Nordeus весьма амбициозные планы на разработку продуктов, при этом они на 100% полагаются на Unity и DOTS в программировании. Как говорит Срдья, «Если вы хотите перейти на Unity DOTS, то просто переходите. Не бойтесь забыть о большинстве того, чему вы научились в области объектно-ориентированного программирования!»

Srdja Stetic-Kozic, Senior Software Engineer

«DOTS — это принципиально новый способ мышления, но всего лишь за неделю или две мы сумели разобраться со стеком, и эффективность работы программистов увеличилась, а когда нужно интегрировать старый код, ECS позволяет сделать это с легкостью».

Srdja Stetic-Kozic, Senior Software Engineer
Jozef Oros, Software Engineer

«Узнав о DOTS, мы тут же связались с Unity, чтобы опробовать этот стек и принять участие в разработке. Мы всегда стремимся дать самое лучшее нашим игрокам, и производительность здесь играет важную роль, поэтому мы, естественно, заинтересованы во всем, что способно сделать наши игры быстрее».

Jozef Oros, Software Engineer

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

Согласен