Нужно ли изучать C ++, если я когда-нибудь хочу получить работу в игровой индустрии?


17

Нужно ли изучать C ++, если я когда-нибудь хочу получить работу в игровой индустрии? Я очень хорошо знаком с C # и имею базовые навыки создания 2D-игр на XNA 4.0. Сейчас мне всего 13 лет, и я люблю делать игры, и надеюсь когда-нибудь получить работу по программированию игр. Я слышал, что многие люди говорят, что C ++ является «отраслевым стандартом» и что это повредит вашей карьере, не зная об этом. Я также пытаюсь ориентироваться на большее количество платформ, чем просто Windows, и я знаю о Monogameно по какой-то причине у меня много проблем с шаблонами визуальных студий, и я нахожу много ошибок с моногамией. Так как технически я пока не могу устроиться на работу и, вероятно, не смогу найти работу по программированию, пока мне не исполнится 22 или около того (если я не работаю на себя). И в этот девятилетний период игровая индустрия, скорее всего, сильно изменится. Так вот несколько вопросов

  • Не повредит ли изучение C ++ моим шансам получить работу по программированию?
  • К тому времени, когда я смогу получить работу, C ++ все еще будет языком программирования «промышленного стандарта»
  • Если я инди-разработчик, действительно ли имеет значение, изучаю ли я C ++ или нет, и придерживаюсь того, что знаю?
  • Должен ли я начать изучать это сейчас, потому что у меня есть много лет, прежде чем я смогу устроиться на работу?

У меня также есть беспокойство, что, хотя я знаком с объектно-ориентированным программированием, я могу потратить много времени на C ++, и очень расстроиться и запутаться, а затем просто перестать изучать его, и к этому времени я забыл много XNA и Я должен все изучать все. Итак, вкратце: должен ли я изучать C ++, если мне когда-нибудь понадобится работа по программированию?

ОБНОВИТЬ

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


4
Следует отметить, что на самом деле в игровой индустрии больше рабочих мест, которые не кодируют, чем рабочих мест, которые кодируют. Художники, менеджеры проектов, тестеры «черного ящика», дизайнеры, специалисты по продажам и т. Д. Кроме того, на других языках гораздо больше рабочих мест, чем в одном C ++. Так что, по статистике, нет, вам не нужно изучать C ++, чтобы получить работу в отрасли.
MichaelHouse

1
Это точно не повредит вашим шансам. Компания, в которой я сейчас работаю, строго использует C # и Unity для разработки игр и не требует C ++. Однако C ++ по-прежнему считается плюсом, потому что он учит много полезных понятий, которые могут быть применены в другом месте. Я бы порекомендовал вам сосредоточиться на языке, который вы знаете для своего инди-проекта, но потратьте немного времени на изучение C ++, когда сможете (просто для опыта).
Бенджамин Дэнджер Джонсон

2
Если вы профессиональный разработчик, вы не можете всегда выбирать инструменты. Например, я ненавижу Java и MATLAB со страстью. Однако время от времени мне просто нужно задержать дыхание и покончить с этим. Так что, просто прекрати ныть и изучи C ++. Выучите еще несколько языков, пока вы в этом.
drxzcl

Изучай C ++, пока можешь.
Jcora

Я чувствую, что этот пост является важным чтением для этого вопроса.
Эндрю Рассел

Ответы:


23

Я хочу сосредоточиться на вашем третьем вопросе, потому что это в моей области знаний (инди-разработчик):

Я не писал ни строчки кода на C ++ много, много лет. И, на самом деле, я забыл многие мелкие детали (а в C ++ их много ). Я делаю большую часть своей работы в C #. И вам совершенно не обязательно изучать C ++.

Тем не менее , навыки, которые я получил от изучения C ++ - особенно низкоуровневые вещи, особенно то, как работают память и указатели - оказались бесценными.

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


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

Не беспокойтесь о том, чтобы забыть подробности, если по какой-то причине вы перестанете использовать C ++ (или XNA или что-то еще). Концепции важнее. И вы сможете легко подобрать детали снова, если придется.


Как подсказали другие ваши вопросы - мы не знаем, как будет выглядеть отрасль через десять лет. Хотя я предполагаю, что C ++ все еще будет использоваться довольно широко. Если говорить прямо сейчас - знание C ++ даст вам существенное повышение возможностей трудоустройства - даже в магазине, отличном от C ++.


7

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

С ++ это сложно. Многие люди не изучают это до колледжа. У тебя много времени. Работайте с некоторыми другими языками, чтобы освоить основные концепции программирования. Начните с малого и делайте это по одному шагу за раз.


