Ads 468x60px

Сильные стороны и преимущества Unity

  Любой игровой движок предоставляет множество функциональных возможностей, которые задействуются в различных играх. Реализованная на этом движке игра получает все эти функциональные возможности, кроме того, добавляются ее собственные игровые ресурсы и код игрового сценария. Unity предлагает моделирование физических сред, карты нормалей, преграждение окружающего света в экранном пространстве (Screen Space Ambient Occlusion, SSAO), динамические тени… список можно продолжать долго. Подобным набором функциональных возможностей могут похвастаться многие игровые движки, но у Unity есть два основных преимущества перед другими передовыми инструментами разработки игр: чрезвычайно производительный визуальный рабочий процесс и мощная межплатформенная поддержка.


  Визуальный рабочий процесс представляет собой достаточно уникальную вещь, выделяющую данный инструмент из большинства других сред разработки игр. В то время как остальные инструменты разработки игр зачастую представляют собой мешанину разрозненных частей, которые требуется контролировать, или, возможно, библиотеку, для работы с которой нужно настраивать собственную интегрированную среду разработки (Integrated Development Environment, IDE), цепочку сборки и прочее в этом роде, рабочий процесс в Unity привязан к тщательно продуманному визуальному редактору. В этом редакторе вы будете компоновать сцены будущей игры, связывая игровые ресурсы и код в интерактивные объекты. Именно он позволяет быстро и рационально создавать профессиональные игры, обеспечивая невиданную продуктивность труда разработчиков и предоставляя в их распоряжение исчерпывающий перечень самых современных технологий в области видеоигр.

ПРИМЕЧАНИЕ Большинство других инструментов, оснащенных центральным визуальным редактором, страдают от ограниченной и недостаточно гибкой поддержки возможности написания сценариев, но инструмент Unity лишен этого недостатка. Несмотря на то что все создаваемое для Unity в конечном счете проходит через визуальный редактор, основной интерфейс включает в себя множество связанных проектов с нестандартным кодом, запускаемым в игровом движке Unity. Это своего рода аналог связывания классов в параметрах проекта для таких интегрированных сред разработки, как Visual Studio или Eclipse. Поэтому опытные программисты не должны пренебрегать средой Unity, считая, что это чисто визуальный инструмент создания игр с ограниченной возможностью программирования!


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

  В дополнение к значительным преимуществам в плане производительности, которые нам дает редактор, у набора инструментов Unity существует еще и сильная межплатформенная поддержка. В данном случае под этим словосочетанием подразумеваются не только места развертывания (вы можете развернуть игру на персональном компьютере, в Интернете, на мобильном устройстве или на консоли), но и инструменты разработки (создание игры может осуществляться на машинах, работающих под управлением как Windows, так и Mac OS). Эта независимость от платформы явилась результатом того, что изначально инструмент Unity предназначался исключительно для компьютеров Mac, а позднее был перенесен на машины с операционными системами семейства Windows. Первая версия появилась в 2005 году, но к настоящему моменту вышли уже пять основных версий (с множеством небольших, но частых обновлений). Изначально инструмент Unity поддерживал разработку и развертывание только для машин Mac, но через несколько месяцев вышло обновление, позволяющее работать и на машинах с Windows. В следующих версиях постепенно добавлялись все новые платформы развертывания, например: межплатформенный веб-плеер в 2006-м, iPhone в 2008-м, Android в 2010-м и даже такие игровые консоли, как Xbox и PlayStation. Совсем недавно появилась возможность развертывания в WebGL — новом фреймворке для трехмерной графики в веб-браузерах. Найдется немного игровых движков, поддерживающих такое количество целевых платформ развертывания, и ни один из них не делает операцию развертывания на разных платформах настолько простой.

  Между тем в дополнение к этим основным достоинствам идет и третье, менее бросающееся в глаза преимущество, обеспечиваемое модульной системой компонентов, которая используется для конструирования игровых объектов. «Компоненты» в такой системе представляют собой комбинируемые пакеты функциональных элементов, поэтому объекты создаются как наборы компонентов, а не как жесткая иерархия классов. Другими словами, компонентная система являет собой альтернативный (и обычно более гибкий) подход к объектно-ориентированному программированию, в котором игровые объекты создаются путем объединения, а не наследования. Сравнение подходов демонстрирует диаграмма на рис. 1.1.


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