Unity3d. Начало работы, практические советы

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

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

Ядро игры

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

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

Почему Unity?

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

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

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

Unity - новый движок для создания 3D игр. Многие задаются вопросом о том, почему нужно выбрать именно его. Как уже было сказано ранее, вас никто не заставляет останавливать свой выбор именно на нем. Однако сейчас вы узнаете, чем же он так выделяется на фоне остальных.

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

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

В завершение стоит сказать про стоимость - именно она становится для многих начинающих разработчиков. В данном случае она не слишком высока - всего полторы тысячи долларов. При желании вы можете воспользоваться бесплатной версией - она полностью функциональна, но не имеет определенного количества полезных функций. Также готовый проект постоянно будет отображать эмблему Unity в процессе игры. Теперь вы понимаете, почему Unity 3D - популярный игровой движок. Но неужели у него нет минусов? Сейчас и об этом поговорим.

Минусы Unity

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

Использование Unity

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

Русский Unity

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

Добавление скриптов

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

Unity 3D - это бесплатный, набирающий популярность мощный движок для создания и разработки игр и различных приложений. С его помощью вы можете создавать игры для различных платформ Windows, iOS, Blackberry, OSX, Wii, Android, Playstation 3, Xbox и Flash. Каждое созданное приложение в программе Unity 3D способно поддерживать OpenGL и DirectX.

Обзор игрового движка Unity 3D:

Обозреватель ресурсов и список игровых объектов (Project, Hierarchy)

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

Список игровых объектов или же иерархия – это некая структура из объектов. Тут можно назначить один объект дочерним у другого путем перетаскивания этого объекта в другой, а так же можно выбрать объект для редактирования его в инспекторе.

Инспектор (Inspector)

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

Верхняя панель

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

Редактор сцен

В редакторе сцен строятся игровые уровни. Уровни состоят из игровых объектов, поведение которых программируется на любом из трёх языков программирования - javascript, C# и Boo. Любой объект, будь то 3D модель, эффект частиц, префаб, или камера считается игровым объектом и отображается в списке игровых объектов. Чтобы назначить скрипт игровому объекту, который находится в сцене, достаточно перетащить его на этот объект, что очень удобно. Положение объектов в сцене легко меняется. Для этого нужно просто перетаскивать их по трём координатным осям в то место, куда вы хотите. Материалы объектам назначаются из обозревателя ресурсов, которые так же перетаскиваются на объект. В верхней части окна сцены можно изменить режим отображения содержимого сцены. Список режимов: textured, wireframe, tex – wire, render paths, и light map resolution. Перемещение по сцене осуществляется клавишами W, A, S, D с зажатой правой кнопкой мыши.

Консоль (console)

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

Общее меню

В меню File можно создать, открыть и сохранить сцену или проект, а так же скомпилировать игру. Меню Edit более насыщено, чем все остальные. Основные его пункты – это настройки управления, графики, физики, звука и еще много чего. Меню Game Object позволяет создавать различного типа игровые объекты и управлять ими. В меню Component можно добавлять игровому объекту компоненты, например скрипты, или источники звука. В меню Terrain можно создать и управлять ландшафтом. В меню Window можно управлять всеми окнами редактора. В меню Help находится справочник по скриптам, мануал и различного рода помощь.

Компиляция игры (build settings)

Компиляция игры выполняется довольно просто, из пункта меню File->Build settings. В настройках компиляции вы указываете, под какую платформу нужно строить проект, какие сцены будут компилироваться и общие настройки проекта. В общих настройках проекта можно сменить иконку готовой игры, её название, автора проекта и еще много чего.

Графика

Графика в Unity3D на достаточно высоком, современном уровне. Довольно качественные тени и шейдеры. Благодаря полностью настраиваемой графике, игры, созданные на Unity3D, запускаются даже на старых компьютерах. Однако разработчикам нужно будет попотеть над оптимизацией, так как большое количество высоко полигональных моделей и большой ландшафт, заселённый растительностью, сильно сказывается на производительности.

Большинство моих знакомых, когда узнают, чем я занимаюсь, спрашивают: «На чём ты создаешь игры?». После ответа: «на Unity», на их лицах возникает множество вопросов, таких как:

Почему на Unity?
Почему не на Cryengine?

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

Unity — это игровой движок, позволяющий создавать игры под большинство популярных платформ. С помощью данного движка разрабатываются игры, запускающиеся на персональных компьютерах (работающих под Windows, MacOS, Linux), на смартфонах и планшетах (iOS, Android, Windows Phone), на игровых консолях (PS, Xbox, Wii).

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

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


Почему же я выбрал для себя данную программу?

Всё дело в том, что когда на дворе был далёкий 2013 год, из игровых движков, которые могли не плохо отрисовывать графику в трёх мерном изображении, выбирать не приходилось. О таких движках, как Cryengine и Unreal Engine, вообще не приходилось слышать, и выбор несомненно пал на Unity3D версии 4.3. С тех пор я плотно засел за создание игр, и создаю их по сегодняшний день. За это время выпустил пару проектов, которые неплохо вошли в массы.

