Переход с unity на unreal engine?

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

Студент, заканчиваю университет(computer science). В свое время долго не мог разобраться, чем я хочу заниматься в айти: сначала думал пойти в веб, но, попробовав, разочаровался. В итоге попробовал gamedev: c++, opengl с шейдерами, многопоточность, понимаю как работает физика, освещение, тени(да и в общем рендеринг), фактически писал свой примитивный движок с нуля(но тут я как раз больше времени тратил на это хотелось и геймплей тоже).

Универ для меня был адским стрессом, хоть и были полезные и интересные предметы, очень много математика, сейчас уже намного проще. До последнего оттягивал поиск работы, ибо продавать треть жизни казалось мне депрессивным делом. В любом случае, время пришло(надо же начинать работать + у нас в стране отработка 2 года, если поступил на бюджет. поэтому нужно самому ее найти, чтобы работать в нормальном месте) и я начал оценивать свои варианты: unity, unreal engine, проприетарные движки. Последний вариант сразу отпал из-за отсутствия вакансий, на unreal engine было мало и в них просили по 6+ опыта работы(я тогда не знал, что даже на такие вакансии есть шанс пройти). В итоге решил изучать unity. Устроился на работу два месяца назад, и у меня стойкое ощущение, что я встал не на тот путь. Хороший офис, коллеги, свободный график, можно работать удаленно, прохожу в рабочее время курсы по проектированию, но у меня ощущение, что я недооценил себя и свои возможности.
я поздно понял, что 99% работы на юнити - мобилки, из них большая часть гиперказуалки(вообще не интересно такое делать). Я работаю над проектом среднего класса, это сетевая игра под мобилки, легаси код, бывают интересные задачи, но в том числе приходится заниматься UI(мне веб этим в том числе не нравился), чувствую, что занимаясь ui, трачу время впустую. Мне не нравятся агрессивные монетизационные политики, которые приближают игру к pay to win, а это прям основа заработка в мобильных играх. Я хочу писать под пк/консоли, работать с крутой графикой, выжимать производительность из железа, выдавая крутую картинку, а не путем урезания графония до минимума, не хочу колупаться в ui(разве что какая-нибудь система инвентаря, а не кнопки рекламы и покупки валюты). Мне интересна как и работа движков, так и написание геймплея.

Мой знакомый работал с анализом изображений на c++ 2 года, недавно его пригласили на собес и взяли с++ разрабом без знания gamedeva и соответсвенно(unreal engine), сейчас он проходит курсы внутри компании по этому движку. Несмотря на смену направления он получил большой прирост к зарплате. Аутсорсинговая компания, будет писать проекты для Ubisoft, EA. У меня искренняя белая зависть, я тоже хочу попробовать себя на таких проектах

САМИ ВОПРОСЫ
  1. Ищут ли рекрутеры на должность unreal engine/проприетарных движков людей с коммерческим опытом работы на unity(с указанием знанием плюсов в резюме), сталкивались ли вы с такими ситуациями?
  2. Насколько сложно сменить работу на unreal engine/проприетарные движки(напишу проекты на unreal, имея проекты на чистом c++ и opengl)?
  3. В случае смены работы (скажем, опыт год или два) я становлюсь снова джуном с начальной зп?
  4. Если это так, неужели коммерческий опыт работы на c++ релевантнее коммерческого опыта работы в геймдеве + знание c++?
  5. Оказывались ли вы в похожей ситуации, поделитесь своим опытом? Что вы думаете о моих стязаниях?
  • Вопрос задан
  • 1808 просмотров
