• Что изучать начинающему разработчику игр?

    G1ROG
    @G1ROG
    Доброго времени суток.
    Стоит всё-таки определиться с каким стеком хотите работать и какие игры разрабатывать.
    Небольшая вводная:
    Вакансий на Unity больше по сравнению на UE, не говоря уже о компаниях, кто имеет кастомные движки. Да, это так. В СНГ преобладает рынок мобильных игр, их делать проще и быстрее, доход больше, делают их в основном на Unity. Порог входа, как в С#, так и в сам Unity куда проще. На UE мобильные игры практически не делаются, ибо движок из коробки не очень подходит для таких целей по многим причинам. Его целесообразно использовать только для больших проектов с крутой графикой. Шарящего плюсовика найти на порядок сложнее, нежели шарписта, поэтому плюсовики будут на уровень выше, так скажем. Из этого следует, что на UE делают в основном AAA игры, коих в РФ почти нет, C++ разрабы стоят дороже, да и вообще затраты для бизнеса несоизмеримо больше.
    .
    Если для Вас первично как можно быстрее войти в геймдев и зарабатывать свои первые деньги - выбирайте Unity.
    + Unity дружелюбнее и проще для новичка, нежели Unreal Engine
    + Вакансий на начальные позиции больше
    + Для работы с Unity используют C#. Учить его куда проще, нежели C++.
    - Конкуренция повыше
    - Скорее всего будут мобильные игрушки/дрочильни/слоты. Одним словом, новый скайрим разрабатывать не будете)
    - Если потом захочется в "серьёзный" геймдев, то придётся учить плюсы и всё с этим связанное.
    .
    Что касается материалов, то это либо книги, уроки на ютубе/сайты. Курсов нормальных не знаю.
    В первую очередь учитесь программировать и учите сам язык C#, выполняете задачки после каждой главы для закрепления материала.
    *Если по книгам, то Шилдт -> Троелсен - > Рихтер.
    *Если книги не нравятся, то уроки от #SimpleCode на ютубе, либо сайты, подобные metanit.com.
    Далее, уже можно прыгать в сам движок. Тут могу лишь посоветовать только оф. документацию по Unity и уроки на ютубе. После этого уже сами поймёте в какую сторону Вам развиваться.

    Если Вам интересна "дорожная карта" по Unreal Engine, то дайте знать, но вкратце скажу. Порог входа намного выше, ибо движок сам сложнее, ну и нужно выучить C++ хотя бы до основных контейнеров и знать, как их применять, и как они работают. Вакансии есть только в столичных городах, а на начальных порах зарплата будет несильно выше, чем в качестве junior unity разработчика. Если мы говорим о разработке не с точки зрения финансового компонента, то сложность и более крутая кривая обучения UE - некая плата за то, что Вы будете работать с передовыми технологиями, над интересным и большим проектом уровня AAA. К счастью, в СНГ есть достаточно компаний/студий, кто может предложить такую работу, но их, конечно, на порядок меньше, чем вакансий Unity.
    Ответ написан
    Комментировать
  • Где обучают разработке игр на unity или unreal engine 5?

    G1ROG
    @G1ROG
    Доброго времени суток.
    Стоит всё-таки определиться с каким стеком хотите работать и какие игры разрабатывать.
    Если для Вас первично как можно быстрее войти в геймдев и зарабатывать свои первые деньги - выбирайте Unity.
    + Unity дружелюбнее и проще для новичка, нежели Unreal Engine
    + Вакансий на начальные позиции больше
    + Для работы с Unity используют C#. Учить его куда проще, нежели C++.
    - Конкуренция повыше
    - Скорее всего будут мобильные игрушки/дрочильни/слоты. Одним словом, новый скайрим разрабатывать не будете)
    - Если потом захочется в "серьёзный" геймдев, то придётся учить плюсы и всё с этим связанное.
    .
    Что касается материалов, то это либо книги, уроки на ютубе/сайты. Курсов нормальных не знаю.
    В первую очередь учитесь программировать и учите сам язык C#, выполняете задачки после каждой главы для закрепления материала.
    *Если по книгам, то Шилдт -> Троелсен - > Рихтер.
    *Если книги не нравятся, то уроки от #SimpleCode на ютубе, либо сайты, подобные metanit.com.
    Далее, уже можно прыгать в сам движок. Тут могу лишь посоветовать только оф. документацию по Unity и уроки на ютубе. После этого уже сами поймёте в какую сторону Вам развиваться.
    Если Вам интересна "дорожная карта" по Unreal Engine, то дайте знать)
    Ответ написан
    Комментировать
  • Переход с unity на unreal engine?

    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++" в вакансиях подразумевается, что вы работали с языком в коммерческой разработке и у вас есть опыт с этим языком, как минимум не ниже срока коммерческий разработки.
    Ответ написан
    Комментировать