Как правильно вкатиться в разработку игр?
===========================================

 Доброго времени суток. С недавних пор очень захотелось влиться в геймдев, так как есть огромное количество идей разной степени адекватности, которые я хотел бы воплотить в жизнь. Сам учусь в 11 классе, знаю только Pascal, Python и совсем капельку C. На Python делал немного -- всякие змейки, парсеры и подобие форума на Django. В общем так, по мелочи. Впоросы такие -- что мне минимально нужно знать и уметь для того, чтобы начать заниматься геймдевом? Какие языки и технологии сейчас актуальны в геймдеве?   

 Inb4 Слышал, что нужно ещё какие-то космические знания и умения иметь в точных науках, но благо математика и физика у меня идут очень и очень хорошо. Книги готов читать запоем. Английский знаю в достаточной мере для того, чтобы читать документацию и т.п. 

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

Однако вы, похоже, не совсем понимаете, что означает "заниматься геймдевом". Это примерно, как строить ракету или космический корабль. Конечно, если это не змейка или пятнашки. То есть свой велосипед или самокат вы сможете собрать из говна и палок, но продать такое не получится. А вот чтобы сделать что-то стоящее, хотя бы разработать автомобиль, нужно уже конкретно в автомеханику, да и то там уже куча моментов, которые один человек не осилит: устройство двигателя, аэродинамика и удобство салона - это абсолютно разные сферы знаний. Добавьте к этому маркетинг и технологии производства, и станет очевидно, что одному человеку такую задачу не решить.  
  

Также и с играми. Попробуйте ради прикола написать 2-3 предложения (не больше) описания игры в Стиме (или в мобильном сторе) для пользователей, чтобы в них содержалось самое главное об игре, чтобы пользователи заинтересовались ей. От этого зависит, будут ли люди скачивать/покупать игру, или же будут проходить мимо. Думаете, это просто? А вы попробуйте зацепить свою аудиторию. Забыл сказать, аудиторию тоже выбрать нужно, и ответ "моя аудитория - весь мир", это ответ на двойку.  
  

Придумайте иконку игры. Казалось бы, просто? Но у специалиста может уйти до 2 недель, если не больше, с учетом А/B тестирования, привлечения экспертов для оценки, собственно самих художников, чтобы ее нарисовать. Хотя я не спорю, иконка, сделанная на коленке за 10 минут, может быть самой удачной, но это уже лотерея, никто не запрещает испытывать судьбу на прочность, это дешево, просто шансы на успех стремятся к нулю.  
  

Процесса разработки самой игры я сейчас даже касаться не буду.  
  

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

Например, в дополнение к классическим художникам и программистам есть такие роли, как геймдизайнер, пм (project manager), продюсер, QA, дизайнер UI/UX, левел-дизайнер, моделлер, аниматор и т.д. Это далеко не все. Соответственно, в крупном проекте будет несколько геймдизайнеров, продюсеров и т.д., то есть там за "роль" отвечает уже целый отдел, в каждом из которых свои более узкие специальности. Ну а в мелком (на 10 человек) у каждого будет по пачке ролей.  
  

P.S. На всякий случай напомню, что релиз игры - это не конец, это только начало. А то в моде заблуждение, что после релиза можно открыть карман для денег и больше ничего не делать. Так что если вы (и ваша команда) вопреки статистике всё же сможете сделать игру, которая кому-то нужна, то "веселье" на этом не закончится. 

 GDScript/Godot engine. Советую почитать официальные доки. Вещь годная, хоть и не популярная... 

 Глубокие знания в физике/математике нужны только если будете пилить свой движок, а начинать с этого явно не стоит. Минимально нужно уметь гуглить, этого достаточно чтобы делать коммерчески успешные игры даже без знаний программирования. Яркий пример Undertale.  
  

В зависимости от языка на котором хотите писать выбирайте крупный движок  

на питоне - Godot  

на с++ - Unreal Engine  

на с# - Unity  
  

А вот какие знания потребуются дальше уже будет зависеть от идеи которую собираетесь реализовывать. 

 C#/Unity - см. оф.уроки, изучайте C#.  

Никаких сторонних видео!   

Только ОФИЦИАЛЬНЫЕ УРОКИ! 

 Тут хорошо описал dollar. Могу добавить еще немного описания. Если вы хотите развиваться и попасть в какую то команду, то тут надо выбрать роль свою. Если хотите моделить, то изучать 3дмакс или блендер(блендер бесплатный). Если программировать то выьратт на чем. Некоторые игровые фирмы пишут на своих движках. Но обычно щас расспространнены юнити(C#)и анрил(c++). Больше вакансий на юнити. Если геймдизайнером. То в крупных фирмах кроме продцмывания фич. Гд должен разбираться в среде разработки если он занимается кор фичами. Что бы вести настройку в движке. Если за графику отвечает то знать фотошоп или 3д макс. Что бы если что, дорисовать подправить. По описанию, можно понять что вам интересно кодить. математика нужна везде. Хоть это матч 3 или стрелялка. То что выше писали математика и физика только для движка - это бред. Даже просто создать хорошую камеру. Надо все математически предствить это. Если у вас есть идеи и хотите сами создать игру. То щас самое то. Поступает в универ и целых 4 года создаете свое детище. Главное не упустить этот момент. Лучше найти других еще людей на другие роли. Но помните, чужой человек никогда не будет сильно вовлечен в ваши идеи. Если интересовать будет юнити. То могу что то подробнее написать. А в основном. Читаете книжку по базовым знаниям интерсуещего языка. Продумываете как в реальности будет это работать. Допустим оружие и челове. Человек нажимает на курок. Оружие делает выстрел. Пуля летит. Врезается в бочку. Бочка взрывается. И так дробите классы. В дальнейшем это будет удобно редактировать.)) 

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

Я не призываю, просто даю дополнительные варианты развития.  

В целом, чтобы прям создавать свои игры, необходимо:  

Во-первых, попасть в любую команду по разработке, не важно чего. Присматриваться к сотрудникам и должностям. Выделять самое важное, чем человек занимается (какие проблемы решает), какие проблемы у него при этом возникают и способы решения этих проблем. Это к тому, что если вы решите сделать игру, то все эти проблемы, о существовании которых вы раньше не догадывались, упадут на вашу голову.  

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

Третье, хлебнув первого пункта, особенно важно присматриваться к работе управленцев, проджект менеджера или руководителя проекта. Желательно дорасти до руководителя, разумеется, как только поймёте, что сможете вытащить любой проект из задницы, вот тогда доставайте документ из второго пункта и, либо берёте кредит (не надо так делать), либо ищете какие-то супер источники дохода, которые вкладываете в разработку, либо ищете инвесторов, тычете им своим документом и предоставляете бизнес план, насколько ваша идея крутая. После того, как найдёте деньги, можете приступать к реализацию своей мечты.  
  

p.s. Это если была мечта сделать свою игру. Если я неправильно прочитал между строк и цель была всего лишь "влиться в геймдев", то достаточно первого пункта. Открываете hh, смотрите интересующие вакансии, собираете списки требований и доучиваете то, чего не хватает для принятия на работу, это и есть требуемые навыки.