Unity: что это за движок, для чего нужен и почему так популярен

Unity: что это за движок, для чего нужен и почему так популярен, image #1

Сейчас стать разработчиком игр гораздо проще, чем каких-нибудь 20 лет назад. Если раньше студиям часто приходилось самим создавать движок под игру, то сейчас есть множество бесплатных инструментов, которые легко освоить и с помощью которых можно создать проект любой сложности. Среди них один из самых известных — это Unity.

Что такое Unity

Unity — это кроссплатформенный игровой движок, созданный компанией Unity Technologies в 2005 году. С его помощью делают одиночные и многопользовательские игры с современной 2D- и 3D-графикой для таких платформ, как ПК, PlayStation, Xbox, Nintendo Switch.

Также на Unity создают игры для браузеров и устройств, работающих на Android и iOS. С помощью Unity можно делать игры с использованием технологий AR и VR. Технологии Unity используются в кино для создания компьютерной анимации, а также в промышленности для разработки иммерсивных 3D-приложений для AR и VR.

Преимущества Unity

Unity — это современный движок, который позволяет делать игры с современной графикой. Его преимущества можно перечислять очень долго. Пройдёмся по основным.

Unity отлично работает с мобильными платформами

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

Благодаря этому на Unity можно создать для смартфона не только очередную вариацию на тему «три в ряд», но и игры с использованием технологий дополненной реальности, как Pokemon Go например.

Интересно и то, что движок позволяет в удобной форме ещё на этапе разработки проверить, как игра будет чувствовать себя на конкретной модели мобильного устройства. Для этого в окне Game есть режим Simulator. Он позволяет прямо в движке посмотреть, как будет выводиться изображение на экран выбранной модели смартфона или планшета. Клик мышкой в этом случае будет равнозначен тапу.

Также есть приложение для смартфонов Unity Remote. Если установить его и подключить смартфон через USB-кабель к компьютеру, то при запуске игры в движке изображение будет выводиться на ваш смартфон. Вы сможете сразу поиграть в неё. Это позволяет протестировать игру на этапе разработки без создания билда.

У Unity низкий порог вхождения

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

При этом использование скриптов на относительно простом в освоении языке C# позволяет запрограммировать логику любой сложности для игры любого жанра и масштаба. По урокам вы за пару дней разберётесь, как сделать свой кликер, раннер или простенький платформер.

Дальнейшее изучение позволит вам создавать игры с более сложными механиками. Для сравнения, порог вхождения в Unreal Engine значительно выше, ведь тот движок использует язык С++, который труднее в освоении, чем С# (впрочем, и на Unity, и на Unreal Engine есть инструменты для визуального программирования, которые облегчают создание игровой логики).

Также у игрового движка за годы существования сформировалось огромное сообщество. Поэтому если при изучении Unity у вас возникнет проблема или непонимание по какому-то вопросу, то на русскоязычных и англоязычных форумах вы обязательно найдёте тех, кто уже сталкивался с этой проблемой и нашёл решение, либо тех, кто поможет вам во всём разобраться.

Снижает порог вхождения и то, что всю игру вы будете делать в понятном визуальном редакторе. Строить уровни, работать с интерфейсом, настраивать шейдеры и генераторы частиц, создавать противников, анимации и даже в некоторых случаях трёхмерные модели… всё это вы будете делать в одном и том же приложении. Разве что для написания кода на C# понадобится открывать отдельно редактор Visual Studio.

Unity — отличный инструмент для прототипирования

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

Более того, пока игра запущена, вы можете что-нибудь изменить, чтобы сразу посмотреть, как изменение скажется на геймплее. Например, можно увеличить скорость персонажа, поменять урон оружия, добавить ещё несколько противников, передвинуть ящик, сделать маленького паука огромным и увеличить его HP до 1000, чтобы он стал боссом.

Все объекты в Unity собираются из компонентов, которые очень легко удалять и добавлять. Это также облегчает создание прототипов, ведь всегда можно наделить любой объект уже проработанной логикой поведения, добавив готовый скрипт. Любой автомобиль можно заставить летать, если добавить ему код, написанный для самолёта. Любой фонарный столб может превратиться в NPC, если добавить ему код с диалоговой системой.

Лёгкое создание игр под разные платформы

Если вы сделали игру на Unity, допустим, для компьютера, то вы очень быстро и легко сможете сделать её же версию для смартфона, планшета, игровой приставки или, например, просто для сайта, чтобы поиграть в неё можно было прямо в браузерном окне. При этом использовать Unity вы можете не только на Windows, но и на macOS.

Как отметил автор книги «Unity в действии» Джозеф Хокинг, это стала следствием того, что изначально Unity создавалась лишь под Mac, а затем её расширили до работы с Windows. Дальнейшая работа над движком добавила в качестве платформ для развёртывания смартфоны и такие игровые консоли, как Xbox и PlayStation.

Большой магазин ассетов

Игру в Unity можно целиком собрать из чужих моделей, спрайтов, кода, расширений для движка и всего остального. Всё это можно найти в Unity Asset Store, зайти в который можно прямо в движке. Есть множество бесплатных моделей. Платных вариантов, разумеется, гораздо больше.

Минусы работы на Unity

Минусов у игрового движка Unity тоже хватает, хотя плюсов на чаше весов всё же больше. Вот основные проблемы, о которых надо знать.

За кодом сложно уследить

Да, игру вы собираете в простом и понятном визуальном редакторе, но код для объектов приходится писать в отдельном редакторе. Если у вас простенькая игра, то вы напишете с десяток скриптов, и в целом всё будет нормально. Но если игра большая и для неё нужно написать под сотню разных скриптов, регулирующих работу десятков разных систем и механик, то в какой-то момент вы можете осознать, что забыли, как объекты и разные скрипты взаимодействуют друг с другом и почему, когда вы открываете дверь, у главного героя внезапно пополняется здоровье.

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

Проблемы с производительностью

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

Какой язык программирования используется в Unity и его главные особенности

Изначально версия Unity 1.0, вышедшая в 2005 году, поддерживала три языка программирования:

  • C#;
  • UnityScript, который был создан под Unity по образцу JavaScript;
  • Boo, похожий на Python.
37 views·1 share