Пригласить эксперта
Ответы на вопрос 2
G1ROG
@G1ROG
Привет. Мои мысли насчёт 5-го вопроса вынесу в начало ответа.
.
Если вас интересует именно крутая графика и хардкорная оптимизация, то вам прямой путь в рендер-программисты. Это отдельная предметная область, которую можно применять не не только в геймдеве. Эти люди как раз разрабатывают/модифицируют графический движок, заботятся о стабильном фреймрейте на разных платформах, знают многое об оптимизации, работе GPU, умеют программировать GPU, пишут шейдеры, знают шейдерные языки GLSL/HLSL, короче говоря упарываются по железу. К сожалению, это очень узкая область и вакансий на такие должности ещё меньше, чем на UE на просторах СНГ, но они есть.
Требования:
- C/С++
- Архитектура компьютера
- Умение программировать GPU
- Хороший математический бэкграунд | Линейная алгебра в первую очередь
- Знание OpenGL/DirectX/Vulkan/Metal
- Плюс в копилку, если есть опыт работы в UE/Unity
Плюсы:
+ Конская зарплата, по сравнению с другими профессиями в геймдеве | 3+ года опыта - зарплата от $5000 обеспечена
+ В игровой студии такие программисты, так скажем, более почитаемые. Их мало, их сложно найти, а забыть невозможно. Устроиться в AAA студии, такие как Rockstar/Naughty Dog/CDPR, будет проще, по сравнению с другими программистами.
+ Кранчи в геймдеве - это отдельная тема, но этих спецов данная проблема касается менее остро.
+ Возможность работать не только в игровой индустрии. Hardware компаниям нужны такие спецы и платят они достойно, по крайней мере больше, чем в геймдеве. Есть работа и в сфере мобильной разработки (погуглите приложение Prisma в AppStore), даже в вебе можно найти работу (см. WebGL).
Если говорить о минусах, то это только высокий порог входа и вакансий на стартовые позиции почти нет.
Если надумаете развиваться в будущем именно по этому профилю, то есть несколько хороших книг:
- Game Engine Architecture | Библия для геймдевелопера. Автор Jason Gregory.
- Physically Based Rendering | Хорошая книга для программиста графики. Автор Matt Pharr.
- Real-Time Rendering | Ещё одна хорошая книга. Автор Eric Haines.
После изучения напишите простенькую демку с использованием API и можно пробовать устраиваться.
.
Вакансий на Unity больше по сравнению на UE, не говоря уже о компаниях, кто имеет кастомные движки. Да, это так. В СНГ преобладает рынок мобильных игр, их делать проще и быстрее, доход больше, делают их в основном на Unity. Порог входа, как в С#, так и в сам Unity куда проще. На UE мобильные игры практически не делаются, ибо движок из коробки не очень подходит для таких целей по многим причинам. Его целесообразно использовать только для больших проектов с крутой графикой. Шарящего плюсовика найти на порядок сложнее, нежели шарписта, поэтому плюсовики будут на уровень выше, так скажем. Из этого следует, что на UE делают в основном AAA игры, коих в РФ почти нет, C++ разрабы стоят дороже, да и вообще затраты для бизнеса несоизмеримо больше. Компаний, которые пишут свои собственные движки на С++ для мобильных игр - единицы.
.
1. Ищут ли рекрутеры на должность unreal engine/проприетарных движков людей с коммерческим опытом работы на unity(с указанием знанием плюсов в резюме), сталкивались ли вы с такими ситуациями?

Скорее наоборот, Unity разработчики промышляют подобным, поэтому да - это довольно популярный кейс, поскольку, нередко Unity-девы, так скажем, поднатаскали скилл, поняли как работает определённый пайплайн и захотели уже заниматься серьёзным геймдевом (в основном прыгают в UE, в компании, где есть кастомные движки - сделать прыжок сложнее). Если вы знаете базу C++, знаете и умеете применять на практике vector/map/list - неплохо, знаете как они работают под капотом - тоже неплохо.
.
В данной связи:
1. Вам нужно изучить основу UE (система рефлексии, ивенты/делегаты, UMG, жизеннный цикл и тп.)
2. Понять специфику C++ в движке, поскольку там нет STL, есть куча макросов, короче говоря свои особенности.
3. Сделать простенький проект, систему инвентаря например, а ещё лучше поучаствовать в каком-нибудь опенсорс проекте, благо они существуют (можете погуглить).

2. Насколько сложно сменить работу на unreal engine/проприетарные движки(напишу проекты на unreal, имея проекты на чистом c++ и opengl)?

На самом деле, несмотря на небольшой спрос на UE девелоперов по сравнению с Unity, вакансий достаточно в столичных городах РФ, конкуренция на вакансию куда меньше, поэтому сменить стек и получить работу несложно. У вас есть база по языку, есть опыт с графическим API, есть опыт работы в команде, есть основна гита. Осталось только выучить основы движка и реализовать свои знания на практике. После проект залить на гитхаб. От силы это займёт 2-3 мес, если вкидывать несколько часов каждый день.

3. В случае смены работы (скажем, опыт год или два) я становлюсь снова джуном с начальной зп?

К сожалению, иначе никак. Язык другой, движок другой, специфика разработки несколько иная. Учитывая ваш опыт, наверстать просадку по зарплате получится быстрее, нежели тому, кто просто знает Unity/C# и не имеет знания по плюсам вообще.

4. Если это так, неужели коммерческий опыт работы на c++ релевантнее коммерческого опыта работы в геймдеве + знание c++?

Да, релевантнее. У вас просто база по языку, который вы использовали только для пет-проектов, а коммерческий опыт над реальными задачами был с C#. А под "знанием C++" в вакансиях подразумевается, что вы работали с языком в коммерческой разработке и у вас есть опыт с этим языком, как минимум не ниже срока коммерческий разработки.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Программисты везде нужны, и в мобилках и в ентерпрайзе.

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

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

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

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

Войдите, чтобы написать ответ

Похожие вопросы