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

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

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

Интерфейс

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

Рабочее пространство в нём разделено на несколько участков:

  • в Scene можно выбрать ракурс и рассмотреть сцену;
  • Hierarchy содержит все объекты сцены;
  • Inspector поможет изменить нужный объект;
  • Toolbar представляет собой набор инструментов;
  • Project содержит все ресурсы проекта.

Возможности

Разработка в Unity возможна на Javascript и C#. Для полноценной работы потребуется использовать оба языка. За физическую составляющую отвечает технология NVIDIA PhysX, показывающая превосходные результаты.

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

Анимация моделей чаще всего проводится в посторонних программах, но среди инструментов программы всё равно имеются достойные решения для реализации такой задачи.

Материалы - неотъемлемая часть проекта, поэтому взаимодействие с ними также на высоте. Удобное использование текстур поможет обеспечить объекту любой внешний вид, а шейдеры сделают его в разы красивее.

Процесс развития

Игровой движок Unity был создан в далёком 2005 году, и тогда он не был особо популярным из-за малого количество возможностей. Однако разработчики часто выпускали обновления, делая свой продукт качественнее. Постоянное добавление новых платформ привлекало внимание пользователей. Постепенно расширялся функционал, и улучшалось удобство его использования.

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

Особенности Unity 5

Такие технологии, как Level of Detail и Occlusion Culling, вывели разработку игр на новый уровень, и эти нововведения появились в Unity 5. Игровой движок в совокупности с такими инструментами изменит принцип расчёта детализации. Теперь устройству понадобится обрабатывать только то, что видит игрок, и это улучшит производительность.

Level Of Detail ухудшит детализацию дальних объектов на локации. Нагрузка на процессор заметно снизится, однако игрок не заметит никаких ухудшений графики.

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

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

  • Удобный интерфейс, содержащий все необходимые элементы.
  • Огромное количество поддерживаемых платформ, что позволит создавать игры не только для компьютера, но и для смартфона, игровой консоли и ряда других устройств.
  • Широкие возможности работы со скриптами. Unity взаимодействует с двумя популярными языками программирования, что обеспечивает высокую скорость компиляции скриптов.
  • Ряд инструментов для создания качественной графики. Различные режимы освещения, шейдеры, эффекты и другие технологии обеспечат достойное визуальное оформление.
  • Превосходный физический движок.
  • Высокая производительность.
  • Бесплатная версия программы, позволяющая опробовать любому человеку её возможности.

Недостатки

Пользователи, не владеющие английским языком, могут столкнуться с проблемами при использовании Unity. Игровой движок на русском в настоящее время пока ещё недоступен. Русификаторы к данной платформе также отсутствуют.

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

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

Сравнение с конкурирующими продуктами

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

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

Выводы

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

Unity был создан для проектов среднего и малого масштаба. Для одного или пары разработчиков он предоставит широкие возможности и поможет реализовать любую идею.

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

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

Итак, сегодня я хотел бы рассказать вам о 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 шанс - своим удобством, возможностями, гибкостью и скоростью разработки она подкупает (по крайней мере, меня подкупила). И кроме того… Эй, это же полноценное тридэ в браузере! :)

Доброго времени суток. Данная статья посвящена мультиплатформенному инструменту 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
Протестировать свои теоретические знания можно тут
  • Жанровая направленность: любые 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, 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, адапированный под платформы следующего поколения, имеет потрясающие графические возможности и, только вы сами можете решить, что же лучше подходить вам для решения существующих задач. Надеемся, что этот пост был информативным и помог вам сделать правильный выбор, сфокусировавшись на самой интересной части - разработке. Если вы все еще сомневаетесь - поюзайте все три движка.

    КАТЕГОРИИ

    ПОПУЛЯРНЫЕ СТАТЬИ

    © 2024 «kingad.ru» — УЗИ исследование органов человека