2
Я бы поспорил с другой стороны. C ++ в настоящее время считается языком, близким к аппаратному, и вы обязательно изучите несколько вещей о компьютерной архитектуре, которые вы не изучите на языке более высокого уровня, таких как C #, в основном о распределении памяти и адресации. Если вы сначала изучили C # и освоились с ним, вы, вероятно, были бы отстранены дополнительными обручами, которые вы должны перепрыгнуть с C ++ по сравнению.
Хакворт

6

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

  1. C ++ - это язык, а XNA - это фреймворк. Microsoft больше не будет обновлять XNA, поэтому мне невероятно трудно представить, что он будет использоваться через 9 лет в каком-либо серьезном качестве. C ++, с другой стороны, существует вечно, имеет активный комитет по стандартам, приверженный его улучшению и предоставляет разработчикам настолько большой контроль над оборудованием, что потребуется гигантский скачок в его аппаратной мощности, чтобы сделать этот элемент управления ненужным и, таким образом, позволить другому языку вытеснить его. как стандарт defacto для высокопроизводительных игр.

  2. Изучение понятий - важная часть, а не язык, на котором вы их реализуете. Вы можете «выучить» новый язык довольно быстро, если уже понимаете его основные принципы.

  3. C ++ потребует от вас изучения указателей и проблем с памятью на более глубоком уровне, чем C #, поэтому я бы порекомендовал вам изучить его в какой-то момент, независимо от его использования в промышленности.

  4. Ваше беспокойство о забвении вещей, вероятно, необоснованно. Это правда, что вы забудете вещи, но специфика не является важной частью. Вы не забудете, как создать игру, переключая языки.

У вас, кажется, есть причины не изучать C ++, я думаю, что вы на самом деле просто пытаетесь рационализировать свое желание не изучать что-то новое.

Подумайте об этом следующим образом: если вы изучаете C ++, а в будущем он не будет использоваться, у вас будет много лет, чтобы узнать, что есть, и я гарантирую, что изучение C ++ поможет вам в этом. Если вам случится забыть все свои XNA и не научиться C ++, было бы лучше узнать это и двигаться вперед, чем беспокоиться о возможностях. Я не думаю, что любой случай очень вероятен.


4

Общий совет: не сосредотачивайтесь на том, что вам нужно учиться или чему вы должны учиться. Просто сделай что-нибудь.

Чтобы ответить на ваш конкретный вопрос, Microsoft больше не будет обновлять XNA, так что скорее всего, он не будет существовать намного дольше. C ++ является общепризнанным отраслевым стандартом и в ближайшее время не будет. Если вы хотите работать над играми ААА, тогда да. Опыт C ++ будет необходим.


Отличный совет, +1. Хотя я искренне считаю, что изучение новых языков также очень важно.
Jcora

Yannbane: Но разве это не второстепенно? По мере того, как ОП делает вещи, они узнают, что им нужно изучить, и изучат это в процессе. Как только вы хорошо знаете один язык, выучить другие довольно просто.
Зак Латта

Эээ, нет, это не так. Вам нужно и то, и другое, или курс, но изучение языков важнее, чем наличие проектов. И нет, просто потому, что вы знаете C #, не означает, что вы знаете C ++. И если бы это было легко, вы бы регулярно видели людей, которые знают 6+ языков.
jcora

1

Поскольку на этот вопрос уже дан ответ, позвольте мне заполнить несколько мест здесь и там ...

У меня также есть беспокойство, что, хотя я знаком с объектно-ориентированным программированием, я могу потратить много времени на C ++, и очень расстроиться и запутаться, а затем просто перестать изучать его, и к этому времени я забыл много XNA и Я должен все изучать все. Итак, вкратце: должен ли я изучать C ++, если мне когда-нибудь понадобится работа по программированию?

Откуда вы взяли, что C ++ - ужасный язык монстров? Это не! Это на самом деле очень весело.

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

Но опять же, C ++ имеет отличные методы абстракции и имеет очень полезные библиотеки, так что вы не будете общаться с видеокартой напрямую (вы определенно можете) - она ​​будет просто абстрагирована.

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

Когда у вас будет время, проверьте JavaScript и / или Python. Другие, вероятно, тоже предложили бы Lisp, но я не настолько осведомлен, когда дело доходит до этого, поэтому я ничего не скажу. Но в любом случае было бы полезно проверить это, я думаю, что это довольно опрятно, даже с моим ограниченным пониманием его концепций. Есть и Хаскелл, но блеф.

И в этот девятилетний период игровая индустрия, скорее всего, сильно изменится.

Правда. Но угадайте, что: в 9+ лет мы все еще будем использовать ассемблер, C ++ и C. Я сомневаюсь, что разработчики игр вдруг просто решат, что у них достаточно ресурсов, и перестанут раздвигать границы машин. Конечно, это всего лишь предположение, но все эти языки намного старше меня, поэтому я думаю, что я прав.

