Interested Article - Unity (игровой движок)

Unity ( unity в переводе с англ. «единство», произносится как «ю́нити») — кроссплатформенная среда разработки компьютерных игр , разработанная американской компанией Unity Technologies . Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих персональные компьютеры , игровые консоли , мобильные устройства , интернет-приложения и другие . Выпуск Unity состоялся в 2005 году и с того времени идёт постоянное развитие.

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

На Unity написаны тысячи игр, приложений, визуализации математических моделей, которые охватывают множество платформ и жанров. При этом Unity используется как крупными разработчиками, так и независимыми студиями .

Возможности

Редактор Unity имеет простой Drag&Drop интерфейс, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе . Движок использует для написания скриптов C# . Ранее поддерживались также Boo (диалект Python , поддержку убрали в 5-й версии) и модификация JavaScript , известная как UnityScript (поддержка прекращена в версии 2017.1). Расчёты физики производит физический движок PhysX от NVIDIA для 3D физики и Box2D для 2D физики . Графический API — DirectX (на данный момент DX 11 , поддерживается DX 12 )

Проект в Unity делится на сцены ( уровни ) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки») . Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями в одной сцене), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям.

Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла).

В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта.

Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.

При импорте текстуры в Unity можно сгенерировать alpha-канал , mip-уровни , normal-map , light-map , карту отражений, однако непосредственно на модель текстуру прикрепить нельзя — будет создан материал, которому будет назначен шейдер , и затем материал прикрепится к модели. Редактор Unity поддерживает написание и редактирование шейдеров. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в 3D-редакторе и импортировать вместе с моделью, а затем разбить на файлы.

Unity 3D поддерживает систему Level Of Detail (сокр. LOD), суть которой заключается в том, что на дальнем расстоянии от игрока высокодетализированные модели заменяются на менее детализированные, и наоборот, а также систему Occlusion culling, суть которой в том, что у объектов, не попадающих в поле зрения камеры, не визуализируется геометрия и коллизия, что снижает нагрузку на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создаётся исполняемый (.exe) файл игры (для Windows ), а в отдельной папке — данные игры (включая все игровые уровни и динамически подключаемые библиотеки).

Движок поддерживает множество популярных форматов. Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат.unitypackage и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity.

UNet (библиотека для реализации мультиплеера в играх на Unity) была удалёна, начиная с версии 2018.4; решение «из коробки» для мультиплеера отсутствует. Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN, Git или Source Gear .

В Unity входит Unity Asset Server — инструментарий для совместной разработки на базе Unity, являющийся дополнением, добавляющим контроль версий и ряд других серверных решений.

Достоинства и недостатки

Как правило, игровой движок предоставляет множество функциональных возможностей, позволяющих их задействовать в различных играх, в которые входят моделирование физических сред, карты нормалей, динамические тени и многое другое. В отличие от многих игровых движков, у Unity имеется два основных преимущества: наличие визуальной среды разработки и межплатформенная поддержка . Первый фактор включает не только инструментарий визуального моделирования, но и интегрированную среду , цепочку сборки , что направлено на повышение производительности разработчиков, в частности, этапов создания прототипов и тестирования. Под межплатформенной поддержкой предоставляется не только места развёртывания (установка на персональном компьютере, на мобильном устройстве, консоли и т. д.), но и наличие инструментария разработки (интегрированная среда может использоваться под Windows и Mac OS) .

Третьим преимуществом называется модульная система компонентов Unity, с помощью которой происходит конструирование игровых объектов, когда последние представляют собой комбинируемые пакеты функциональных элементов. В отличие от механизмов наследования , объекты в Unity создаются посредством объединения функциональных блоков , а не помещения в узлы дерева наследования. Такой подход облегчает создание прототипов, что актуально при разработке игр .

