Call of Duty: Mobile была разработана на основе типичного для мобильных игр движка Unity. В этой статье рассмотрим особенности данной платформы.
Что такое Unity?
Unity – это движок, который объединяет в себе целый набор инструментов, облегчающих создание новых проектов. Он состоит из:
- Визуального редактора. Отвечает за текстуры, то есть внешний вид объектов и персонажей, интерфейс и т.п.
- Редактора кода.
- Редактора скриптов. Он нужен для создания логики поведения объектов, например при каком действии пользователя оружие выстрелит.
При этом разработчик может в режиме реального времени оценивать качество собственной работы, не покидая платформу. Ему достаточно просто запустить проверку кода/скрипта. В случае же с визуальным редактором создатель текстур будет видеть результат каждого своего действия.
Особенностью движка Unity можно назвать то, что его создатель предусмотрел специальные инструменты для создания точных копий реальных объектов в трехмерной плоскости. Благодаря этому разработчику не нужно пользоваться сторонним софтом для создания комнат, открытых локаций и моделей оружия, снаряжения, техники и т.п.
Возможности Unity
Unity можно назвать готовой платформой для взаимодействия объектов между собой в рамках одной виртуальной сцены. Она значительно упрощает проработку поведения и внешнего вида отдельных элементов, ведь их видно в совокупности, а значит, и тестировать их можно вместе, а не по отдельности.
Фишкой Unity является встроенный физический движок, который уже имеет сотни готовых пресетов с различными настройками физики виртуального мира. Создатель игры может бесплатно взять любой из них и попробовать реализовать в своем проекте. Если отдельные аспекты готового варианта ему не понравятся, то настройка займет не более 20 минут.
В каждый пресет входит готовая физика твердых (дерево, оружие, детали транспорта) и мягких (волосы, трава, листва) деталей. При этом система проверяет соответствие параметров однотипных предметов, чтобы не было таких ситуаций, когда вода в одной луже колеблется в левую сторону, а в соседней — в правую.
Стоит уточнить, что имитация движения объектов и физических явлений происходит с использованием разработки Nvidia PhysX. Она позволяет сделать игру действительно похожей на реальный мир, так как все основные законы физики будут соблюдены.
Если же говорить непосредственно о программировании, то в данном движке используется язык C Sharp (С #). Он достаточно простой в освоении, поэтому даже начинающий программист сможет создавать квесты с разветвленной структурой, масштабные события с десятками триггеров и т.п.
При этом разработчик способен настроить каждый элемент интерфейса под свои нужды, чтобы все необходимые инструменты были на одном экране. Благодаря этому на редактирование и создание программного кода уходит намного меньше времени, ведь исключаются лишние действия.
Визуальный редактор Unity работает с шейдерами, картами отражений, однако нужно обратить внимание, что последние применяются к модели лишь после применения шейдера.
Если вы создаете какую-то типичную анимацию, то в библиотеки найдете огромный арсенал готовых вариантов. Кроме того, возможен импорт из других редакторов трехмерной графики, например: Blender, 3DsMax.
Если же графика и анимации получаются очень тяжелыми, что даже современный компьютер с мощным оборудованием не справляется, разработчик может активировать опцию Level Of Detail. Она снижает общую детализацию изображения при отдаленном просмотре. Мелкие элементы станут видны только при приближении. На прорисовку требуется время, но зато оборудование не будет перегреваться, а софт не залагает.
Если же разработчик занят разработкой многопользовательской игры, то в Unity Asset Server есть арсенал инструментов для реализации и тестирования идеи. Вы сможете узнать, насколько карта подходит для мультиплеера, как взаимодействуют персонажи, контролируемые игроками, и т.п.
Почему выбирают Unity 3D
Как уже было сказано, даже начинающий разработчик без глубоких знаний в программировании, создании визуальных эффектов сможет создать качественную игру. Это обусловлено тем, что в Unity 3D применен компонентноориентированный подход, то есть пользователь реализует модель главного персонажа и сразу же добавляет способы управления им или дополнительные предметы (рюкзаки, скины, оружие).
Благодаря интерфейсу Drag & Drop разработка и тестирование готового продукта происходят в одном окне.
Второй сильной стороной платформы Unity является огромный арсенал ассетов, плагинов, которые можно импортировать в собственный проект. Благодаря этому программисту или художнику не придется самостоятельно прорабатывать типичные детали. Достаточно просто скачать готовый элемент и внедрить в свою работу.
При этом в библиотеку входят не только мелкие разработки, но и целые модели героев, паттерны поведения персонажей, контролируемых искусственным интеллектом.
Unity выбирают также из-за того, что платформа способна работать на всех необходимых платформах и импортировать готовые наработки между операционными системами Windows, Linux, OS X, Android, iOS, а также на консоли PlayStation, Xbox, Nintendo и даже современные устройства виртуальной и дополненной реальности.
Не менее важна и поддержка DirectX и OpenGL, распространенных эффектов рендеринга и трассировки лучей, без которых создать качественную трехмерную игру просто невозможно.
Наконец, платформа Unity доступна бесплатно, поэтому даже независимые разработчики могут попробовать свои силы и реализовать идеи. Конечно, у базовой версии есть ряд недостатков, но необходимый функционал доступен. Если же вы захотите получить доступ ко всем опциям, ежемесячная подписка стоит всего 125 долларов США в месяц. Это достаточно бюджетно, если сравнивать с другими движками, использующимися для создания трехмерных игр.
Недостатки Unity
Если же говорить о недостатках движка, то на Unity достаточно сложно создать игру сложнее платформера. Для внедрения сложных компонентов и скриптов необходимы глубокие знания языка C#, несмотря на наличие готовых пресетов. Их все же придется дорабатывать и настраивать под проект.
Кроме того, разработчики негативно высказываются о скорости работы платформы. Масштабные события с десятками взаимосвязанных компонентов требуют огромного количества ресурсов, поэтому создателю игры придется отдельно проработать оптимизацию софта. В противном случае мобильная игра может не запуститься даже на мощном iPhone.
Кроме того, готовые видеоигры на движке Unity получаются достаточно тяжелыми. Даже простой пиксельный проект занимает пару сотен мегабайт. Если он создан для персонального компьютера, то проблем нет. Однако в случае с мобильными телефонами, у которых ограничено пространство на диске, придется провести глубокую работу по сокращению размера файлов.