GameDev — куда «шагнуть», и как туда попасть для обучения?
============================================================

 Доброго времени суток!  

Сам вопрос в последнем абзаце. Волею судеб высшее образование не получил, остановившись на 4 курсе. Университет такой, что программированию не научился. Полтора года как переехал и работаю в техподдержке одного СКБ. Тут обустроился, и вроде возвращаться не собираюсь. Накапливалось, и вот сегодня на работу я пришел с мыслью, что мне она осточертела. К программированию всегда тяготел, но в университете этому, можно сказать, не учили. Сам же я работал тогда (чтобы на что-то жить), и свободного времени не было, поэтому тоже изучил весьма и весьма поверхностно. Начинал на C++ писать программу к своей научной работе на тему голосового отпечатка. Правил скрипты на js, php, правил верстку сайтов, иногда избавлял сайты от вирусов несложных.  
  

Всегда интересовали игры. Узнавал как они устроены, узнавал про движки тех же Квейков и Думов. Сейчас наконец с января начал изучать HTML5+JS именно в плане игр. Но так как две работы, то времени совсем немного, и в итоге все, что я пока что могу по истечению месяца - одноэкранный Space Invanders или Galaxian какой-нибудь образца 8-битной эры.  
  

Это все о том, насколько слаб я в программировании. Вопрос к людям из сферы, или даже совет скорее хотелось бы получить. Желание даже в качестве стажера пойти, с урезанной зарплатой, вот так хочу научиться и дальше с этим работать. Что должен знать, уметь, что иметь за плечами человек, который хочет хотя бы вот так попасть в разработку игр?  
  

P.S. Если важно, место действия - Новосибирск. 

[С чего начать путь в Game Dev?](https://toster.ru/q/152497)  

[Что нужно, чтобы стать разработчиком игр?](https://toster.ru/q/167533)  

[Какое должно быть портфолио?](https://toster.ru/q/153023)  
  

Хотите делать игры - делайте игры. Участвуйте в геймджемах ([Ludum Dare](http://ludumdare.com/compo/), [itch.io](http://itch.io/jams), [Global Game Jam](http://globalgamejam.org/)) и выкладывайте всё в интернет. Есть [хороший канал про игры](http://www.youtube.com/channel/UCCODtTcd5M1JavPCOr_Uydg) на YouTube, буквально на днях они начали [серию роликов про разработку](http://www.youtube.com/watch?v=z06QR-tz1_o), очень полезно, посмотрите. Походите на собеседования, там вам скажут чего не хватает. 

 А вы уверены, что дело именно в интересе к геймдеву, а не в нелюбимой и скучной работе? Может быть, место вашей мечты в соседнем отделе или даже в вашем, просто на другой должности? Техподдержка не самое интересное занятие на Земле, но в геймдеве, особенно на младших должностях, очень много не менее скучных задач, правда.  
  

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

Что же касается "как попасть" - два пути:  
1. быть профессионалом и пройти собеседование
2. прийти с улицы и расти внутри компании

  

Второй путь ничуть не хуже первого. У нас есть парень, который пришёл как техподдержка, отвечал на письма. Но сам по себе активный, вообще не про программирование, начинающий художник. Сейчас перешёл в тестирование + рисует комиксы по нашим играм. Надеюсь через год увидеть его в должности геймдизайнера.  
  

Обещанная цитата:  

> Вы уверены, что разработчику игровых движков не кажется, что он занимается всякий рутиной, типа борьбы с утечками памяти, а настоящие пацаны где-то пишут на нормальных языках программирования и деплоят высоконагруженные веб-проекты на сотни серверов? Уверены, что не попадете из уютненького стартапчика в кровавый энтерпрайз, где будете поддерживать тонны легаси говнокода, написанного студентами первого курса в лихие девяностые? Уверены, что этот же геймдев вам точно так же не надоест через пол года?

  

Ссылка на статью про умение находить интересные задачи: [eax.me/interesting-tasks](http://eax.me/interesting-tasks/) 

*HTML5+JS именно в плане игр*  

Ну хватит уже страдать этой хератой... Вы действительно хотите делать игры, либо:  

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

??  

Если действительно серьёзно хотите в геймдев, то изучайте матан, алгоритмы, архитектуру компов, плюсы, hlsl и т.д.  

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

 Новосибирск значит?..  

Почитай про C#, про Unity. Попробуй себя в создании чего-нибудь в этой среде.  

О плюсах даже не думай. Шарпом владеть легче и спокойнее.  
  

Твоя первая задача - войти в состав группы разработчиков. В центре и Академе есть несколько контор, кто делает недоигры на Unity. Эта цель на ближайшие год-два, начиная с даты приема на работу.  

Математика на этом этапе поднимается сама собой, без нее у тебя просто ничего не выйдет.  

Цель вторая - сбор информации о внутренней кухне. Алгоритмы, методики, парадигмы/идиомы/шаблоны/подходы программирования. Собирай знания и прокачивайся через Unity. Занять может до года, до двух.  
  

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

Цель три. Если тебе хочется работать именно в области C/C++, то самое время начинать сползать с шарпа. Это может оказаться болезненным периодом, но иголки в кактусе не бесконечны. Справишься если захочешь.  
  

Советую прочитать от корки до корки (и гвоздями прибить к мозгу, дабы ни слова не забывалось) книгу Дж. Пойя "Как решать задачу" в редакции от Гайдука. Книга маленькая, но ее надо прочувствовать. В целом-то, с нее и начать свое движение будет полезно.  
  

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

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

 классика [www.ozon.ru/context/detail/id/1692806](http://www.ozon.ru/context/detail/id/1692806/)  

так и основы и математика 

 Вообще GameDev считается самым сложным направлением в разработке ПО и это одно из немногих направлений, где реально нужны институтские знания (матан, физика). Для начала я бы советовал хорошо выучить один из языков программирования и устроиться обычным разработчиком, с целью понять как оно всё устроено, отточить навыки разработки ПО, познакомиться с базами данных, понять как строятся и работают большие приложения и потом начать читать литературу/проходить курсы по GameDev. А то получается машину водить так и не научился, но при этом хочу в стажёры к пилоту) От базы и от основ Вы никуда не денетесь