Unity3d. Начало работы, практические советы. Рецензия

Скачать Viber 27.05.2019
Скачать Viber

Приложения и игры в социальных сетях и на тематических сайтах часто требуют для запуска установить Unity Web Player. Но когда мы загружаем эту программу, то удивляемся, ведь ни в меню «Пуск», ни на рабочем столе, нет новых ярлыков. Многие пугаются, думая, что установили вирус, или бесполезное приложение. На самом деле, польза огромна. И то, что теперь у вас запускаются игры в браузере и есть главная задача этой программы.

Для чего нужна программа?

Чтобы понять, что это за программа и нужен ли Unity Web Player, давайте разберем название на составные блоки:

  1. Unity – игровой движок. Платформа, на которой разработчики создают свои игры.
  2. Web Player – технология запуска игр от Unity внутри браузера. Она позволяет разработчикам размещать свой продукт на сайтах и в социальных сетях. Это очень удобно, ведь для запуска игры не нужно ничего скачивать.

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

Важно! Эта технология не новая. Вы уже много раз сталкивались с подобными решениями, даже не подозревая об этом. Яркий пример – Adobe Flash Player . Но в отличие от Flash Player, Unity умеет запускать сложные трехмерные игры.

Как установить и включить?

Есть несколько способов установить и запустить софт:

Как мы видим на скриншоте, не все браузеры с поддержкой Unity Web Player. В списке не хватает Google Chrome. С 2015-го года в браузере отключена поддержка NPAPI-плагинов, необходимых для запуска Unity. Если приложения не запускаются, выход один: использовать браузер из списка поддерживаемых.

Удаление приложения

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

Доброго времени суток. Данная статья посвящена мультиплатформенному инструменту Unity3d. В статье рассмотрены оптимальные, по моему мнению, способы работы с движком, даны практические советы по эксплуатации и дополнительные (общие) сведения; рассмотрены перспективы развития Unity3d.

  • Раздел 1. Введение
    • Что такое Unity ?
    • Возможности Unity3d
    • Проблема дополнительных знаний
  • Раздел 2. Начало работы
    • Вспомогательная литература
      • Сцены
      • Отладка
    • Структурирование
  • Раздел 3. Практические советы
    • Написание скриптов
    • Видеоуроки
    • Устранение ошибок
  • Раздел 4. Завершение работы
    • Выводы
    • Публикация игры
    • *Оптимизация
    • Теория графики
    • Полезные ссылки
    • Мнение
      • Что хочется увидеть в будущем?
  • Источники информации

Раздел 1. Введение

Что такое Unity3d ?
Unity3d является современным кросс-платформенным движком для создания игр и приложений, разработанный Unity Technologies. С помощью данного движка можно разрабатывать не только приложения для компьютеров, но и для мобильных устройств (например, на базе Android), игровых приставок и других девайсов.
Поговорим немного о характеристиках движка. Во-первых, стоит отметить то, что в среду разработки Unity интегрирован игровой движок, иными словами, вы можете протестировать свою игру не выходя из редактора. Во-вторых, Unity поддерживает импорт огромного количества различных форматов, что позволяет разработчику игры конструировать сами модели в более удобном приложении, а Unity использовать по прямому назначению - разработки продукта. В-третьих, написание сценариев (скриптов) осуществляется на наиболее популярных языках программирования - C# и JavaScript .
Таким образом, Unity3d является актуальной платформой, с помощью которой вы можете создавать свои собственные приложения и экспортировать их на различные устройства, будь то мобильный телефон или приставка Nintendo Wii.
Для того чтобы создать свою игру, вам, как минимум, нужно владеть одним из доступных (на Unity) языков программирования: C#, JavaScript или Boo.

Будет прекрасно, если вы владеете, например, 3Ds max"ом, это вам сильно поможет при создании игры. Что касается меня, то мне пришлось освоить 3Ds max на базовом уровне, ибо нигде не мог найти нужную мне модель дома . В любом случае вам понадобится установленный 3Ds max на ваш компьютер, если вы собираетесь импортировать готовые 3D модели. Ибо, в большинстве своем, необходимые модели имеют формат проекта, т.е. необходимо будет зарендерить их в соответствующий для Unity3d формат, например, в *.3DS, и только после этого делать импорт в Unity, в противном случае последний выдаст ошибку.

Раздел 2. Начало работы

Вспомогательная литература
Обратимся к литературе, которая поможет нам изучить Unity3d, а именно, к Unity 3.x Game Development Essentials . Книгу в свободном доступе можно найти в гугле, если вы предпочитаете бесплатный контент.
О чем книга? Пожалуй, обо всем, что только нужно для создания полноценной игры. Настоятельно рекомендую приобрести данную книгу и изучить самостоятельно.
Пару слов об игре и содержании книги. Ваш игрок оказывается на необитаемом острове, ему необходимо спастись, для этого он выполняет различные задания и, будем надеяться, спасается. Игру можно пройти за пару минут, однако создание игры занимает далеко не пару минут, даже не пару часов, пожалуй.
Книга содержит очень подробное руководство по созданию игры «с нуля». В ней описано многое, что вам, скорее всего, понадобится для создания вашей игры.

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

На это стоит обратить внимание
NB!
Приведу несколько советов при создании игры в Unity3d.

º Коллайдеры
Что это такое - коллайдер? Коллайдер - это область пространства, при взаимодействии с которой выполняются те или иные скрипты, действия. Чтобы лучше понять что это такое, представьте, что вы подходите к автоматически открывающимся дверям универмага. За пару метров от дверей, срабатывает датчик и двери распахиваются перед вами, но если вы пройдете за три метра, то ничего не произойдет. Как раз та зона, в которой действует датчик движения, отвечающий за открывание дверей, и есть коллайдер. Вы входите в зону - двери открываются, выходите из зоны - и датчик уже никак не будет реагировать на ваше присутствие. Точно так же и в игре.
Так вот, о коллайдерах. Предположим, мы импортировали в наш проект автомобиль и хотим сгенерировать для него коллайдер. Можно сгенерировать автоматически коллайдер для всего автомобиля, но тогда для каждой детали автомобиля - фары, уплотнителя, зеркала, покрышки - будет сгенерирован свой коллайдер.

Это абсолютно не оптимально. Безусловно, нам не нужно генерировать столь большое количество коллайдеров, достаточно ограничиться одним!

Обратите внимание, что это не тонкость. Стараться сэкономить память нужно везде. У вас есть какое-то место в игре, куда игрок не сможет попасть? Не генерируйте никакие коллайдеры для этого места вообще. У вас есть дверь, которую вы импортировали в проект из 3Ds max"а? Небось, она очень хорошо прорисована (сам сталкивался с тем, что у двери даже шурупы были прорисованы отдельным объектом), значит, создайте один box-коллайдер для всей двери - вы сэкономите много памяти! Поверьте, что вам эта сэкономленная память еще очень и очень пригодится.

º Оптимальная работа со сценами
Поговорим об оптимизации сцен, о самих же сценах будет речь вестись далее.
Представьте следующую ситуацию: у нас есть сцена «home» - когда игрок находится в здании и сцена «street» - когда игрок выходит из здания на улицу. Естественно, из второй сцены мы можем видеть дом, т.е. часть первой сцены, и наоборот (если, конечно, у здания есть окна). В таком случае оптимально следующее построение сцен. В первой сцене все, что касается улицы (т.е. того места, куда мы не можем попасть без перехода на другую сцену) надо максимально упростить. Иными словами, нам нужно оставить только внешний вид вида из окна, а всю начинку - распотрошить. Т.е. все коллайдеры удалить, разрешение и т.п. свести к минимуму. Действительно, зачем процессору напрягаться с обработкой той местности, которую мы не можем посетить? Аналогичным образом поступаем со второй сценой («street»). В данном случае мы можем вообще все удалить из дома и оставить только его «коробку».
Вы хотите создать minimap? Пожалуйста, только избавьтесь от всех коллайдеров и снизьте разрешение, в таком случае ваша игра будет оптимальна.
Именно таким образом работа со сценами становится оптимальной. Еще раз отмечу, что это не тонкости, это серьезные вещи, которые требуют внимания создателя.

