Стоит ли тратить время на GLSL и OpenGL во времена Unreal Engine 4?
Хочу из веб разработки перейти в геймдев. Пока поставил цель попробовать разработать пару простых мобильных игр-кликеров сложностю Flappy birds. В студенческие годы игрался с С++, базу даже чуть чуть знаю. Сейчас читаю книгу Липпмана по С++ и параллельно смотрю курсы по OpenGL, но ловлю себя на мысли, что OpenGL сегодня не самый востребованный навык, это низкоуровневый язык позволяющий работать с графикой, но вряд ли стоит думать, что кто то будет писать игру на нём без использования движка. С другой стороны я что то слышал про Unreal Engine 4, по нему есть множество курсов, у него уже есть все инструменты, чтобы разработать простую игру. И вот собственно возник вопрос, стоит ли мне продолжать изучать OpenGL в контексте С++ и углублятся в язык шейдеров или эти инструменты нужны людям, кто занимается непосредственно разработкой игровых движков? Мне нравится OpenGL и нравится его изучать, но не хочется тратить время на то, что будет бесполезно. Цель то в итоге пока - это просто разработка простых мобильных игр.
Роман Денискин , внесу небольшое уточнение.
Тебе стоит разобраться в своих желаниях.
Если тебе хочется делать игры: взять все-таки стоит Unity, т.к. там минимальный цикл разработки многократно меньше UE4.
Если тебе хочется пойти в серьезный геймдев и делать именно игры, тогда все верно: стоит брать UE4 и получить хорошую квалификацию в C++.
Если тебе хочется работать в области разработки игр, но непосредственная разработка тебя интересует мало, тогда UE4 для тебя - это не более чем книга для чтения, а изучать уже нужно архитектуру, алгоритмы, математику, оптимизацию, профилирование, низкоуровневые API самых разных осей и направлений. Нужно знать как эффективно работать с памятью и с разными процессорами, как эффективно использовать GPU, как эффективно и понятно писать технически сложный код.
И вот тогда, как написал Владимир Коротенко , ты как минимум будешь понимать что под капотом у высокоуровневых инструментов. Лет через 5-7 начнешь понимать, если прямо сейчас приступишь. Это долгая и тяжелая дорога к работе в серьезных компаниях.
И через эти 5-7 лет OpenGL уже будет не нужен. Он и сейчас уже не больно-то нужен, в виду наличия более эффективного вулкана. И тут снова проблема. Вулкан - это очень сложная система с множеством свобод и большими требованиями к профессионализму пользователя. К нему надо подходить уже со знанием графического конвейера, а на это снова нужно много времени и практики.
Евгений Шатунов подскажи пожалуйста, а в этой истории сейчас как то фигурирует GLSL или сейчас в тренде какие то другие языки программирования шейдеров? И по поводу сроков - очень грустные они какие то. Я в принципе уже сейчас работаю мидл-программистом в веб-разработке (стек Laravel, Symfony, Docker, Linux e t.c.), т.е. прям новичком меня не назвать. С++ ковырял мало, конечно, да и в принципе понимаю, что язык обширный, так же как и тема с графикой. Но 7 лет, это срок, когда полностью нулёвого студента можно мидлом сделать как по мне. Так есть ли смысл рыпаться в геймдев разработку изучая кучу новых компетенций, опускаясь в зп до джуна (как я понял из твоих слов лет на 5). И в случае если я таки решусь, на какие зп тут и на западе может примерно рассчитывать разработчик С++ со знанием того же UE4 + Vulkan? Вопрос конечно меркантильный, но должна же быть мотивация соскакивать с зп в 2к$ гарантированных мне сейчас в вебе и возвращаться к Ролтонам и съёмным комнатам) Если что, регион - Москва.
P.S. И да, большое спасибо за ответы) Заглянул к тебе в профиль, ты крутой.
Так есть ли смысл рыпаться в геймдев разработку изучая кучу новых компетенций
Тут как сказать... Вот лично я, исключительно по своему опыту. Для меня на моем первом курсе стало откровением что я смогу работать в геймдеве. В те года, насколько мог, я рыл информацию о том, как создавать игры, но находил только информацию о том, как писать свой движок. И интереснее всего для меня стала именно разработка движка.
Все определяют твои интересы. Если у тебя мало интересов на твоей текущей работе, если тебя тянет в другую область, то попробовать себя, конечно, стоит.
5-7 лет - это, в большей степени, специфика C++. Использовать его не так просто, обучаться работе с ним тоже непросто. До сих пор на разных должностях работают люди, которые, в целом-то, пишут на этом языке, но зачастую даже не понимают что именно они пишут. Ты смотришь в этот код и у тебя волосы встают дыбом. :)
Я работаю не только с плюсами, я активно применяю и питон, и шарп, и некоторые встраиваемые языки. И вот если у меня приключается проблема с питоном или шарпом, я чаще иду сюда или на so. Но если у меня случается проблема с плюсами, я иду читать стандарт и документацию. На других языках и писать проще, и проблемы решаются легче. В этом суть вот этих 5-7 лет. А на работу ты можешь пробовать устраиваться хоть с текущими знаниями, тебе по требованиям к сотруднику все расскажут.
И в случае если я таки решусь, на какие зп тут и на западе может примерно рассчитывать разработчик С++ со знанием того же UE4 + Vulkan?
Про з/п придется разговаривать непосредственно с будущим нанимателем. Но что-нибудь между $1.5k и $3k/mth вполне может нарисоваться. В общем смысле ты вполне можешь рассчитывать на все те же $2k/mth на среднем уровне. Но еще готовиться стоит к тому, что у пользователей C++ в целом зарплата немного не соответствует требованиям, она обычно изрядно ниже.
Как минимум, если тебе захочется именно зайти в геймдев оглянуться, ты можешь попробовать такой план.
У тебя определенно есть некоторая подушка безопасности. Вбрось в нее еще на три месяца вольной жизни и попробуй устроиться на эти три месяца джуном хоть на тот же UE4. Я тебе гарантирую, когда окажешься в офисе (ну... после всех карантинов, конечно же) рядом с опытными ребятами, у тебя на многое откроются глаза и многие направления попрут как по маслу.
Три месяца пройдет, там и решай уже что и как. Вернуться к своей текущей работе ты ведь все так же сможешь.
Кстати... да...
разработчик С++ со знанием того же UE4 + Vulkan
Вот такой толковый человек может рассчитывать на многое.
Это - Graphics Engineer (Graphics Programmer), от которого требуется не просто уверенное знание плюсов и GAPI, а знания физики, математики, алгоритмов, оптимизации по времени и данным для GPU, понимание современных графических конвейеров и много всякого другого интересного. Обычно у этих людей перекос или в программировании, или в точных науках, а в противоположном направлении наблюдается просадка знаний. Так вот, полноценно развитый инженер графики - это крайне ценный специалист.