Статьи

Войти в ИТ: профессия Unity Developer

Компьютерные игры могут быть не только способом интересно провести свободное время. Разработка игр, или геймдев, – отдельное направление в ИТ-сфере. Что необходимо учить желающим создавать игры и к чему готовиться, выясняла РАБОТА.TUT.BY. В фокусе нашего внимания оказалась профессия Unity Developer, так как именно с помощью движка Unity пишутся многие игры для мобильных девайсов. Разобраться в теме нам помогла компания-разработчик мобильных игр и приложений Wowmaking.

О том, с чего начинать погружение в профессию, рассказал Unity Developer игровой команды “Ваумэйкинг” Сергей Агеев.

Войти в ИТ: профессия Unity Developer

Где используется движок Unity? Чем отличается от других движков?

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

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

В чем заключается работа Unity Developer?

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

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

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

Что должен знать Unity Developer?

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

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

Если человек захочет не просто писать код, а углубится в мультиплатформенность, то ему нужно будет разобраться в особенностях работы Android и IOS. Для первого необходимо освоить язык Java, для последнего – Objective-C, в более сложных проектах также придется столкнуться с языком С++.

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

На уровне чтения и понимания нужен английский язык. Все самое новое и актуальное существует только на нем. К моменту появления перевода в работе программы что-то может уже измениться. Без английского языка точно не вырастешь.

Разработка игр – чаще всего командная работа, поэтому нужно будет освоить инструмент для контроля версий. Чаще всего им является Git.

Как ты пришел в профессию?

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

Высшее образование я получил по специальности физика-исследователя. Несколько лет работал инженером: собирал научное оборудование, физические установки для измерений, программировал их. Даже успел пару лет поработать в Москве. А потом друзья позвали попробовать себя в разработке игр. Я вернулся в Минск и погрузился в геймдев. И вот уже почти 6 лет серьезно занимаюсь играми. Сразу работал с движком Cocos2d, Box2D а позже в основном с Unity. Для разработчика важно быть гибким и готовым переходить на работу с новыми движками в зависимости от задач бизнеса.

Как часто ты сам играешь в игры? Какие предпочитаешь?

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

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

Большое впечатление в свое время на меня оказала игра “Vampires: The Masquerade - Bloodlines”. На момент выхода в ней было много недоработок, но она была настолько интересной, что после закрытия компании-разработчика фанаты сами доработали игру. Еще одной невероятной историей для меня стала Final Fantasy. Разработчики планировали завершить присутствие своей компании на рынке изданием этой игры, но в итоге остались еще на несколько десятилетий.

Какие ресурсы для погружения в профессию можешь посоветовать новичкам?

Изучение языка С# можно начинать с официального портала Microsoft. Про сам движок Unity лучшим источником информации будет официальный сайт unity.com. На нем хорошо выстроена модель обучения. На сайте есть не только руководства, но и видеоуроки, которые раскрывают основные особенности языка, презентации и статьи, рекомендации по лучшим алгоритмам, методикам и практикам.

Специализированных книг много, но большинство из них будут полезны только опытным разработчикам. Единственное, советую почитать каждому программисту книгу “Совершенный код” (Стив МакКоннелл). В ней приведены хорошие практики, которые можно применять.

Какие из soft skills следует в первую очередь развивать разработчику?

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

Считаешь ли важным соблюдение work-life баланса?

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

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

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

Что посоветуешь тем, что решил войти в ИТ, став Unity developer?

Игровая индустрия – это история про любовь. Если человек не любит игры, то не рекомендую связывать с этим свою жизнь. Трудности во время разработки будут, но если есть любовь к играм, то ты их преодолеешь.

И еще один на первый взгляд странный совет. Нужно понимать, что все рекомендации строятся по принципу “как я пришел к успеху”, но такие люди и компании чаще всего исключения. Человеку, который решил стать разработчиком, полезно будет изучать ошибки других игр, особенно от ведущих компаний. Для этого можно смотреть speedrun, когда игроки проходят игру за максимально короткое время. Быстрое прохождение чаще всего становится возможным за счет различных ошибок в разработке. Анализ спидранов поможет избежать подобных ошибок в своих играх.

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

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

А начать свой путь можно вот здесь.

Вакансии дня