Сцены
Готовая игра - это набор сцен, соединенных между собой (точно так же, как и жизнь - это набор дней). Об оптимальном проектировании игры мы сейчас и поговорим.
Прежде чем создать свой проект - подумайте, что он должен в себя включать (какие сцены). Составьте список сцен (на листочке), обдумайте, что каждая сцена будет в себе содержать. Теперь постарайтесь каждую сцену разбить на подсцены, чем больше их будет, тем легче будет вашему ЦП. Конечно, не стоит перебарщивать с количеством сцен. Предположим, что ваш игрок находится в здании и из него никогда не выходит, в здании есть, например, пару этажей, крыша, а на каждом этаже имеется три комнаты. В данном случае, по моему мнению, было бы оптимально «разбить» здание на две сцены - два этажа и крыша. Дробление же каждого этажа на сцены с комнатами - не оптимально. Это просто не нужно, если каждая из комнат слабо загружена. Иными словами, надо грамотно расходовать память процессора, но и забывать о получении удовольствия от игры тоже не стоит.
Отладка
Помните, что хороший создатель должен учитывать то, что его игра, либо приложение, будет использоваться на различных ЭВМ, а это означает, что свой контент необходимо отладить так, чтобы он мог использоваться на различных устройствах. Самый очевидный и важный момент отладки - оптимизация приложения под различные разрешения экранов. Это важный момент и создатель игры обязательно должен обратить на него свое внимание, в противном случае, результатом своей работы сможет быть доволен только он один.
Структурирование
При конструировании игры важно помнить о структурировании данных - немаловажном аспекте. Имеется ввиду, что все должно быть на своем месте. Создаете скрипты? - создайте папку для скриптов, там и храните их, с большой вероятностью, у вас будет не один скрипт, разбрасывать их по всему проекту не есть хорошо, сами потом будете мучиться. По своему опыту могу сказать, что вам точно понадобится создать папки со скриптами, звуковыми файлами, с GUI текстурами, материалами, анимациями, быть может, префабами и собственными моделями (импортированные из 3Ds max"а объекты лучше хранить именно в последней папке, дабы не разбрасывать все модели по проекту в хаотичном порядке). Когда вы создаете тот или иной скрипт, помните о том, что название переменных, классов и т.п. должны говорить все сами за себя. Если вы хотите создать скрипт для инвентаря (поднять предмет, использовать предмет), то лучше все скрипты однообразных действий (например, поднятия) начинать с ключевого слова, например: Catch<имя предмета>; Use<имя предмета>, в таком случае вам будет легче ориентироваться в проекте, да и выглядит так намного симпатичнее. Помните золотое правило: хорошая программа не та, которая написана тяп-ляп и отлажена до предела, хорошая программа та, которая пишется сразу правильно и требует минимальных «затрат» на отладку. Если вы будете пользоваться этим правилом, то у вас все будет намного лучше чем у тех, кто этим правилом не пользуется.
Написание скриптов
Увы, этот подраздел будет совсем короткий. Просто старайтесь сначала представить то, что вы хотите реализовать, затем попробуйте описать словами алгоритм, а далее - преобразовать слова в работающий код. Используя книгу, о которой речь шла выше, вам навряд ли придется сильно потеть над разработкой кодов и других вещей, повторюсь, что в книге описано практически все, что только может понадобиться, а все, что не описано - легко додумать самому.
Видеоуроки
Рекомендую следующие youtube каналы для ознакомления:

К счастью, программный продукт Unity обновляется постоянно, но, увы, видеоуроки сами это делать не могут. Получается так, что огромное количество видеороликов, актуальных год назад, теряют свою актуальность и становятся, попросту, бесполезными.
1 - здесь вы всегда найдете актуальные видеоуроки, понятное объяснение, детальный разбор скриптов и всех действий. Лучше этого канала пока что ничего не нашел. Если вы не имеете вообще никакого представления о создании игры, то вам однозначно нужно заглянуть на данный канал. 2 - серьезная команда, видеоуроков только, жаль, меньше, чем у 1. 3 - есть полезные вещи, жаль только, что видеоуроки стали почти неактуальными.

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

Это ошибки, если такие имеются, то игра не запустится:

Раздел 4. Завершение работы

Выводы
Unity3d - очень гибкий движок, предоставляющий большую свободу действий пользователю. Чтобы упростить жизнь разработчику и потребителю, можно предпринять некоторые шаги для оптимизации своего проекта.
Теперь мы, с заложенной базой знаний, можем спокойно приступать к созданию своего ультра-популярного приложения!
Публикация игры
Свою готовую игру можно опубликовать на одном из игровых сервисов, например, на www.kongregate.com
*Оптимизация
Если вы читаете данный подраздел, то либо вам просто интересно, что здесь написано, либо вы не прочитали NB! из раздела 2. Будем надеяться, что вы относитесь к первой категории. В данном подразделе еще раз хочется отметить то, что нужно сразу писать игру оптимальной, а не писать ее хоть как-то, и только затем отлаживать - это гиблый путь и поступать так не стоит. По поводу оптимизации - еще раз обратитесь ко второму разделу.

Раздел 5. Дополнительная информация

Теория графики
Практика без теории бывает не очень уж и интересной, поэтому советую ознакомиться с теорией компьютерной графики. www.intuit.ru/department/graphics/graphalg/lit.html
Протестировать свои теоретические знания можно тут Итак, сегодня я хотел бы рассказать вам о Unity (тем, кто ещё не знаком с ним, по крайней мере). Безусловно, на Хабре есть люди, которые знают, что это такое, но поиск выдаёт катастрофически малое количество топиков с упоминанием сабжа - два из них просто сообщают о новых версиях, один кратко презентует и ещё один посвящен всё-таки его использованию. «Непростительно, надо это исправить!», - подумал я, и решил написать краткий презентейшн с целью популяризации технологии. Если вы уже в теме - дальше можете не читать.

Честно говоря, когда я читал на википедии о бесплатном (по крайней мере, с вполне нормальной по функционалу фришной лицензией) 3d движке с нормальным IDE, встроенной нормальной физикой, аудио-движком и прямой реализацией сетевого мультиплеера на котором можно делать приложения для всего, кроме, пожалуй, nix"ов (поддерживаются и нормально работают Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360), я уже чуял подвох.

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

А когда я поставил это чудо себе и убедился в правдивости всего вышесказанного - я почти что влюбился.

Много раз на свет появлялись технологии, которые ставили перед собой цель перенести в интернет честное тридэ. Вспомним провальный VRML, чуть менее провальный ActiveWorlds… Сегодня о них почти никто не помнит. Скоро весь мир заполонит HTML5, выйдет новый флэш с 3d-ускорением … Но пока этого не случилось, миром мультимедийного контента в вебе правит текущая версия Flash, вместе с Java и Silverlight"ом. Пожалуй, даже только Flash. Разработчики со скрипом пользуются другими технологиями, оно и понятно - заставить пользователя поставить ещё один сторонний плагин лишь для того, чтобы поиграть в одну игру/посмотреть один сайт сложно.

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

Посмотреть можно много где, но для примера приведу несколько ссылок. По ссылкам вам предложат установить плагин - он весит килобайты и работает без перезагрузки браузера (к сожалению, размер демок вычислить не удалось, поэтому осторожно - размеры могут быть в районе 30-50 метров):

  • Bootcamp - демо к третьей версии, шутер от третьего лица, можно сказать лицо всего движка на данный момент. Также внизу там можно понажимать на другие демки - большинство относится к старым версиям, но все равно можно посмотреть
  • Раздел Юнити на Kongregate.com - тут игры уже адаптированные для веба, весят не больше обычных флешек
  • Список игр на офсайте - тоже можно посмотреть
Давайте же попытаемся разобраться, что же это за зверь такой, и действительно ли он так хорош, как его малюют на офсайте.

Pro et Contra

Для начала, определимся с терминами. Unity - это полноценный игровой движок, рассчитанный на то, что весь процесс девелопмента (ну, кроме подготовки ресурсов и скриптинга) будет происходить в поставляемом в комплекте Редакторе Всего. Обычно такая постановка вопроса означает нежизнеспособного монстра, обросшего тормознутым GUI по самое не балуйся, рассчитанного на то, чтобы дать подросткам из разряда «геймдев-ваннаби» почувствовать себя причастными к геймдеву. Но не стоит пока закрывать вкладку с этим топиком - Юнити не из этого теста. Итак, чем же хорош Юнити? Посмотрим, а заодно сравним с UDK - SDK к UnrealEngine 3, который Epic Games не так давно сделали бесплатным для независимых разработчиков.

Хорош Юнити:

  • Своим IDE - он сочетает редактор сцен (он же редактор всего далееперечисленного), редактор игровых объектов, и даже простенький редактор скриптов вложили. Кроме того, в комплекте идет генератор деревьев а-ля SpeedTree (неплохой) и террейнов (стандартный, удобный);
  • Возможностями для скриптинга - в отличие от UDK, в котором писать можно только на встроенном самописном языке, в Юнити доступны аж три языка: JavaScript, C#, и диалект питона под названием Boo. Мной лично не проверялось, но в русском коммьюнити проскакивали фразы о том, что скорость исполнения скриптов в UDK в разы меньше (оно и понятно - в Юнити ведь скрипты компилятся в нативный код);
  • Кроссплатформенность - как уже упоминалось выше, поддерживаются Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 и XBox 360. Ну и веб-плагин, конечно, забывать не стоит. Не все из них доступны по фришной лицензии (вообще-то, доступны билды только под Вин, Мак и веб), но это вполне понятно. Под Вин и Мак все компилится вообще без всяких изменений в коде, под веб прийдется, конечно, порезать ресурсы - качать 400 метров чтобы открыть один уровень в браузере не очень-то удобно. Работу веб-версии опишу ниже;
  • Вполне современный уровень графики - тому же UDK по количеству реализованных фич Юнити, конечно же, проигрывает - все-таки UnrealEngine можно назвать одним из флагманов по этой части, и переплюнуть его сложно. Но в Юнити есть deferred освещение, встроенный редактор шейдеров, стандартный набор постпроцессинговых эффектов (полный список , можно и свои писать естессно), модный нынче SSAO - короче говоря, весь набор инструментов для создания AAA-проекта есть. Лайтмапы кстати делает более чем достойно и шустро;
  • Физдвижок - есть все, что должен уметь физдвижок. Сделать свой Half-Life 2 с ну-вы-сами-знаете-с-чем? Легко!
  • Производительность и масштабируемость - без колебаний ставим «отлично». Потому что с большей частью рутины в этом отношении движок справляется сам, и справляется замечательно;
  • Запуск любого приложения в веб-плагине - мы об этом уже говорили, но не грех отметить и еще раз.
  • Невысокая цена за лицензию - всего 1500$. И бесплатная версия, без некоторых плюшек;
Ну вот как-то так. Теперь обсудим, чем же он плох:
  • Он закрыт. Т.е. исходных кодов вам не дадут даже по лицензии. С UDK, если я все правильно понял, та же картина - исходники лицензируются отдельно, за бОльшие деньги. Впрочем, в Юнити скриптами можно совершенно то же самое, что мы делали бы с исходниками - замоддить можно практически всё… Но всё-таки исходники всяко лучше, поэтому это минус - по крайней мере для тех, кто хотел бы прикрутить стороннюю физику или тот же SpeedTree;
  • PROFIT.
Честно говоря, реальных минусов я пока что не вижу. Движок стабилен, производителен, легок в использовании - а что ещё надо? Недостатки наверняка есть. Так, я часто натыкался на репорты о странно работающем аддитивном блендинге анимаций. Некоторые жалуются на отсутствие назначения множественных материалов террейнам - не знаю, не пробовал. Но так ли это существенно в свете вышеуказанных плюсов? По мне так нет.

Дело в том, что у большинства небольших команд основной проблемой всегда становился движок (ну и отсутствие идеи и хорошего арта конечно же, но мы сейчас не об этом). Писать с нуля - единственному программисту в команде сложно это сделать, учитывая что движок это не только 3d-рендер, это ещё и куча инструментов пайплайна - импортеры, редакторы, вьюверы… Непосильная задача, если только не придерживаться минимализма. Минимализм это не плохо, столько замечательных игр сделано во всеми нами любимом стиле 8-bit, что не счесть… Но большинство из них - однодневки (Minecraft не в счет, да. И он кстати тоже написан не с нуля, а на LWJGL). Когда дело доходит до игры, в которую будут играть не один день, нужен полноценный движок, и тогда мы начинаем искать бесплатные решения. Ogre, Irrlicht и немногие им подобные - хороши конечно, но а) морально стары и б) на их изучение и допиливание до работоспособного состояния требуют много времени и большую теоретическую базу за спиной. Конечно и на них можно написать крутой продаваемый проект (Torchlight на Ogre тому примером), но тут все-таки нужен не один программист. Есть и наборы а-ля «игры без знания языков программирования», типа GameMaker, но это игрушки, право слово.

