Обучение

Сообщение об ошибке

Обучение

Сообщение об ошибке

Разработка игр на Unity: преимущества изучения движка

17 ноября 2021

Что такое движок Unity и почему он так популярен сегодня? Насколько универсально его использование и есть ли сложности в изучении? Мы поговорили об этом с Ростиславом Никишиным – игровым разработчиком в компании Storymode и по совместительству преподавателем курса «Разработка игр на Unity» в IT-Academy. Ростислав пишет код на Python, C++, C# и JavaScript в общей сложности уже более 10 лет, а использует Unity в своей работе с 2014 года. Из статьи вы узнаете многое об этом движке и о нюансах работы с ним. Но для начала узнаем больше о Ростиславе. 


– Ростислав, расскажите, что помогло вам прийти к профессии «игровой разработчик»?

– По правде говоря, я самоучка. Я писал код еще со школы, изучал его самостоятельно, и в какой-то момент понял, что стоит идти на курсы. Так началось мое изучение языков программирования: сначала был С++, далее Java, самостоятельно выучил Python, C#, JavaScript, Unity и Unreal Engine. Я закончил колледж на техника программиста, и после окончания стал работать с Android, так как думал, что буду крутым мобильным разработчиком. Однако чуть позже я пришел в Storymode, и с тех пор работаю с Unity и Unreal Engine. В IT-Academy я преподаю курс по Unity уже год. 

– Так что же такое Unity, зачем нужен движок и почему он так актуален сегодня?

– Игровой движок – это набор инструментов для эффективного создания видеоигр. В игровой движок входят отрисовка, анимация, звуковая и скриптовая системы, визуальный редактор для редактирования сцен, менеджер ресурсов и многое другое. Unity – один из самых популярных движков для создания видеоигр и приложений. Больше половины игр в Google Play и Apple Store сделаны именно на нем!

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

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

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

– Насколько универсальна разработка на Unity — подходит ли под любую платформу?

– Универсальность – это по сей день один из самых главных аргументов, почему разработчики выбирают Unity. Сделав игру на одну платформу, она достаточно легко адаптируется и под другие. Если игра совсем простая, то никакие особые изменения в ней вовсе не нужны. Есть много проектов, которые написаны на Unity и которые постоянно выпускают новый контент. Они основываются на одной кодовой базе, на одном проекте, а это значит, что движок очень даже универсален как на Android и iOS, так и на Xbox и PlayStation.


Игра Николая Шидловского с динамически генерируемым уровнем и динамическим алгоритмом поиска пути

– Есть ли сложности в изучении этого движка и если «да», то в чем они проявляются?

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

Жизненный цикл MonoBehaviour. Выглядит запутанно, да? Картинка Unity Technologies

На своем курсе я фокусируюсь как на внутренних особенностях, так и на основном функционале Unity. Моя задача – показать, какие есть инструменты и как ими пользоваться. Если ударять сильно в глубину движка, то новая проблема наверняка будет состоять в том, что ученикам в работе столько информации может не понадобится. У кого-то в игре физика не используется вообще, а у кого-то вся игра будет полностью построена на физике. Я считаю, что у человека, который хочет быть программистом, должно быть желание изучить что-то самостоятельно. Не стоит ориентироваться на то, что курс даст работу. Курс дает понимание основ, учит копать, думать и помогает пройти порог входа. Остальное придет с опытом. Главное – работать самостоятельно, тогда все трудности будут преодолимы.

Игра выпускника курса Воробьева Ильи Steampunk Pinball, было много усилий потрачено на тонкую настройку физики

– Приведите примеры популярных игр, которые написаны на Unity.

– Игр на Unity очень много. Миллионы приложений в Google Play сделаны на этом движке. Приведу примеры больших и красивых игр, которые мы можем встречать ежедневно: Escape from Tarkov, Rust, My Friend Pedro.  Обязательно стоит упомянуть Hearthstone. Эта игра поддерживается и работает на трех платформах. Также Cuphead – большой ранний эксклюзив Xbox. Сейчас есть такая же классная и на ПК, в ней все анимации сделаны вручную. Ori And The Blind Forest – просто сногсшибательная визуальная игра, обе ее части сделаны на Unity. И последняя для примера – Genshin Impact, она есть и на консолях, и на ПК, и на мобильных телефонах. Везде работает отлично.

Genshin Impact - популярная игра с постоянными контентными обновлениями как раз и сделана на движке Unity. Картинка download.komputerswiat.pl

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

– Расскажите подробнее о своем курсе по Unity.

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

Игра выпускника курса Вадима Филатова Bobby Rabbit, активно использует самостоятельно написанный редактор уровней

Чтобы попасть на курс, достаточно знаний С#. Все остальное не так важно. Даже математика не столь нужна, хотя ее знания будут только преимуществом. Достоинство Unity в том, что много математики уже спрятано за движком, поэтому мы  не столько пишем математику, сколько логику.

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

– В чем плюсы изучения Unity и какие есть минусы?

– Помимо того, что я уже перечислил выше, выделю следующие преимущества:

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

2. Unity хорош тем, что он переносной – работает и на iOS, и на Android, и на огромном количестве платформ. Если есть платформа, то вполне вероятно, что Unity на ней работает.

3. Огромный плюс движка – С#. На нем намного проще дебажить и писать игровую логику. С# не такой сложный, в нем есть встроенная Garbage Colletor, система рефлексии и другие приятности современных языков, такие технические вещи,  сильно облегчают жизнь при разработке.

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

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

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

– Если подытожить, то что даёт разработка на Unity после курсов?

– 1. Полное понимание того, как работает движок.

2. Практический опыт написания игры.

3. Понимание того, как пишутся видеоигры. Когда есть понимание, все остальное можно почерпнуть.

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

– Какие игры после обучения уже могут делать студенты?

– Зависит от того, сколько было самостоятельно изучено и насколько сильно человек заинтересован в своей идее. У меня еще не было таких случаев, чтобы я говорил «эту игру не получится сделать», потому что движок не позволяет или мы этого не проходили. За 3 месяца мы берем много тем, и с помощью этих знаний мы можем сделать абсолютно любую игру.

Игра выпускника курса Беденко Алексея с RPG элементами и процедурно генерируемым лабиринтом

– Пользуются ли спросом Unity-разработчики?

– Однозначно да. Зачастую компании ищут именно Unity-разработчика. Мне много вакансий приходило и приходит по этому движку. Также хочу отметить, что разработчики на Unity работают с С#. С этим языком можно пойти не только в игры.

– И напоследок, Ростислав, дайте 3 совета тем, кто хочет прийти на курсы и обучиться Unity.

– 1. Фокусируйтесь не столько на Unity, сколько на С#. Этот курс больше ориентирован на программистов. Я сам программист и поэтому не могу дать некоторые дизайнерские фишки. Зато отлично покажу инструментарий и как правильно программировать. Именно C# поможет сделать магию – движок больше инструмент.

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

3. И чуть ли не самый важный пункт – учите английский. Если вы знаете этот язык, то уже 40-50% того, что вас возьмут на работу. Не надо ориентироваться на уровень языка “супер Advanced”, однако важно понимать, что у нас рынок аутсорсинговый. Часто придется общаться с клиентом на английском, читать и писать документацию на этом языке, искать что-то тоже на нем. Русский интернет может дать много плохих советов, к тому же на английском все равно намного больше информации.

Подытожив, можно сделать вывод, что на курсах студенты изучают не только Unity, но и то, как работает движок. В будущем это позволит быть привязанным не только к Unity. Курсы могут навести на мысли о том, откуда в видеоиграх столько однотипных багов, как они появляются и как их можно избежать (если можно вообще).  Ученики рассматривают, как работает отрисовка и почему некоторые игры выглядят так, как они выглядят. Благодаря простоте движка, низкому уровню вхождения и языку С#, любой желающий прямо во время курса уже сможет сделать свои первые прототипы игр, а после обучения – сложить в портфолио свой первый проект, освоить интересную технологию и найти работу.


Полная, частичная перепечатка или любое иное использование материалов с сайта IT-Academy разрешается только с указанием активной гиперссылки, ведущей на первоисточник (точный адрес страницы на www.it-academy.by).