@MaksimAlexan

Какой выбрать стек для работы в GameDev?

На данный момент изучаю язык программирования Python. Раньше думал, что геймдев это неприступная крепость, а чтобы в неё войти нужно быть как минимум титаном. Но решил поставить себе цель — разработка AAA-игр в 'тех' самых компаниях. Собственно что есть у меня сейчас? Опыт вёрстки, основы JS/PHP, знание математики и физики на уровне 11 классов и почти прочитанная книга Лутца "Изучение Python", ну и мне 16 лет. Когда-то выбрал для себя бекенд сторону, имея мысль что просто не потяну геймдев, но понял что я скорее буду терзать себя дальнейшие годы из-за того, что не выбрал что-то более интересное. И так, перейду к вопросу. На что мне нужно ориентироваться сейчас? После изучения python хочу поковырять какие-то либы для запиливания игр и попробовать написать что-то вроде простенькой рпг в изометрии, где просто апаешь себе уровень убийством монстров. Потом хочу перейти к C++, который я ещё и в нептуаколледже должен буду изучать. Параллельно с ним вникать в математику, алгоритмы и ковырять движки. Я что-то делаю не так? Подскажите как мне развиваться в этой области и что делать не стоит. Какую связку вообще используют для геймдева сейчас? Навека это C++, но есть ещё Python и C#, к которым прикручивают движки. Готов развиваться и разбираться с любыми темами, даже если это будет сложно, от вас мне нужно просто узнать, какой путь изучения геймдева лучше выбрать.

Роль(разработка ИИ, геймплей, сети и так далее) выберу немного позже, так как в любом случае нужна база(алгоритмы, математика, несколько языков). Возможно я не прав во всём, если это так, то прошу сообщить меня об этом.
  • Вопрос задан
  • 5123 просмотра
Решения вопроса 5
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Если цель -- это именно работа в компаниях уровня Близзард, то я бы советовал следующие:
1) Поступить в технический университет в Мск или Спб (а ещё лучше в США или Европе), на специальность связанную с математикой, информатикой или разработкой ПО. Почему эти города? Всё просто: больше возможностей. Больше конференций и прочих мероприятий, больше компаний, ближе к развитым странам (привет программам по обмену студентами), да и уровень жизни в целом выше.
2) Действительно учиться в этом университет и не забывать заводить полезные знакомства.
3) Учить английский, желательно до уровня "свободно говорю".
4) Начиная со второго курса ходить на летние стажировки в крупные и не очень компании, которые занимаются разработкой игр (если повезёт найти такие, если не повезёт, то подойдут любые другие). Рассматривать в том числе и международные компании. Этот пункт очень важен, пожалуй, он даже самый важный.
5) Читать книги, которые вам перечислили (https://github.com/miloyip/game-programmer) и работать над своим проектом/проектами.
6) Да, вам нужен С++, но это не основной навык, есть ещё немало составляющих, которые вы приобретёте проходя стажировки, читая книги и работая над своим проектом.

Вообще, это универсальный набор советов, который можно применять для становления профессиональным разработчиком в любой отрасли, будь то игры, финансы, компьютерная графика и т.д. Если вам сейчас 16, то, следуя рекомендациям, годам к 25 у вас есть все шансы стать состоявшимся и востребованным специалистом.
Ответ написан
Комментировать
jamakasi666
@jamakasi666
Просто IT'шник.
Такой вопрос был тут отвечен уже тысячи раз. В кратце если учить с#\java и охватите сразу все платформы со своими плюсами и минусами. Если хотите прям по взрослому то с++ но готовьтесь к тому что придется его изучать гораздо дольше и не один год и даже не два и разработка займет намного больше времени но в целом вероятно сможете написать хоть какойто двиг с рендерем похожим на ААА движки.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Но решил поставить себе цель — разработка AAA-игр в 'тех' самых компаниях.
Вот у них и интересуйтесь. Найдите информацию как создавались игры и на чём в конкретной компании. Пишите им, что хотите работать у них и что Вам сейчас изучить и в какой последовательности. Если они заинтересованы в поиске таких - возможно, предложат удалённую стажировку с контролем Вашего обучения офисным сотрудником.