В качестве недостатков приводятся ограничение визуального редактора при работе с многокомпонентными схемами, когда в сложных сценах визуальная работа затрудняется. Вторым недостатком называется отсутствие поддержки Unity ссылок на внешние библиотеки , работу с которыми программистам приходится настраивать самостоятельно, и это также затрудняет командную работу. Ещё один недостаток связан с использованием шаблонов экземпляров ( англ. prefabs ). С одной стороны, эта концепция Unity предлагает гибкий подход визуального редактирования объектов, но с другой стороны, редактирование таких шаблонов является сложным . Также, WebGL -версия движка, в силу специфики своей архитектуры (трансляция кода из C# в C++ и далее в JavaScript), имеет ряд нерешённых проблем с производительностью, потреблением памяти и работоспособностью на мобильных устройствах .

Игры на Unity

Gone Home — Unity

На Unity написаны сотни игр, приложений и симуляций , Unity используется как крупными разработчиками (например, Blizzard ), так и в создании инди-игр . Компьютерные игры на Unity охватывают множество платформ и жанров, характерными примерами которых являются :

История

Первая версия Unity появилась в 2005 году, когда игровой движок был анонсирован на Worldwide Developers Conference . Изначально Unity предназначался исключительно для компьютеров Mac, а в августе вышло обновление, позволяющее работать под Windows. В следующих версиях постепенно добавлялись новые платформы и развёртывания: межплатформенный веб-плеер в 2006-м, iPhone в 2008-м, Android в 2010-м, и далее на игровых консолях Xbox и Playstation .

Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player) , а также с помощью реализации технологии WebGL. Ранее была экспериментальная поддержка реализации проектов в рамках модуля Adobe Flash Player , но позже команда разработчиков Unity приняла сложное решение по отказу от этого.

В декабре 2009 года Gamasutra назвал Unity одним из самых значительных участников на рынке игровых компаний .

Лицензии

Бесплатная версия Unity имеет некоторые ограничения, но для неё есть возможность распространять игры при условии, что ежегодный доход с игры не превышает 100 000 долларов .

Тип лицензии Доход компании в год Экран приветствия Сборка в облачном хранилище Отчёты по производительности Премиум поддержка Доступ к исходному коду Цена (в долларах )
Personal До 100 000 долларов «Made With Unity» и необязательная пользовательская анимация Стандартная Нет Нет Нет Бесплатно
Plus До 200 000 долларов Пользовательская анимация и/или «Made With Unity» Приоритетная Да Нет Нет Тариф отключен
Pro Неограничен Пользовательская анимация и/или «Made With Unity» Одновременная Да Да Нет 2040$ в год или 185$ в месяц
Enterprise Неограничен Пользовательская анимация и/или «Made With Unity» Выделенные ресурсы Да Да Да 3000$ в год или 250$ в месяц
Industry Неограничен Пользовательская анимация и/или «Made With Unity» Выделенные ресурсы Да Да Да 4950$ в год или 450$ в месяц

По другим данным, компания взимает с каждого разработчика ежегодную плату, которая варьируется от $400 до $4000 в зависимости от требуемых функций и размера компании-разработчика .

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

Примечания

  1. (англ.) — 2023.
  2. , p. 16.
  3. , p. 22.
  4. Unity Technologies. (англ.) . docs.unity3d.com . Дата обращения: 13 мая 2022. 13 мая 2022 года.
  5. Unity Technologies. (англ.) . docs.unity3d.com . Дата обращения: 13 мая 2022. 13 мая 2022 года.
  6. Unity Technologies. (англ.) . docs.unity3d.com . Дата обращения: 13 мая 2022. 18 апреля 2022 года.
  7. , p. 21.
  8. , p. 23.
  9. (англ.) . Дата обращения: 24 августа 2018. 24 августа 2018 года.
  10. (англ.) . Дата обращения: 24 августа 2018. 24 августа 2018 года.
  11. , p. 24—26.
  12. (англ.) . Дата обращения: 29 сентября 2017. 5 ноября 2017 года.
  13. , p. 25-.
  14. Dean Takahashi. (англ.) . VentureBeat (21 декабря 2011). Дата обращения: 11 марта 2012. 13 июля 2012 года.
  15. David Helgason. (англ.) . The Unity Blog (23 апреля 2013). Дата обращения: 9 декабря 2014. 29 ноября 2014 года.
  16. Christian Nutt. (англ.) . Gamasutra. — «Unity has become a major player in the market as of 2009, and there's more to come». Дата обращения: 11 марта 2012. 11 мая 2012 года.
  17. (англ.) . Дата обращения: 6 марта 2014. 7 марта 2014 года.
  18. , с. 130.
  19. Unity Technologies. (англ.) . unity.com (18 сентября 2023).

Литература

  • Хокинг, Джозеф. : [ рус. ] . — 2. — СПб : Питер, 2016. — 336 с. — ISBN 978-1617292323 .
  • Торн, Алан. Искусство создания сценариев в Unity: [рус.]. — СПб: ДМК, 2016. — 362 с.
  • Мэтью Болл. Метавселенная. Как она меняет наш мир = Matthew Ball. The Metaverse: And How it Will Revolutionize Everything. — М. : Альпина Паблишер, 2023. — С. 362. — ISBN 978-5-9614-8036-8 .

Ссылки

  • (англ.) — официальный сайт Unity
Источник —

Same as Unity (игровой движок)