В случае с Unity же мы имеем уже готовый пайплайн, готовый рендерер, готовую физ., аудио и сетевую библиотеки, кодить можно на знакомом языке - фактически, со стороны кодинга нам нужно только знать основы, допустим, Яваскрипта, и недельку покопаться в официальной справке, чтобы склепать FPS. Минус одна преграда на пути к релизу. Если кто не верит в качество написанного чужими руками кода, который нельзя поправить - зацените, все совсем не так плохо.

Как это выглядит

Картинки кликабельны.

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

Прямо в IDE можно нажать кнопку «Play», и протестить текущую сцену реалтайм:

Встроенный инспектор классов прощупывает, простите за тавтологию, классы на предмет переменных и позволяет менять переменные в скриптах на лету, не глядя в код. Причем не только int"ы, но и материалы, текстуры, модели… Очень экономит время. В документации к API указывается хорошим тоном не писать, допустим, путь к текстуре напрямую в скрипте, а просто делать свойством класса пустое свойство соответстующего типа, и выбирать в инспекторе нужное:

Инспекторы префабов (справа) и энтитей (слева). Грубо говоря, справа - заготовки объектов, слева - те объекты, что есть в текущей сцене. Удобно, что во время прогона уровня в редакторе (кнопка «play»), можно поставить прогон на паузу и посмотреть текущее состояние объектов - гораздо реже приходится читать логи или выводить на HUD дебажную строку, чтобы посмотреть поведение одной маленькой переменной:

А напоследок я скажу...

Подытоживая весь словесный мусор до этого момента, если вы делаете ААА-проект, вы, скорее всего, напишите свой движок. Или у вас уже есть движок от прошлого проекта. Или вы купите что-то уровня пресловутого UnrealEngine 3 с исходниками. Но это если вы делаете ААА-проект с десятком людей только на кодинге.

Если же у вас всего десять человек в студии (а тем паче, два), писать свой движок, как правило, слишком затратно. Одно искушение оказаться на волне полноценных браузерных 3D-игр (java-обертка для Ogre не в счет. Ну правда же) стоит того, чтобы попробовать Unity на практике. Скорость и сложность разработки обычной браузерной казуалки на ней не выше, чем на Flash, а графическое превосходство - налицо. Да и wow-эффект никто пока что не отменял.

В конце концов, на Unity можно делать сайты (спорно, но можно), презентации, визуализировать научные проекты… Все это можно было написать и вручную, на чистом OpenGL, но сравнив время и качество реализации, я все-таки склоняюсь к варианту на Unity. Flash пока что тоже в расчёт не берём - подождем релиза аппаратного 3d-ускорения.

Такие слова вызовут бурю эмоций у приверженцев других движков. «Да это все есть и в %enginename%», «на %enginename% сделана %gamename% и %gamename%, и все это без мерзкого всепоглощающего drag"n"drop"а»…