Что же касается самого Unity, за это время он сильно развился, и я считаю, что обошёл своих конкурентов на несколько шагов вперёд. Кроме этого, программа никогда не подводила меня, и я получал от неё всё, что хотел. Захотел сделать стратегию в реальном времени — сделал; шутер — пожалуйста; аркаду — вообще легко. Несмотря на то, что Unity является кроссплатформенным убийцей, на нём можно сделать всё что угодно. Главное, чтобы были идеи, а с реализацией вам поможет наш сайт «Твои руки».

Также стоит отметить, что Unity3D имеет несколько тарифных планов. Самый распространенный, конечно же, бесплатный «personal» . Его можно использовать до того момента, как ваша компания или, иначе говоря, все ваши игры, не начнут зарабатывать по 100 000$ в год. Для инди-разработчика, я считаю, просто великолепное предложение, да и платная версия стоит недорого. Plus-версия стоит 35$ в месяц , а Pro-версия стоит 125$ в месяц .

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

Обзор новой версии Unity3D

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

Сложно представить, что мог бы существовать условно бесплатный движок, на котором реально создать компьютерную игру. Однако, этот движок существует. Он трёхмерный, обладает нормальным IDE, встроенной физикой, аудио-движком и прописанными возможностями сетевого мультиплейера. Движок Unity поддерживает Windows, IOS, Android, операционные системы приставок Playstation, Xbox и Nintendo Wii.
Сложно представить, что Unity обладает возможностями, которые позволяют собрать блок команд в специальную версию для плагина, который встраивается в браузер. Таким образом, Вы сможете получить в окне браузера 3D картинку без занижения разрешения текстур и качества моделей.

Вообще, есть упоминания о технологиях, которые ставили своей целью работу с 3D в сети Интернет, в частности ActiveWords и VRML. Но все эти системы вытеснил Flash (в дополнении с Java и Silverlight). Прочие технологии существуют, но в данный момент, существенно угнетены технологией Flash.

Релиз третьей версии Unity на самом деле заставил обратить на этот движок внимание даже гигантов, разрабатывающих игры исключительно во Flash. Так что же всё-таки составляет суть и принципы движка Unity?
Unity – полноценный игровой движок, который направлен на то, что весь процесс разработки игры (за исключением скриптинга и подготовки игровых ресурсов) будет проводиться в отдельном редакторе.

Рассмотрим этот движок в сравнении с UnrealEngine3 .

Достоинства Unity:

  • IDE: сочетание редактора сцен (в комплексе общего редактора) с редактором игровых объектов и редакторов скриптов. Дополнительно прилагаются генераторы деревьев и террейнов.
  • Улучшенные возможности скриптинга, а именно в отличие от вышеуказанного движка, в Unity доступны три языка: JavaScript, C# и разновидность Python’s Boo.
  • Кроссплатформенность – как уже упоминалось выше, поддерживаются Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 и XBox 360, не все из которых, конечно, доступны в бесплатной лицензии. Ну и веб-плагин, конечно, забывать не стоит.
  • Современный уровень графики, способный конкурировать с иными движками. Unity, безусловно, проигрывает UnrealEngine по количеству реализованных возможностей. Однако Unity обладает такими возможностями, как deferred освещение, стандартный набор постпроцессинговых эффектов, SSAO, ускоренная проработка лайтмапов.
  • Достойным образом проработанный физический движок.
  • Масштабируемость и производительность. Большую часть простых процессов движок обрабатывает на превосходном уровне.
  • Запуск любого приложения на Unity в веб-плагине.
  • Невысокая цена за полную лицензионную версию для крупного веб-разработчика.

Недостатки Unity:

  • Закрытость кода. Невозможность получения исходных кодов движка даже по лицензии.
  • Невозможность дополнения физики движка сторонними возможностями. Вы не сможете добавить в движок стороннюю физику, либо SpeedTree.

Реальные минусы сложно определить с первого взгляда. Движок производителен, стабилен и лёгок в применении.

У большинства малочисленных команд разработчиков компьютерных игр основной проблемой часто становился именно движок. Достаточно сложно писать с нуля единственному программисту в команде. Нужен полноценный бесплатный движок, и нужен он сразу, программист начинает искать бесплатные решении (Ogre, Irrlicht). Эти движки не так уж и плохи (Torchlight написан на Ogre), но они сложны в освоении и требуют не одного программиста, а целой команды. Конечно, можно обратиться к наборам типа GameMaker, но серьёзную игру с его помощью собрать сложно.

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

Собственно IDE:


Можно прямо в IDE путём нажатия кнопки Play протестировать текущую сцену.


Встроенный инспектор классов обрабатывает последние на предмет переменных и позволяет менять их «на лету», что значительно экономит время работы.


Справа расположены инспекторы префабов (заготовки объектов), слева – энтитей (объекты, расположенные в текущей схеме). В процессе просмотра уровня можно остановить его, и просмотреть текущее состояние объектов. Это экономит время, Вам не придётся часто читать логи или выискивать одну небольшую переменную среди них.


Разработчики проекта ААА-класса скорее всего напишут свой движок или купят что-то наподобие UnrealEngine3. Но если количество программистов невелико, то написание собственного движка может оказаться черезчур затратным. Скорость и сложность разработки браузерной казуальной игры на Unity значительно выше, чем на Flash, а графическое превосходство – очевидно.

Также на движке Unity вполне можно писать сайты, презентации, визуализировать научные проекты.

Стоит дать Unity шанс – этот движок подкупает неискушённого пользователя своим удобством, гибкостью, возможностями и скоростью разработки.