Если хотите просто попробовать с нуля создать продукт AAA-класса, то это годы развития в тучи разных сфер, которые объединяет GameDev. С большой долей вероятности, Вы можете просто выбрать не верный путь и придётся всё переучивать или отказаться от этой идеи, потратив годы...

По-поводу линка "https://github.com/miloyip/game-programmer": я бы отталкивался не от книг, а от последовательности задач и логических блоков, необходимых в разработке продукта (на конкретном языке, движке, платформе, от типа игры и т.д.).

PS: 5ab642fbba933980613337.jpegпример САМОЙ ПРОСТОЙ игры на Unity (на последней бета-версии Unity). Разверните на FullScreen для оценки рендера графики. Возможно, это то, что нужно Вам.
Ответ написан
Комментировать
mindtester
@mindtester
http://iczin.su/hexagram_48
Я что-то делаю не так?
скорее вы пока что спешите с выводами ))..
Навека это C++
даже это бабка надвое сказала ))..
.. есть понятие mainstream.. с++ - это майнстрим )).. но не более.. к примеру есть Dlang .. и многие от него прутся, устав мозговыноса плюсов.. если однажды корпорации его признают годным - плюсы полетят в забвение, со скоростью большей чем адобе флеш ...(то есть все равно не слишком быстро )))

.. вернемся к геймдеву - по большому счету, в нем немеряно уже оттяпали и js, и питон.. ну а уж про C# и говорить нечего - цельный движок Unity !!! (хотя надо помнить, что это не МС шарпы, я думал самостоятельная реализация, но меня тут недавно ткнули носом - это Mono ))

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

я вот плотно сижу на шарпе... и из того что замечаю - в гейм деве ему очень даже место есть (и эт даже не только Unity, есть и другие фрейворки, по крайней мере под винду, хотя львинная доля у Unity.. и он кросс.. ))

плюсы считаются способом эффективно реализовать эффективный код.. но по эффективности кода проигрывают обычному С.. и уж тем более ассемблерам

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

дальше решайте сами ))
Ответ написан
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Советую питон пока не бросать, а поиграться сначала с pygame, а потом с pyglet. Так вы разовьёте программистскую эрудицию и заодно поймёте, почему питон в чистом виде используют только для визуальных новелл. После этого спускайтесь ещё ниже к плюсам и чистому OpenGL, только долго там не засиживайтесь, свои движки с нуля нынче никто не пишет. Параллельно можете почитать про шаблоны программирования и полистать GPU Gems, Graphics Gems и Game Programming Gems. Книги из серий Gems нужны не для изучения конкретной реализации, которая, скорее всего, уже устарела, а для всё того же кругозора, алгоритмы и подходы из этих книг в геймдеве встречаются повсеместно. Когда разберётесь с кишками рендеринга и игровыми циклами, переходите к готовым движкам, установите и пощупайте пяток, потом выберите один и изучайте. Кроме этого ещё нужно уметь работать с git, полезно будет хоть раз поковыряться в Max/Maya/Blender, но, в принципе, после этого можно будет двигаться куда угодно, у вас будет полное представление о том как работают игры, дальше вам нужен будет только опыт разработки в команде, сделаете пару тетрисов-арканоидов для резюме и найдёте работу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@potan
Функциональный программист
В gamedev медлено, но верно проникает Rust. Он заметно проще, чем C++, но там есть свои тонкости, с которыми придется разбираться. К окончанию института он уже будет иметь заметный вес на рынке. Но разработчиков на нем не много, учить новое мало кто хочет, а тех, кто решится быстро переменивают в blokchain (там Rust уже основательно закрепился). Так что имеет смысл заняться этим языком.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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