Я посоветую вам просто дать Unity шанс - своим удобством, возможностями, гибкостью и скоростью разработки она подкупает (по крайней мере, меня подкупила). И кроме того… Эй, это же полноценное тридэ в браузере! :)

В данной статье речь пойдёт о кроссплатформенном движке 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 шанс – этот движок подкупает неискушённого пользователя своим удобством, гибкостью, возможностями и скоростью разработки.

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

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

Во-первых , что вполне очевидно, в одной среде вы можете создать приложение, которое будет запускаться почти на всех мыслимых устройствах с цветным дисплеем (и даже на Chromebook - из браузера). И, конечно же, подобные плюшки очень эффективно привлекают почитателей среди юных дарований, ищущих волшебную таблетку, которая позволит им делать все и сразу. Конечно же, это вполне адекватная причина, чтобы полюбить Unity. Но в связи с данной особенностью, как водится, есть пара нюансов:

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

Во-вторых , ценовая политика и политика распространения движка очень приятная и гуманная: во фримиумной версии можно разрабатывать коммерческие игры и сразу под все платформы. А в Pro версия стоит всего 1500 $ и предоставляет дополнительные функции, в первую очередь, связанные с фишками-плюшкам и графикой.

В-третьих , интуитивно понятный интерфейс редактора и использование простых в освоении языков программирования: C# и JavaScript - без необходимости мансов с си и прочими языками, которые изучаются за двадцать один год.

В-четвертых , почти что вирусное распространение этого движка в геймдев-тусовке. Здесь играет свою роль тот факт, что продукт очень качественный и уникальный. Играет роль и то, что каждый юный разработчик считает своим долгом выложить прототип своей «революционной» игры на любимый форум, файлообменник и торрент-трекер, добавив и свою каплю в море игр на Unity.

А вот в чем его основная прелесть: простота разработки приложений для мобильных, с полным боекомплектом. На движке Unity разрабатывается просто огромное количество игр под мобильные платформы, в том числе - бестселлеры типа Temple Run или Dead Trigger.

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

via Станислав Герасименко, game developer



Рекомендуем почитать

Наверх