Unity3d. Начало работы, практические советы. Рецензия. Мощный игровой движок Unity: описание

  • Жанровая направленность: любые 3D/2D игры, онлайновые игры, мобильные игры;
  • Платформа редактора: Windows или Mac OS X;
  • Платформа игр: iOS, Android, Windows Phone 8, BlackBerry 10, Tizen, Windows и Windows Store Apps, Mac, Linux/Steam OS, Web Player, WebGL, PlayStation 3, PlayStation 4 и Morpheus, PlayStation Vita, Xbox 360, Xbox One, Wii U, Android TV, Samsung SMART TV, Oculus Rift, Gear VR и др.
  • Лицензия: есть бесплатная версия для коммерческого использования, а также месячная подписка, полная лицензия, платная поддержка;
  • Языки программирования игр: C#, JavaScript, Boo;
  • Движок написан на ЯП: C++;
  • Открытый исходный код: не предоставляется, частично;
  • Мультиплеер: возможен, есть модули и шаблоны серверной части;
  • Физика: встроеные движки Box2D и NVIDIA PhysX 3.3;
  • Графическая API: DirectX и OpenGL;
  • Предыдущая версия: Unity3D 4
  • Достоинства: бесплатный для Indie-разработчиков, кросс-платформенный, прост в освоении.
  • Недостатки: рендер имеет нарекания, есть недостатки для разных платформ, типа отсутствия тех или иных возможностей и особенностей.
  • Разработчик движка: Unity Technologies.

    Unity 5 – это передовой игровой движок от компании Unity Technologies, позволяющий разрабатывать не только 3D-игры, но и 2D-игры. По мнению большинства инди-разработчиков игр на данный момент это лучшая платформа разработки игр.

    У этого движка имеются все необходимые инструменты для полноценной разработки игр AAA-класса под 21 популярную платформу: iOS, Android, Windows Phone 8, BlackBerry 10, Tizen, Windows и Windows Store Apps, Mac, Linux/Steam OS, Web Player, WebGL, PlayStation 3, PlayStation 4 и Morpheus, PlayStation Vita, Xbox 360, Xbox One, Wii U, Android TV, Samsung SMART TV, Oculus Rift, Gear VR и др. Делайте один проект и собираете его под что угодно одним кликом. На мобильные и настольные системы, на консоли, а также на веб-платформы. Используйте официальный набор Facebook SDK для Unity, чтобы легко интегрировать игры в социальную сеть, экспериментируйте с очками виртуальной реальности Oculus Rift и не только.

    Unity Technologies сотрудничает с производителями платформ и железа, типа Microsoft, Sony, Qualcomm, Intel, Samsung, Oculus VR, Nintendo и др. Благодаря этим связям поддержка платформ реализована в лучшем виде, так что ваш контент успешно работает на всех.

    Unity в 2014 и 2015 годах стал самым популярным игровым движком для мобильных устройств. Независимые отчеты показывают, что Unity далеко опережает прочие движки для создания мобильных игр. Почему же он так популярен? Причин много. Развертывание по щелчку мыши на Android, iOS, Windows Phone и BlackBerry. Масса оптимизаций, благодаря таким функциям, как Occlusion Culling и Asset Bundling. Сервисы мирового уровня по части монетизации и удержания игроков на мобильных устройствах. Специальные, легкие для использования 3D и 2D инструменты и рабочие процессы.

    Вы можете использовать данный движок для разработки игр любых жанров: стратегии, головоломки, экшен, песочницы и всё, что вам только угодно. Благодаря системе Realtime Global Illumination на базе Enlighten и физическому шейдеру Unity еще никогда не было лучшего времени для создания красивых, притягательных и занимательных игр для настольных ПК с помощью Unity.

    Получите бесплатный доступ к опциям сборки для веб-публикации в Unity 5. После установки, пользующийся громадной популярностью, плагин Unity Web Player обновляется автоматически. Используйте его для развертывания в Internet Explorer, Safari, Mozilla Firefox и прочих браузерах. В зависимости от случая, новая высоко оптимизированная опция сборки Unity под WebGL может обеспечивать производительность на уровне исполнения собственного кода. Она уже была использована в ряде успешных коммерческих проектов.

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

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

    Экономьте время с магазином Asset Store прямо из редактора Unity или из веб-браузера. Вы наверняка найдете что-либо, подходящее именно вам, из более чем 10 тыс. уже готовых бесплатных или платных ресурсов и инструментов разработки. Выбирайте из огромного ассортимента расширений редактора, плагинов, окружения, моделей и мн.др.

    Движок Unity любим во всей игровой отрасли за глубину и качество оптимизации, а также за скорость и эффективность рабочих процессов – это позволяет пользователям Unity быстро создавать высококачественный контент. Прилагается всё необходимое: физический шейдинг, подробное профилирование памяти, интуитивные инструменты пользовательского интерфейса, мощная технология анимации, Blend Shapes для анимации лица и т.д.

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

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

    Поддерживаются такие форматы изображений: psd, jpg, png, gif, bmp, tga, tiff, iff, pict, dds. Такие форматы аудио: mp3, ogg, aiff, wav, mod, it, sm3. Форматы видео: mov, avi, asf, mpg, mpeg, mp4. Текстовые форматы: txt, htm, html, xml, bytes. Все популярные форматы 3D-моделей.

    В качестве физических движков подключены Box2D с исчерпывающим набором эффекторов, сочленений и коллайдеров, а также NVIDIA PhysX 3 для 3D-сцен с проработанными функциями ИИ с передовой автоматизированной системой поиска пути и навигационными сетками. Для скриптования сцен используются ЯПы C#, JavaScript, Boo. Для отслеживания версий имеется полная поддержка интеграции с Perforce и Plastic SCM.

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

    Увеличивайте свою аудиторию и доходы с Unity Ads. Повышайте уровень удержания игроков и привлекайте новых игроков посредством Unity Everyplay. Поймите, как стимулировать игроков, чтобы они все время возвращались к игре с Unity Analytics. Легко получайте свои сборки через Unity Cloud Build.

    Всего представлено 2 типа сборки Unity 5: бесплатная Personal Edition и коммерческая Professional Edition за $75 в месяц или за $1500 на всё время. Personal Edition имеет ряд дополнительных фич и инструментов. Для экспорта под некоторые платформы требуется покупка соответствующих модулей.

    Есть скидка 10% при покупке от 10 лицензий. Предлагаются лицензии Unity Professional Edition со скидкой школам, институтам, учащимся и преподавателям. Движок Unity рассчитан на принятие широким кругом пользователей, и Unity предоставляет массу учебных материалов и курсов, которые могут использовать учителя.

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

    Есть разные уровни поддержки для разных уровней пользователей Unity: от бесплатной поддержки до поддержки уровня Premium и специальной поддержки для корпоративных пользователей.

    Системные требования: OS: Windows XP SP2+, 7 SP1+, 8; Mac OS X 10.6+. Видеокарта с поддержкой DX9 (shader model 2.0).

    Официальный сайт: http://unity3d.com

  • Обсудить на нашем форуме...


    Unity is a flexible and powerful development platform for creating multiplatform 3D and 2D games and interactive experiences. It"s a complete ecosystem for anyone who aims to build a business on creating high-end content and connecting to their most loyal and enthusiastic players and customers.

    Experience polished, end-to-end multiplatform development. Confidently target the hottest platforms including newcomers such as WebGL and Oculus Rift. Efficiently optimize performance with cross-platform tools and deploy with near one-click ease.

    Get the best of both worlds with Unity: high-end tools in a ready-made solution that’s also intuitive to use and deeply customizable. Move into full production at an astonishing pace. Add your own tools to Unity for ultimate comfort and productivity. Dive into scripting with super fast compilation times.

    Shop in the Asset Store directly from the Unity Editor or your web browser. With thousands of ready-made free or for purchase assets and production tools, you are sure to find something tailored to your specific needs. Select from a vast array of Editor extensions, plug-ins, environments and models and much more.

  • Итак, сегодня я хотел бы рассказать вам о 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. В данной статье вы узнаете, что он собой представляет и зачем он нужен.

    Ядро игры

    Начать стоит не с того, что представляет собой конкретно игровой движок 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 движке с нормальным 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, UDK и CryENGINE .

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

    За последнее время разработчики сделали доступными для широкого использования многие мощные игровые движки, давая, тем самым, независимым разработчикам возможность воссоздать игры из их грез. Самые популярные игровые движки - Unity, UDK и Cry ENGINE. Все они являются самыми мощными игровыми движками, с характерными сильными сторонами. Для начала определитесь, будет ли ваш проект шутером от первого лица (FPS), 2D или 3D мобильной игрой или обладать сказочно красивой графикой?

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

    Unity

    Unity - игровой движок с широким спектром возможностей, удобным и дружественно настроенным интерфейсом. Вся его соль заключается в мультиплатформенности, что означает легкое и быстрое портирование игр под такие платформы, как Android, iOS, Windows Phone 8 и BlackBerry, делая движок приоритетным при выборе ПО для разработки игр под мобильные приложения. Кроме этого, с помощью Unity можно также разрабатывать игры для PS 3, Xbox360, Wii U и веб-браузеров.

    Unity легко «читает» ассеты из таких 3D-редакторов, как 3D Maya, 3Ds Max, Softimage, CINEMA 4D, Blender и пр., что означает отсутствие проблем с чтением различных форматов. А после недавнего релиза Unity 4.3 также может работать с 2D-графикой, поддерживая спрайты и 2D-физику, благодаря чему с помощью движка можно также создавать графику для 2D-игр.

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

    Существует две версии Unity: бесплатная и Pro. Pro-версия движка стоит $1,500 или $75 помесячно. Она существенно отличается от бесплатной версии Unity, имеет освещение типа global, возможность render-to-texture, IK-риги Mecanim и пр. Бесплатная версия Unity щедро снабжает контент вотермарками, избавиться от которых невозможно. Более детальную информацию можно найти на официальном сайте Unity .

    UDK
    Unreal Development Kit или UDK - бесплатная версия движка Unreal Engine 3, написанного Epic Games, который используется для разработки многих игр класса ААА, включая шутер Gears of War. Этот движок обладает высокими графическими возможностями и может также использоваться для разработки мобильных игр. У UDK, в отличие от Unity, есть свой собственный мощный инструмент для дизайна игровых уровней непосредственно в самом движке.

    Главным образом Unreal Engine разрабатывался для создания FPS. Именно благодаря старой версии движка мы смогли поиграть в первую версию Unreal, сейчас же движок используется для создания игр разнообразного жанра, RPG в том числе. У Unreal есть свой скриптовый объектно-ориентированный язык программирования, похожий на Java или C++. Полный список игр, созданных на Unreal Engine 3, можно посмотреть в шоукейсе UDK.

    UDK, как и Unity, работает с различными платформами, включая iOS, Android, Windows Phone 8, Xbox360, PS 3, Playstation Vita и Wii U.

    Как и в случае с Unity платить за UDK вы будете только в случае релиза игры. Несмотря на это независимые разработчики, сидящие на UDK, могут использовать более гибкий подход, не требующий серьезных вложений на начальных этапах разработки. На момент издания игры вы должны будете заплатить лицензионный сбор в размере $99. Также, если вырученная за игру прибыль превысит $50,000, вам придется заплатить от нее 25%, что составит авторское вознаграждение разработчиков. Более детальную информацию можно найти на официальном сайте UDK .

    CryENGINE
    CryENGINE - невероятно мощный движок, разработанный компанией Crytek, и впервые представленный в первой части Far Cry. С помощью этого движка можно создавать игры под ПК и консоли, включая PS4 и Xbox One. Графические особенности CryENGINE значительно превосходят возможности первых двух движков, поскольку включают артхаусный свет, реалистичную физику, продвинутую систему анимации и пр. CryENGINE использовался для разработки Ryse: Son of Rome. Этот движок, как и UDK, очень интуитивен и обладает мощными возможностями для дизайна уровней.

    Несмотря на то, что CryENGINE считается самым мощным движком из всех трех, вам придется потратить какое-то время, чтобы разобраться в нем, это может оказаться достаточно сложным, если вы не имели опыта работы с игровыми движками. Если вы не хотите, чтобы качество графики в вашей игре было на уровне Crysis 3 или Ryse: Son of Rome, тогда стоит сделать выбор в пользу более дружественно настроенного движка.

    Несмотря на то, что на сайте CryENGINE нет информации касательно лицензионных сборов, существует бесплатная версия CryENGINE для некоммерческого использования, такая же, как у UDK и Unity. Если вы хотите узнать о порядке цен на движок, вам необходимо связаться с CryEngine, предоставив им детали касательно игры и целевой платформы.

    Так что же подойдет мне?

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

    Статьи по теме: