Кто такая Unity и почему она всем нравится

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

Наглядный редактор

Unity сра­зу идёт в ком­плек­те со сре­дой раз­ра­бот­ки. Это одно­вре­мен­но и редак­тор кода, и рабо­та с гра­фи­кой, и логи­ка пове­де­ния пред­ме­тов в игро­вой сцене, и всё осталь­ное.

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

Трёхмерное и техническое моделирование

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

Бонус-часть: если у вас уже есть гото­вые трёх­мер­ные моде­ли чего угод­но, их мож­но загру­зить в Unity и ожи­вить.

Современная графика

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

Ещё Unity уме­ет рабо­тать с гло­баль­ным све­том, зна­ет про трас­си­ров­ку лучей и физи­ку отра­же­ний, что поз­во­ля­ет созда­вать реа­ли­стич­ную гра­фи­ку. Что­бы всё это рабо­та­ло быст­ро, дви­жок под­дер­жи­ва­ет API всех попу­ляр­ных про­из­во­ди­те­лей видео­карт и тех­но­ло­гий: Vulkan, iOS Metal, DirectX 12, NVIDIA VRWorks и AMD LiquidVR.

Готовая физика и взаимодействия предметов

То, как пред­ме­ты в игре вза­и­мо­дей­ству­ют меж­ду собой и с окру­жа­ю­щей сре­дой, назы­ва­ет­ся физи­кой. Если писать пра­ви­ла тако­го вза­и­мо­дей­ствия с нуля для каж­до­го объ­ек­та, на это может уйти очень мно­го вре­ме­ни. Напри­мер, как опи­сать физи­ку рези­но­во­го мяча по срав­не­нию с физи­кой кам­ня или метал­ла? А физи­ку авто­мо­биль­но­го коле­са?

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


Когда забор сло­мал­ся, боч­ки сами катят­ся вниз, пото­му что это уже преду­смот­ре­но в физи­ке пове­де­ния.

Скрипты на JavaScript и C#

Одно из силь­ных мест Unity — скрип­ты на JS и C#. Вам не нуж­но изу­чать встро­ен­ный язык скрип­то­ва­ния с его логи­кой и огра­ни­че­ни­я­ми — вы про­сто берё­те любой из этих двух язы­ков про­грам­ми­ро­ва­ния и пише­те что вам нуж­но.

На скрип­ты мож­но пове­сить что угод­но: появ­ле­ние вра­гов из-за угла, содер­жи­мое сун­ду­ка с сокро­ви­ща­ми или отве­ты вто­ро­сте­пен­но­го героя. Если вы уме­е­те про­грам­ми­ро­вать, то смо­же­те сде­лать настоль­ко слож­ную и инте­рес­ную игру, насколь­ко захо­ти­те сами.

Мультиплатформенность

Что­бы пока­зать, где могут запус­кать­ся Unity-игры, мы про­сто вста­вим сюда эту кар­тин­ку:

Оди­на­ко­вые знач­ки — это не повто­ры, а раз­ные тех­но­ло­гии на одной плат­фор­ме. Андро­ид на про­цес­со­рах ARM и Intel — это раз­ный андро­ид с тех­ни­че­ской точ­ки зре­ния, пото­му что отли­ча­ет­ся архи­тек­ту­ра про­цес­со­ра, рабо­та с желе­зом и драй­ве­ры.

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

Бесплатно

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

Даже с эти­ми огра­ни­че­ни­я­ми Unity всё ещё оста­ёт­ся хоро­шим инстру­мен­том для созда­ния игр с нуля.

Лучшее объяснение — демонстрация