0

Просматривал вакансии в ААА-студиях в gamedev - достаточно часто требуется программист игровой графики С++. Но опыт колоссальный нужен. Может кто обрисовать roadmap по этому направлению? Ну или хотя бы советы начинающему заниматься графикой. (какой фреймворки, библиотеки, другие языки, образование) т.к. в СНГ почти нет ААА-студий, есть альтернативы где можно начинать опыт набирать? Где еще востребована эта специальность?

k-morozov
  • 333
  • где начать набирать опыт я имею ввиду сферу - а не конкретные компании – k-morozov Sep 13 '20 at 14:41
  • Тут часть вопросов не по программированию, на часть невозможно дать объективный ответ, а все вместе -- вопрос слишком широкий – dIm0n Sep 13 '20 at 16:50
  • 1
    https://github.com/utilForever/game-developer-roadmap – Croessmah stands with Russia Sep 13 '20 at 19:49

1 Answers1

2

В СНГ всё же есть геймдев компании, может и не ААА класса, но всё же довольно неплохие, куда можно устроиться и набираться практического опыта, перенимать знания и навыки.

По скиллам дорожная карта примерно такая:

  1. Собственно знание C++, возможно современных стандартов, STL, возможно низкоуровневых моментов вроде ASM и библиотек для работы с различными ресурсами: Assimp, FreeImage, FreeType.
  2. Хорошее знание структур данных и алгоритмов. Например, см. Книги по теме Алгоритмы. Практиковаться можно на ЛитКоде и подобных сайтах.
  3. Хорошее знание графического конвейера, OpenGL последних стандартов, шейдеров и GLSL.
  4. Хорошее знание хотя бы одного игрового движка: Unity и, особенно для Плюсов, UnrealEngine, Godot. При желании можно начать и с 2D: Box2D, Cocos2D, SFML.
  5. Будет не лишним понимание сопряжённой геометрической математики (векторы, матрицы, однородные координаты, афинные преобразования), а также физики света и формулы, алгоритмы для её симуляции (хотя бы алгоритмы затенения Фонга, Гуро).
    Можно ещё попробовать базово освоить 3Д моделирование и анимацию, чтобы лучше понимать коллег по цеху, иметь материал для практики, и разобраться с текстурами, материалами.

Для успешного построения карьеры геймдев-разработчика зарубежом скорее всего в любом случае придётся набираться основному опыту самостоятельно. Если навыков промышленной разработки пока нет, то для начала можно пойти и в классическую компанию, где развить основные навыки разработки до уровня нормального middle developer'a. Затем надо идти в геймдев индустрию; если повезёт, то можно и сразу, на джуна, но только если компания хорошая, способная научить best practices. А там, ближе к уровню senior, уже видно будет ;)

AivanF.
  • 9,858
  • написано конечно красиво. А потом на собеседование приходит сеньор, спрашиваешь "вот есть два игрока на 2д карте, координаты x и y для них известны, как найти расстояние по прямой?". и такое выдают... По факту - написанное нужно только, если идти в разработку движков и подобного. Но там своя кухня и просто так с улицы не берут. А если делать интерфейс пользователя, банальную логику, настройки, то 3/4 выше написанного никогда не понадобится. – KoVadim Sep 13 '20 at 17:34
  • @KoVadim ага, а потом такого разработчика игровой графики попросят сделать красивый эффект прицела как в настоящей линзе, а он матрицы преобразований с однородными координатамии не понимает, попросишь его bloom filter добавить с какими-то нестандартными особенностями, а он в шейдеры не шарит, только примитивный код копипастить может. Этим и отличается senior разраб, обширными познаниями, в том числе теоретическими, что делает его готовым к любым сложным задачам, а не только интерфейсики клепать. – AivanF. Sep 14 '20 at 05:10
  • Вы смешали две задачи в одну:) Там есть задача самого прицела и его отрисовки. И это решает две различные команды. А вот зачем нам bloom фильтр к прицелу... я не знаю. Может blur? Вы точно разработчик игр? – KoVadim Sep 14 '20 at 07:11
  • Я и не говорил, что bloom filter нужен прицелу, просто упомянул пару задач из компьютерной графики, где нужна хорошая база. 2. Нет, гейм.дев для меня лишь хобби с несколькими пройденными курсами и проектами, но знакомые в индустрии есть, и только в самых топовых компаниях имеется такое сильное разделение по узким направлениям, в мелких, средних и многих крупных актуальны более обширные познания. Более того, технологии у всех разные, какие проекты и задачи попадутся и какие варианты развития выбирать – это уже на выбор ОП, я лишь обрисовал основные понятия, тематики и возможные направления.
  • – AivanF. Sep 14 '20 at 09:50
  • bloom фильтр - это больше к базам данных. Для меня геймдейв - каждодневная работа:) – KoVadim Sep 14 '20 at 09:55
  • Тот скорее к структурам данных в целом, а не чисто к БД. Вы наверное бэкэнд разработчик, а не по графике? Человеку из темы вспомнился бы другой bloom (: – AivanF. Sep 14 '20 at 14:20
  • я 3д графику глубоко не хожу, хотя и приходится трогать немного. Мне в пользовательском интерфейсе хватает. А бэкенд разработкой я занимался когда то давно, но особой (пхп выпиливал:) ) – KoVadim Sep 14 '20 at 14:43