April 8, 2020

Unity. Один движок, много возможностей

Как вы наверняка уже знаете, Unity — это не только коллективный разум, с которым развлекался Рик в одном из эпизодов «Рика и Морти», но и среда разработки — игровой движок. Однако область его применения далеко не ограничивается одними лишь играми. В этой статье мы приведем несколько примеров использования Unity.

Немного про Unity

Сторонники Unity не устают говорить о его простоте, удобстве и интуитивно понятном интерфейсе. Разработка игр в Unity, по их словам, не требует особых знаний. Удобный и функциональный графический редактор движка позволяет создавать и тестировать объекты в реальном времени. Кроме того, Unity имеет внушительную библиотеку ассетов и плагинов. А также возможность добавлять в игру целые заготовки без какой-либо возни с программированием. Unity поддерживает множество платформ и технологий. Созданные в движке продукты, могут работать на VR- и AR-устройствах. Еще один немаловажный плюс: пока доход от игр, созданных на базе Unity не превышает $100 тыс. за последние 12 месяцев, движком можно пользоваться бесплатно и без ограничений в функционале. Лицензия «Plus» стоит $40 в месяц и необходима при доходе до $200 тыс. в год, а если годовой доход превышает $200 тыс., то за $150 в месяц вы получите лицензию «Pro».

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

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

Применение в казуальных играх

Марткиатов Никита. Unity Developer в компании Appreal.

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

Иногда бывают задачи, связанные с анимацией, оптимизацией, UI, но в текущее время моя зона ответственности — кор геймплейной логики. Это основные правила игры. Если взять матч 3, то тайлы должны падать, если совместить три тайла, они должны сматчиться, если больше трех — создать новый тайл (бустер, например). Эта пошаговая логика записана в коре. А клиент просто дает ему задачу. Вот мы нажали по таким координатам на такую-то клетку, кор это все просчитывает, записывает список событий, а потом возвращает клиенту, а он эти все события отрисовывает.

Мне нравится этот подход отделения кора логики геймплея от клиентской логики. Благодаря этому мы разом получаем список всех событий. В коре они происходят за один тик (кадр), а клиент уже может отрисовывать их с анимацией, ждать завершения других анимаций и так далее.

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

Почему ты выбрал именно Unity?

Когда я начинал, то попробовал Unity, Unreal Engine и CryEngine. Тогда я был ноль во всех трех. В Unity все интуитивно понятно. Я быстро начал ориентироваться в сцене и в том, как это вообще работает. В остальных движках я такого не заметил. Поэтому я выбрал Unity.

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

Охранное ПО и Air Consol

Ильчишен Александр. Front-end developer в компании SweetSoft

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

Windows версия их приложения была написана не очень красиво. И они решили сделать 3D версию с использованием Unity, для объединения всех охранных систем. По проекту делали здание и по чертежам размещали в нем охранное оборудование. Они использовали там очень много систем, вплоть до распознавания лиц, номеров и так далее. И все это в таком масштабном, красивом 3D. Человек, использующий программу, мог смотреть где и что происходит, прямо как в Симс. Вот такая у них была задумка.

Мне очень нравилось там работать. До этого я вообще не представлял, что Unity можно использовать в каких-то не игровых целях. Вообще, очень многое из того, что у меня сейчас получается, происходит благодаря курсу «Unity 3D Developer». Раньше я боялся искать работу. Думал, а вдруг я не справлюсь, или подведу человека, который будет рассчитывать на меня. После курсов появилась уверенность в себе. Я хотел, чтобы полученные знания окупили себя. Это нормальная практика.

Что ты делал для охранного ПО?

В основном, фикс UI проблем.

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

На самом деле много полезных вещей можно делать на Unity. Например, сейчас для диплома я буду делать игрушку на Air Consol. Это сервис, который позволяет прямо в окне браузера запустить приложение и через QR код подключить смартфон в роли контроллера. Вы можете сидеть пять-шесть человек возле одного экрана и играть прямо в браузере. И у них есть API для Unity. То есть на Unity можно собирать игрушки и загружать туда.

Расскажи подробней

Плагин Air Consol позволяет дебажить, настраивать контроллеры и так далее. Сам контроллер, который будет отображаться на смартфоне, пишется на HTML, а обработчики для кликов и так далее — на JS. Они там между собой общаются, а Unity ловит их сообщения, читает и выполняет заданные функции. Ты можешь себе на телефоне отобразить, допустим, health bar персонажа, и когда ему наносят урон, то его значение будет уменьшаться.

Air Consol легковесная. Никакого супер железа тебе не нужно, потому что все запускается в облаке. Единственное, должно быть достаточно оперативной памяти. Игрушки там, конечно, не сильно мудреные, но на пару часов зависнуть с друзьями хватает.

Вот это уже что-то. Охранное приложение в 3D и консоль с вычислениями в облаке и смартфонами вместо контроллеров. Вполне в духе футуризма. Что дальше? Продвижение бизнеса и обучение в VR?

AR- и VR- приложения

Андрей Горлов. Junior Unity Developer в студии по созданию интерактивных решений для бизнеса в VR\AR

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

Когда я начал искать работу, то долго не мог пройти собеседования. Тестовые задания я делал, но теоретическую часть валил. Потом мне посоветовали курс «Unity 3D Developer» и я прошел его удаленно.

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

Спустя полгода после окончания курса, я прошел собеседование в студии, в которой сейчас работаю, сделал тестовое задание и через две недели приступил к работе — ровно через год после того, как поступил на курсы.

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

Ты занимаешься проектами от начала до конца или подключаешься на каком-то этапе?

Есть проект, в который я влился и делаю его. Есть проекты с нуля. Мне дают задачу, тз, дают графику, которая должна использоваться и я приступаю к работе.

Из-за карантина нас распустили на удаленную работу. Так как нет возможности часто быть в офисе для тестирования проектов в VR, я беру VR-шлем домой, чтобы тестировать текущие проекты. Теперь понимаю, насколько круто, когда есть личный шлем. Особенно в сложившейся ситуации.

Что ты можешь сказать о Unity?

Все свое время обучения, я считал Unity игровым движком. Я знал, что можно делать какие-то AR и VR решения, но думал, что это очень сложно. Я представлял, что программирование «не игр» — это скучно. Сейчас моё мнение значительно изменилось.

Мне кажется, это одна из самых простых сред для того, чтобы делать что-то интересное.

Я не хотел заниматься программированием, только из-за того, что нельзя было пощупать результат своей работы. Unity мне понравился тем, что я могу визуализировать свои идеи. Это первое. А второе, это то, что за технологиями VR и AR стоит будущее, которое шаг за шагом уже наступает, а Unity очень хорошо помогает в его создании.

Заключение

Как видим, Unity неплохо показал себя и в виртуальной реальности. Кроме того, он давно вышел за рамки небольших инди-компаний. Например, Toyota использует его для разработки VR- и AR-инструментов, повышающих эффективность и качество дизайна, проектирования и обучения. А в Audi с помощью Unity создают иммерсивные и интерактивные среды в реальном времени, улучшая процесс взаимодействия сотрудников и ускоряя ход разработки и инноваций.

Unity — это многофункциональный инструмент для реализации идей. Он включен в пайплайн многих крупных компаний. Чтобы получить знания, необходимые для востребованного современного специалиста, записывайтесь на курс «Unity 3D Developer», как сделали это в свое время герои статьи.

Статью подготовил Олег Мощенко.

Подписывайтесь на нас в Facebook, Telegram, Vkontakte, Pinterest.