Вакансия: программист на Unity::Журнал СА 7-8.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6448
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7144
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4424
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3095
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3892
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3910
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6396
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3242
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3539
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7378
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10735
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12454
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14122
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9205
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7150
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5456
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4689
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3506
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3218
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3457
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3101
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Вакансия: программист на Unity

Архив номеров / 2017 / Выпуск №7-8 (176-177) / Вакансия: программист на Unity

Рубрика: Карьера/Образование /  Рынок труда

Вакансия: программист на Unity

Одними из самых популярных приложений являются игры. Это актуально как для рабочих столов Windows/Mac/Linux, так и для мобильных платформ Android/Mac/Windows Phone. Относительно недавно появилась среда, которая позволила вести разработку и осуществлять сборки игр под все популярные платформы и даже для веб, – Unity. Мы обратились к представителям компаний, чтобы выяснить, каких кандидатов они видят на позиции программиста Unity

  1. Какими знаниями и навыками должен обладать программист на Unity?
  2. Каков инструментарий программиста на Unity?
  3. Каковы требования компании к уровню образования потенциальных сотрудников?
  4. Какие требования предъявляются к опыту работы?
  5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

Александр Романов, ведущий разработчик Unity3D в компании Skytec Games

Александр Романов

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

2. В первую очередь это сам Unity и IDE для работы с кодом. Обычно для этого используется IDE, идущий в комплекте с Unity. Почти наверняка пригодится инструментарий для работы с Git-репозиториями или другими системами контроля версий. А дальше все зависит от специфики задач и особенностей компании. Если это мобильные разработки, то пригодится XСode для сборки приложения под iOS и их отладки. Для Android не требуется специальных программ для сборки (только Android SDK), однако для отладки пригодится Android Studio.

3. Обычно никаких специфических требований к уровню образования не предъявляется. Главное, чтобы человек имел все необходимые навыки и так или иначе имел опыт в программировании. Рекомендуется высшее техническое образование, а еще лучше, если оно будет в области ИТ.

4. В разных компаниях по-разному. Если есть навыки разработки проектов на Unity, то некоторые компании готовы взять человека и без опыта на стартовую должность. Но на более высокую должность и соответственно зарплату компании обычно устанавливают требование 3-5 лет опыта работы.

5. Да, конечно, в компаниях часто бывают специфические требования к сотрудникам. Обычно это знание английского языка (хотя бы на уровне чтения технической документации), умение работы с системами контроля версий, понимание принципов разработки клиент-серверных решений, иногда в требованиях встречается умение работать с нативными плагинами для мобильных платформ или навыки по их самостоятельной разработке и т.д.


Святослав Шумихин, Unity-разработчик, OOO InfoShell

Святослав Шумихин

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

Теперь про знания:

  • Конечно же, представление о том, что такое трехмерный мир, из чего он состоит, из чего состоят объекты 3D-мира – меши, полигоны, вертексы, текстурные координаты, нормали и пр.
  • Как все это рендерится – рендер буфер, очередность отрисовки, шейдеры, batching and drawcalls.
  • Игровой цикл (game loop) и сопутствующие события.
  • C#, принципы работы .NET, ООП, шаблоны проектирования применительно к Unity.
  • Структуры данных, сериализация.
  • Оптимизация кода, ассетов, сцен и проекта в целом.

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

А дальше уже в зависимости от проекта могут понадобиться знания сетевых протоколов, серверов, баз данных, умение писать ИИ и алгоритмы генерации различных структур. Очень востребованы сегодня VR и AR.

Часто нужно знать и уметь применять законы физики в разных авто- и авиа-симуляторах. Даже при анимировании элементов GUI применяется физика.

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

2. Основной инструментарий программиста Unity, конечно же, сам редактор Unity и любая IDE, поддерживаемая редактором, – Microsoft Visual Studio, MonoDevelop, может быть даже SharpDevelop.

При разработке под Android в этот перечень добавляются Android SDK, Java JDK и разные утилиты из Android SDK: monitor – для отслеживания логов, keytool – для создания ключей и пр.

При разработке под iOS добавляем XСode, Terminal.

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

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

Кроме работы собственно в Unity, для правильной организации проекта используются системы контроля версий (Git, SVN, Mercurial). Для управления задачами используются Agile-инструменты, а для удобства создания билдов внедряется Jenkins, тот самый Continuous Integration.

Так как программист много работает с ассетами, то иногда может потребоваться запустить Photoshop или какой-нибудь 3D-редактор, или звуковой редактор.

3. Пока компания не ищет Unity-программистов, но могу определенно сказать, что как минимум необходимо общее высшее образование, а именно высшая математика и физика. Без этих знаний программисту в разработке игр делать нечего.

Ну а стандартные требования: C#, ООП, .NET, знание основ трехмерного мира, понимание принципов работы игровых движков, знание английского на уровне чтения документации и умения задать вопрос Google.

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

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

5. Нет, на сегодня каких-то специфических требований мы не выработали.


Алексей Дюдя, Team Lead и Unity-разработчик компании iLogos

Алексей Дюдя

1. В первую очередь программист на Unity должен уметь программировать на C# и работать в редакторе Unity. Движок Unity дает возможность делать кросс-платформенные игры без особых знаний OpenGL или DirectX, однако понимание базовых концепций компьютерной графики и низкоуровневого API является несомненным плюсом и очень помогает в процессе оптимизации приложений.

Также программист должен уметь грамотно проектировать приложения. К этой сфере разработки можно отнести знания шаблонов проектирования, SOLID-принципов, понимание UML-диаграмм.

2. Важнейшими инструментами программиста на Unity являются сам редактор Unity и IDE (Visual Studio, Rider EAP, MonoDevelop). Однако, помимо этого, программист обязан уметь работать с системами контроля версий, такими как Git или SVN.

При работе с графикой иногда доводится работать с Photoshop и 3D-редакторами, такими как Maya или 3D Max.

3. Специфических требований к уровню образования потенциальных сотрудников у нас нет. Я сам попал в компанию, будучи студентом-третьекурсником. В первую очередь мы смотрим на знания и навыки кандидатов, предлагаем им выполнить небольшое тестовое задание. Однако, как показывает наша статистика, большинство успешных кандидатов все-таки имеют высшее образования по специальностям, связанным с разработкой ПО.

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

5. Специфических требований для кандидатов мы не выставляем, большинству вещей можно научиться в процессе работы, однако знание английского языка хотя бы на уровне pre-intermediate пригодится, большинство документации напроектах ведется на английском языке.

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


Сергей Профоров, генеральный директор ООО «Риэл Гео Проджект», офиса группы компаний «НЕОЛАНТ» в Дубне

Сергей Профоров

1. В первую очередь программист на Unity должен владеть языком программирования C# и знать принципы объектно-ориентированного программирования. Во-вторых, владеть графическим интерфейсом среды Unity, способами расширения и автоматизации работы в нем. В-третьих, конечно, нужно знать, как работает движок Unity, жизненный цикл объектов, работу «корутин», назначение базовых классов, таких как MonoBehaviour.

2. Собственно среда разработки Unity. Для написания кода можно использовать MonoDevelop, но для пользователей Windows более привычна будет Microsoft Visual Studio с расширением для отладки приложений Unity.

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

Нелишним будет наличие графических редакторов, таких как Gimp, Adobe Photoshop или аналогов, и трехмерных редакторов Blender либо Autodesk 3ds Max и SketchUp.

3. Наша компания рассматривает соискателей с высшим либо с неоконченным высшим техническим образованием (студентов старших курсов). Изредка попадаются таланты без высшего образования или с другой специализацией, но сширокими компетенциями в области 3D и программирования.

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

5. Наша компания успешно занимается 3D-технологиями уже давно, и поэтому необходимо понимание принципов работы трехмерной графики, рендеринга изображений, обработки физики объектов. Помимо этого, на проектах с высокими требованиями к производительности и ограниченными ресурсами необходимо владеть тонкостями реализации фреймворка .NET в Mono.

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


Александр Николаев, руководитель отдела мобильной разработки в компании PlayFlock

Александр Николаев

1. С одной стороны, у Unity довольно невысокий порог вхождения. К примеру, чтобы начать делать свой первый небольшой проект, достаточно опыта программирования на любом с-подобном языке. Unity поддерживает C#, поэтому переход на него не вызовет много проблем. Для дальнейшего постепенного изучения будет достаточно официальных обучающих материалов.

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

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

2. Сама Unity обладает достаточно большим инструментарием для разработки. И, конечно же, надо знать весь предоставленный набор. Кроме самой Unity, понадобится:

  • редактор кода/IDE – я использую Visual Studio, но можно использовать Mono;
  • система контроля версий GIT – я отдаю предпочтение графической оболочке SourceTree;
  • для сборки билдов под iOS понадобится MacOS с установленным XCode.

Кроме вышесказанного, советую просматривать Asset Store. Там бывает много полезного и интересного.

3. Рассматриваются кандидаты только с высшим образованием. В то же время профильность не играет огромной роли. Более важным фактором служит умение думать и применять свои знания в деле. В нашей практике есть успешные примеры работы с кандидатами, не имеющими соответствующего образования.

4. Для каждой должности требуется разный опыт. Для младшего специалиста достаточно домашнего проекта на любой из платформ. Этого опыта обычно хватает для того, чтобы набить пару десятков обязательных шишек. Конечно же, знания кандидата проверяется тестовым заданием. Так мы можем быть уверены в том, что кандидат, приступив к работе, сможет самостоятельно выполнять самые простые действия с Unity и кодом.

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

5. В своих играх мы часто используем сторонние плагины. Такие как SDK социальных сетей, код рекламных интеграторов, решения для сбора статистики. Большинство из них не имеет сборку для Unity, а только под нативные языки платформ. Поэтому специфическим требованием к программистам Unity у нас являются базовые знания Java и Objective-C, а также минимальный опыт работы с Android Studio и XCode.


Павел Руфф, ведущий программист на Unity, стартап в ЕС

Павел Руфф

1. В геймдеве нет границ. Для начинающего разработчика нужны личные качества: стремление к играм и результативность.

Знания C# помогают, несложно перейти на Unity из корпоративной разработки. В моей практике успешно перешли сильные специалисты.

Стек технологий: движок Unity и C#. Все остальное зависит от проекта и команды.

Это могут быть Android/iOS-плагины, шейдеры, сетевое взаимодействие, архитектура и игровые паттерны, векторная математика, оптимизации.

2. Инструментарий разработчика: Git, Visual Studio, Resharper, Mac для iOS-сборки.

3. Требования по уровню образования… ну, думаю, 7 классов надо закончить. Конечно, высшее образование – обязательное требование во многих компаниях.

4. Требования к опыту работы для Senior/Lead: примерно 5 лет С#, 3 года Unity.

5. В наших командах внимание уделяется отсутствию регрессии, для этого рассматриваются аналитические способности и навыки контроля качества.


Дмитрий Коблык, CTO at Panzerdog

Дмитрий Коблык

1. Нужно знать C#, иметь неплохую математическую и алгоритмическую базу.

2. Для комфортной работы достаточно Visual Studio и системы контроля версий (SVN, Git, etc.). Для сборки под iOS также потребуется Mac.

3. Требований к образованию нет, но если у кандидата есть диплом о высшем образовании, связанный с программированием, то это несомненный плюс.

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

5. Главное требование в нашей компании – кандидат должен любить игры и играть в игры.


Михаил Корчун, ведущий разработчик, Halfpixel Games

Михаил Корчун

1. Unity довольно низкий порог входа. Есть большой соблазн использовать готовые решения из магазина плагинов (Unity Asset Store). Это дает возможность быстро начать, но у всех них есть ограничения, а зачастую просто низкое качество. В итоге проект может сильно пострадать. Подход DIY (Do it Yourself) довольно часто оправдывает себя, т.к. дает полную свободу.

2. Unity Editor, IDE для C# (мне лично нравится новый Rider от JetBrains), различные профайлеры: Unity Profiler, XCode, RenderDoc – зависит от целевых платформ.

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

4. Желателен опыт именно игровой разработки. Я пришел в геймдев после 6 лет работы над корпоративным софтом. В разработке игр подход другой: гораздо чаще меняются требования, ограниченные ресурсы, некоторые подходы кразработке просто неэффективны (это ставило в ступор первый год).

5. В front-end-разработке есть направления: спецэффекты (FX, шейдеры), искусственный интеллект (AI), инструментарий (Pipeline/Editor Tools), интеграция внешних сервисов (Facebook, Android, iOS, Steam, рекламные площадки и т.д.), Multiplayer (Unet HLAPI/LLAPI, Photon), анимация, физика. В больших командах они представлены отдельными должностями. В небольших командах нужны универсальные разработчики с базовыми знаниями во всех областях.


Алексей Лукоянычев, Unity3D lead developer в dizzystyle apps

Алексей Лукоянычев

1. С#, алгоритмы, графика, знанием самой Unity.

2. Unity3d, IDE (Visual Studio, Rider, Mono, Et cetera), Git или любая другая SVC, голова.

3. Упорство, находчивость, трудолюбие.

4. Вся работа должна быть по делу. Чистый С# также приветствуется.

5. Самодисциплина должна быть на уровне – удаленка ведь.


Илья Боковенко, фрилансер

Илья Боковенко

1. C#, ООП, векторная алгебра, graphics pipeline, shading models, шейдеры, современные техники рендера и оптимизации, отладка производительности. Движок, конечно, нужно знать в соответствии с потребностями проекта.

2. Сама среда Unity, Visual Studio.

3. Никаких. Лишь бы был в теме.

4. Dev – от года, senior – от 2, законченный проект.

5. Нет.

Подготовил Игорь Штомпель


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru