В данной статье мы дадим полное описание нового движка Unity 5, сравним его с предыдущей версией (Unity 4), расскажем о достоинствах перед другими движками, такими как: Unreal Engine 4, CryEngine 3, поговорим о будущем движка и о том, стоит ли всерьез заниматься геймдевом с Unity3d.
Unity 5
Unity 5 - кросс-платформенный игровой движок для разработки двухмерных и трехмерных приложений и игр под различные платформы. У Unity3d есть две версии: бесплатная и платная. Отличаются они рядом возможностей, которые могут сильно понадобиться при разработке игры. Во-первых, бесплатная версия Unity3d поддерживает только Android, Web Player, PC-платформы. Полная версия позволяет разработчикам выкладывать своё творение под все самые известные платформы, такие как: PC, Linux, Mac, Windows Store, IOS, Android, Windows Phone 10 Store, Blackberry 10, Wii U, PS3, Xbox 360, PS4, Xbox One. Есть возможность делать софт для VR(Virtual Reality), т.е. под очки и шлемы виртуальной реальности: Hololens, Oculus Rift, StarVR и прочие, а также писать программы для Kinect 2.0, LeapMotion. Полную версию Unity 5 можно адаптировать под свои нужды: например, если вас интересует разработка софта под Kinect 2.0, вы можете убрать некоторые элементы меню в интерфейсе и дополнить его своими надстройками, которые реально облегчат разработку.
Возможности Unity 5
Unity3d имеет очень простой Drag and Drop интерфейс, который человек осваивает за месяц. Весь движок (от и до) только на английском языке. Русификации Unity 5 нет. Unity разбит на несколько окон: Hierarchy, где находятся названия всех объектов на сцене, которые можно группировать и легко переходить по ним, Scene, где можно рассмотреть определенную сцену под нужным вам ракурсом, Inspector, который поможет с настройкой выделенного объекта, Project, где видны все материалы проекта, Toolbar (или меню с инструментами).
Unity 5 поддерживает два языка: C#(наиболее используемый) и Javascipt. Разработчику необходимо знать один из языков в совершенстве, а другой на среднем уровне, так как некоторые моменты Unity 5 делает только на одном из двух языков, или это делается намного труднее, чем на другом языке программирования. Предпоследняя версия Unity3d, а именно Unity 4, поддерживала язык программирования Boo(диалект Phyton), но его убрали из 5-ой версии, так как им практически никто не пользовался, да и документации, если честно, на официальном сайте Unity особо не было. Расчеты физики в Unity 5 производит та же NVIDIA PhysX, которая, кстати, отлично с этим справляется. Совсем недавно NVIDIA представила одну интересную вещь - NVIDIA Flex, которую, возможно, в будущем встроят в игровые движки.
Объекты в Unity3d могут быть пустыми, (чтобы объединить несколько объектов в одну группу, т.е. сделать их дочерними GameObject), содержать компоненты, с которыми взаимодействуют скрипты, могут быть названы одним и тем же именем, могут быть присвоены теги, которые служат для того, чтобы скрипт нашел нужный нам объект. К объектам в Unity3d можно присвоить коллайдеры: Box Collider - куб, в который попадает модель объекта, Sphere Collider - сфера, Character Collider - коллайдер, который был специально введен в Unity 5 для использования под персонажей, Mesh Collider - коллайдер, созданный по мешу, то есть повторяющий геометрию объекта, Wheel Collider - коллайдер для колес, Terrain Collider - коллайдер для Terrain - площадки, которую используют для отображения земли.
Анимировать модели в Unity3d можно несколькими способами: создание анимаций в специальных программах, например: 3Ds Max, Blender и прочие, а можно и в самом Unity3d, так как редактор Unity имеет компонент для их создания. Материалы в Unity 5 играют важную роль. Импортированные текстуры в Unity3d прикрепить к объекту нельзя, необходимо создать материал, который можно присваивать игровому объекту. К назначенным материалу шейдерам будут присвоены текстуры. Шейдеры можно редактировать прямо в Unity3d. Unity 5 позволяет
генерировать нормал-мапы(normal-map), лайт-мапы(light-map), различные альфа-каналы и mip-уровни.
В полной версии Unity 5 возможно полное настраивание шейдеров, а в бесплатной - нет.
Особенности Unity 5
Unity 5 имеет две очень важные особенности: Occlusion Culling и Level Of Detail. Обе вещи позволяют сильно снизить нагрузку на центральный процессор, благодаря грамотной детализации. Например, в играх жанра 2D и 3D Runner при преодолении определенной дистанции все, что было позади вас, удаляется, а то, что впереди вас, генерируется. Таким образом, при длительной игре ваше устройство не захламляет ненужная информация. Occlusion Culling не визуализирует геометрию и коллайдеры объектов, находящихся не в поле зрении камеры, а Level Of Detail заменяет детализированные объекты, находящиеся далеко от игрока, на менее детализированные, причем разработчик сам настраивает эту систему. То есть скромный проект может позволить выставить огромные значения в Level of Detail, когда AAA-проекты выставляют его на минимум.
Минусы и плюсы Unity 5
Unity 5 обладает огромным количеством преимуществ перед другими игровыми движками. Коммьюнити Unity 5 на сегодняшний момент является самым большим в мире. На официальном сайте Unity есть специальный раздел, в котором можно найти статистику по игровым движкам. По этим данным Unity 5 используют более 50% разработчиков видеоигр. 20% принадлежат Unreal Engine, а остальные игровые движки - 30%. Для разработки 2D или 3D инди-игр Unity 5 подходит по всем параметрам. В Unity 5 очень просто запекать проекты (билдить). Причем можно создать один проект под множество платформ, что очень сильно облегчает процесс для девелоперов. Все скрипты, используемые в Unity 4, можно будет автоматически исправить в Unity 5.
Разработка ААА-проектов в Unity - самый сложный процесс. Во-первых, любой скрипт в Unity сразу влечет за собой кучу ошибок, которую в будущем необходимо исправить, или переписать скрипт заново. Во-вторых, все ещё обладает плохой оптимизацией. Весь контент, который стоит у вас в окне Project, но не стоит у вас на сцене, будет запечен, а значит, что игра будет весить в разы больше, чем предполагалось. А самое главное, что в интернете были вопросы о том, что проекты, в которые не подключены стандартные настройки, при билде все-равно запекались. Unity в ближайшем обновлении пофиксит этот момент. В движке есть ряд проблем со скроллингом. При приближении к объекту в определенный момент камера приближается медленнее. Если вам нужно максимально близко приблизиться к земле, то иногда это бывает очень сложно сделать. Скорее всего, в ближайших обновлениях скроллинг пофиксят, либо научат им пользоваться, что тоже хорошо. В Unity 5 есть проблемы с мультиплеером. Но, если у вас прямые руки, то он настраивается очень просто. Например, в The Forest некоторые объекты видел один игрок, а другой - нет, а хороший пример - игра HeartStone.
Быть Unity девелопером сегодня очень престижно. В российском сегменте разработчики Unity сильно ценятся, а зарплата хоть у программистов, хоть у моделлеров высока. Так что если вас интересует разработка видеоигр, если вы любите создавать инди-проекты, то смело выбираем Unity!