Кроме того, изучая C ++, вы упростите переход на потенциально новый язык среднего уровня.

Так как технически я пока не могу устроиться на работу и, вероятно, не смогу найти работу по программированию, пока мне не исполнится 22 или около того (если я не работаю на себя).

Я почти уверен, что ты здесь не прав. Вы сможете получить работу через несколько лет. Думаю, мало кто имеет в виду 2 по законам моей страны. Но не полный рабочий день.

Есть еще варианты работы, когда школы нет, и если у вас все хорошо, и, возможно, у вас есть, то наверняка найдется компания разработчиков, которая захочет вас нанять. Компания Gamedev? Возможно нет. Но нет никакой причины, по которой вы бы действительно хотели работать в качестве стартера, AFAIK, вы могли бы получать более высокую зарплату в обычной компании и работать над игрой в свободное время.

Кроме того, просто посмотрите на свое имя, это как если бы вы уже познакомились с радостью программирования на C ++!


1

Я еще не в бизнесе (мне 17 лет), но я думаю, что это действительно необходимо для открытия новых языков и технологий. Пока у вас есть время, изучите C ++, OpenGL и Java. Освоение этих навыков занимает некоторое время (мне потребовалось 5 лет, поэтому я начал в том же возрасте, что и вы сейчас), но опыт, который вы получаете, действительно удивителен.

Хорошая вещь, которую стоит попробовать - это сделать клон Minecraft на Java и OpenGL. Это даст вам представление о многих методах gamedev и научит вас МНОГИМ методам оптимизации. Именно это я и сделал в возрасте 16 лет. Вы можете посмотреть на результат по адресу: CraftMania . Я рекомендую начинать с Java, потому что в нем легко программировать. Есть сборщик мусора и аккуратная обработка исключений. Это позволяет вам очень эффективно изучать OpenGL, не беспокоясь о всех трудностях, с которыми сталкивается C ++ для неопытного разработчика.

Как только вы почувствуете, что осваиваете Java в сочетании с OpenGL, взгляните на C ++ и попробуйте сделать несколько простых вещей (пока нет игр). Как только вы поймете, что понимаете, как C ++ компилируется и работает во время выполнения, и знаете, как организована память в C ++, ТОГДА взгляните на SDL, чтобы сделать легкую игру.

Почему я сосредоточен на OpenGL? Потому что OpenGL работает на любой платформе, кроме XBox360. Это: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP и т. Д. Когда вы осваиваете только Xna и DirectX, вы связаны с Windows и XBox360. Я думаю, что это хорошая причина для изучения OpenGL и C ++, если вы хотите получить работу программиста в игровой индустрии.


0

Я бы ответил, что это действительно зависит от того, что вы хотите делать в игровой индустрии. На данный момент, если вы хотите создавать консольные игры AAA, C ++ является обязательным условием. Никакой другой язык не позволит вам воспользоваться ограниченными ресурсами, имеющимися у вас на консоли.

Долгое время C ++ был языком общения в игровой индустрии, но с появлением iPhone и Unity теперь можно создавать приличные игры, используя такие языки, как C # и Objective-C. Даже HTML 5 способен создавать игры сейчас. Простой факт в том, что существует множество вариантов.

В вашем возрасте у вас еще есть много времени, чтобы учиться и наблюдать за развитием отрасли. Мой вам совет: не сосредотачивайтесь на языке. Сосредоточьтесь на том, чтобы научиться делать игры и / или создавать моды для игр, которые там есть. Одной из идей может быть получение Minecraft и выяснение того, как создавать моды с использованием Java. Нет ничего лучше, чем увидеть, что вы можете изменить поведение игры, даже если вы на самом деле не выпускаете никаких модов.

В твоем возрасте я делал игры, используя Basic (на Commodore 64). RPG Maker, а затем использую Java для мод игры. Я даже не прикасался к С ++, пока мне не исполнилось 18 лет, так что у вас еще есть достаточно времени, чтобы расти.

Чтобы ответить на ваши актуальные вопросы:

  • Не повредит ли изучение C ++ моим шансам получить работу по программированию?

На данном этапе нет возможности рассказать. Может пройти до 10 лет, прежде чем вы начнете искать «настоящую» работу, а технологии развиваются очень быстро.

  • К тому времени, когда я смогу получить работу, C ++ все еще будет языком программирования «промышленного стандарта»

Смотрите ответ выше.

  • Если я инди-разработчик, действительно ли имеет значение, изучаю ли я C ++ или нет, и придерживаюсь того, что знаю?

Нет. Важно то, сколько игр вы заканчиваете и выпускаете.

  • Должен ли я начать изучать это сейчас, потому что у меня есть много лет, прежде чем я смогу устроиться на работу?

Никогда не рано начинать учиться и никогда не поздно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.