Если вы планируете сделать карьеру разработчика видеоигр, ваш первый шаг — научиться программировать на языке, который используют профессионалы для создания величайших игр в мире. Но какой из многих языков программирования игр вам следует изучить в первую очередь?
Это очень важное решение. Чтобы выучить хоть один язык программирования, потребуется много времени, и лучше не тратить его на проходняк, который является лишь «изюминкой месяца».
Вместо этого вы хотите выучить язык, который ценится ведущими игровыми компаниями, такими как Sony, Activision или Nintendo. Так какие языки программирования помогут вам устроиться на работу в ведущую игровую компанию?
Популярность или немного статистики
Чтобы ответить на этот вопрос, мы возьмем 70 объявлений о вакансиях от 16 ведущих разработчиков игр со всего мира, чтобы выяснить, что им требуются от кандидатов на вакансии инженеров. Результаты представлены ниже.
Победитель очевиден!
Лучший язык программирования для игр: C/C++
Как видно из диаграммы выше, C/C++, по мнению ведущих игровых компаний мира, на сегодняшний день является лучшим языком программирования для игр. Более половины объявлений о вакансиях указали C/C++ как требование.
И речь идет не о каких-то низкоуровневых должностях, близким к уборщику. Этот язык фигурирует в качестве требования в широком спектре вакансий, включая программиста инструментов, графического инженера, программиста AI, Backend-программиста, программиста ответственного за геймплей и многих других.
Так что, если вы ищете язык для первого изучения, вы просто не можете ошибиться с C/C++. Очевидно, что он откроет для вас много-много дверей в профессии разработчика игр.
2-й лучший язык программирования игр для игр: C#
В то время как C/C++ прочно удерживает первое место как наиболее востребованный язык для разработки игр, на втором месте находится C#. Со временем C# становится все более популярным для разработки игр, особенно при использовании коммерческих игровых движков, таких как Unity 3D.
Но он все еще находится на втором месте, уступая C/C++. На самом деле, из 25 вакансий, в которых упоминался C#, только 5 из них указывали его в качестве отдельного требования. Остальные 20 объявлений фактически требовали C/C++, а C# просто перечисляли как «неплохо бы иметь».

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

Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity
Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем!...
«Или эквивалент»
Несомненно, важно быть знакомым с лучшими языками программирования. Тем не менее факт состоит в том, что, зная один язык программирования, гораздо легче выучить другие. Вот почему в 14% объявлений о вакансиях указывается требование к знанию языка, но затем делается оговорка: «или эквивалент».
Например, в одном из объявлений компании Valve о вакансии инженера-программиста Steam требовался «подтвержденный опыт создания и выпуска коммерческого программного обеспечения на C++ или аналогичном языке». Другая вакансия от Rockstar Games для инженера требовала «навыков программирования и/или написания сценариев», в качестве примера приводились «C++, C# или Python».
Эти компании понимают, что любой хороший программист может изучать новые языки по мере необходимости. Именно поэтому они открыты для заявок от кандидатов, имеющих опыт программирования на других языках.
А как насчет всех остальных языков?
В то время как C/C++ и C# были очевидными лидерами, было упомянуто еще 9 языков, включая PHP, Java, javascript, Python, Assembly, Lua, Ruby, Erlang и Go.
В большинстве случаев менее используемые языки характерны для конкретной студии, что, вероятно, указывает на то, что некоторые студии имеют узкоспецифические инструменты разработки игр и технологии, построенные на нестандартных языках программирования.
Например, Take-Two Interactive была единственной компанией, которая упомянула Erlang, и только в сообщениях Riot Games упоминался Go. Обратите внимание, что ни одна из студий не упоминала эти языки в качестве жесткого требования.
В других случаях определенные языки были предпочтительны для конкретных типов вакансий. Например, язык ассемблера требовался для работы программистом движка, что вполне логично, поскольку ассемблер используется почти исключительно в сверхвысокопроизводительных областях игрового движка. А Java был упомянут несколькими игровыми компаниями, но в основном для работы в области бэкэнд и сетевого программирования.
Вывод
Если вы хотите начать успешную карьеру программиста видеоигр, совершенно очевидно, что изучение языка C/C++ станет важным шагом на вашем пути. Он уже несколько десятилетий занимает лидирующие позиции благодаря своей высокой производительности по сравнению с другими языками, и это вряд ли изменится в ближайшем будущем.
Тем не менее это не означает, что вам обязательно нужно начинать с C/C++. Изучение любого языка программирования поможет вам стать разработчиком программного обеспечения, и есть много других языков, которые легче выучить — даже профессиональные игровые компании знают, что как только вы научитесь писать на одном языке, вам будет легче изучать «эквивалентные» языки по мере необходимости.
Так что, если вы предпочитаете начать с чего-то менее популярного, но более легкого в освоении, дерзайте! Многие курсы программирования начинаются с обучения языкам «высокого уровня», таким как Lua или Python, поэтому не стесняйтесь начинать с них, если появилась такая возможность.
Вы всегда можете начать изучать C/C++ после того, как разберетесь с основными понятиями, которые применимы ко всем языкам программирования. Не успеете оглянуться, как вы уже будете осваивать новые языки программирования буквально на автомате.