Нужно ли изучать C ++, если я когда-нибудь хочу получить работу в игровой индустрии? Я очень хорошо знаком с C # и имею базовые навыки создания 2D-игр на XNA 4.0. Сейчас мне всего 13 лет, и я люблю делать игры, и надеюсь когда-нибудь получить работу по программированию игр. Я слышал, что многие люди говорят, что C ++ является «отраслевым стандартом» и что это повредит вашей карьере, не зная об этом. Я также пытаюсь ориентироваться на большее количество платформ, чем просто Windows, и я знаю о Monogameно по какой-то причине у меня много проблем с шаблонами визуальных студий, и я нахожу много ошибок с моногамией. Так как технически я пока не могу устроиться на работу и, вероятно, не смогу найти работу по программированию, пока мне не исполнится 22 или около того (если я не работаю на себя). И в этот девятилетний период игровая индустрия, скорее всего, сильно изменится. Так вот несколько вопросов
- Не повредит ли изучение C ++ моим шансам получить работу по программированию?
- К тому времени, когда я смогу получить работу, C ++ все еще будет языком программирования «промышленного стандарта»
- Если я инди-разработчик, действительно ли имеет значение, изучаю ли я C ++ или нет, и придерживаюсь того, что знаю?
- Должен ли я начать изучать это сейчас, потому что у меня есть много лет, прежде чем я смогу устроиться на работу?
У меня также есть беспокойство, что, хотя я знаком с объектно-ориентированным программированием, я могу потратить много времени на C ++, и очень расстроиться и запутаться, а затем просто перестать изучать его, и к этому времени я забыл много XNA и Я должен все изучать все. Итак, вкратце: должен ли я изучать C ++, если мне когда-нибудь понадобится работа по программированию?
ОБНОВИТЬ
Спасибо всем за ваши ответы и предложения. Недавно я поднял SFML и C ++, и все идет хорошо. Я знакомлюсь с C ++ и начинаю открывать глаза на то, чтобы не беспокоиться об изучении новых вещей, потому что я смог перенести все свои знания C # в облегчение изучения C ++. Спасибо всем еще раз.
источник
Ответы:
Я хочу сосредоточиться на вашем третьем вопросе, потому что это в моей области знаний (инди-разработчик):
Я не писал ни строчки кода на C ++ много, много лет. И, на самом деле, я забыл многие мелкие детали (а в C ++ их много ). Я делаю большую часть своей работы в C #. И вам совершенно не обязательно изучать C ++.
Тем не менее , навыки, которые я получил от изучения C ++ - особенно низкоуровневые вещи, особенно то, как работают память и указатели - оказались бесценными.
Кроме того, было несколько случаев, когда мне приходилось читать код C ++ других людей. Если вы знаете, как программировать на C # или Java, вы, вероятно, можете догадаться, что происходит, но знать гораздо лучше.
Моя рекомендация вам изучить C ++ сейчас. В вашем возрасте у вас есть много времени, чтобы потратить только на обучение. Таким образом, вам не нужно будет беспокоиться о приобретении C ++, пока вы пытаетесь разработать игру или получить работу.
Не беспокойтесь о том, чтобы забыть подробности, если по какой-то причине вы перестанете использовать C ++ (или XNA или что-то еще). Концепции важнее. И вы сможете легко подобрать детали снова, если придется.
Как подсказали другие ваши вопросы - мы не знаем, как будет выглядеть отрасль через десять лет. Хотя я предполагаю, что C ++ все еще будет использоваться довольно широко. Если говорить прямо сейчас - знание C ++ даст вам существенное повышение возможностей трудоустройства - даже в магазине, отличном от C ++.
источник
Если вы хотите стать программистом игры, вы, вероятно, не можете избежать изучения C ++. Если вам нужна другая работа в игровой индустрии, например, продюсер или художник, вам не нужен C ++.
С ++ это сложно. Многие люди не изучают это до колледжа. У тебя много времени. Работайте с некоторыми другими языками, чтобы освоить основные концепции программирования. Начните с малого и делайте это по одному шагу за раз.
источник
У вас еще много времени для изучения, поэтому я не думаю, что вам следует слишком беспокоиться о том, какой язык вы используете, но я изложу некоторые вещи, которые могут вам пригодиться:
C ++ - это язык, а XNA - это фреймворк. Microsoft больше не будет обновлять XNA, поэтому мне невероятно трудно представить, что он будет использоваться через 9 лет в каком-либо серьезном качестве. C ++, с другой стороны, существует вечно, имеет активный комитет по стандартам, приверженный его улучшению и предоставляет разработчикам настолько большой контроль над оборудованием, что потребуется гигантский скачок в его аппаратной мощности, чтобы сделать этот элемент управления ненужным и, таким образом, позволить другому языку вытеснить его. как стандарт defacto для высокопроизводительных игр.
Изучение понятий - важная часть, а не язык, на котором вы их реализуете. Вы можете «выучить» новый язык довольно быстро, если уже понимаете его основные принципы.
C ++ потребует от вас изучения указателей и проблем с памятью на более глубоком уровне, чем C #, поэтому я бы порекомендовал вам изучить его в какой-то момент, независимо от его использования в промышленности.
Ваше беспокойство о забвении вещей, вероятно, необоснованно. Это правда, что вы забудете вещи, но специфика не является важной частью. Вы не забудете, как создать игру, переключая языки.
У вас, кажется, есть причины не изучать C ++, я думаю, что вы на самом деле просто пытаетесь рационализировать свое желание не изучать что-то новое.
Подумайте об этом следующим образом: если вы изучаете C ++, а в будущем он не будет использоваться, у вас будет много лет, чтобы узнать, что есть, и я гарантирую, что изучение C ++ поможет вам в этом. Если вам случится забыть все свои XNA и не научиться C ++, было бы лучше узнать это и двигаться вперед, чем беспокоиться о возможностях. Я не думаю, что любой случай очень вероятен.
источник
Общий совет: не сосредотачивайтесь на том, что вам нужно учиться или чему вы должны учиться. Просто сделай что-нибудь.
Чтобы ответить на ваш конкретный вопрос, Microsoft больше не будет обновлять XNA, так что скорее всего, он не будет существовать намного дольше. C ++ является общепризнанным отраслевым стандартом и в ближайшее время не будет. Если вы хотите работать над играми ААА, тогда да. Опыт C ++ будет необходим.
источник
Поскольку на этот вопрос уже дан ответ, позвольте мне заполнить несколько мест здесь и там ...
Откуда вы взяли, что C ++ - ужасный язык монстров? Это не! Это на самом деле очень весело.
Правда, вы можете приблизиться к аппаратному обеспечению, которое на самом деле имеет два преимущества: вы узнаете намного больше о том, как на самом деле функционирует компьютер, и, во-вторых, у вас в руках гораздо больше возможностей, чем, скажем, в C #.
Но опять же, C ++ имеет отличные методы абстракции и имеет очень полезные библиотеки, так что вы не будете общаться с видеокартой напрямую (вы определенно можете) - она будет просто абстрагирована.
Знание практически любого языка очень полезно, имеет хорошие шансы на повышение вероятности быть принятым на работу и определенно делает вас лучшим программистом.
Когда у вас будет время, проверьте JavaScript и / или Python. Другие, вероятно, тоже предложили бы Lisp, но я не настолько осведомлен, когда дело доходит до этого, поэтому я ничего не скажу. Но в любом случае было бы полезно проверить это, я думаю, что это довольно опрятно, даже с моим ограниченным пониманием его концепций. Есть и Хаскелл, но блеф.
Правда. Но угадайте, что: в 9+ лет мы все еще будем использовать ассемблер, C ++ и C. Я сомневаюсь, что разработчики игр вдруг просто решат, что у них достаточно ресурсов, и перестанут раздвигать границы машин. Конечно, это всего лишь предположение, но все эти языки намного старше меня, поэтому я думаю, что я прав.
Кроме того, изучая C ++, вы упростите переход на потенциально новый язык среднего уровня.
Я почти уверен, что ты здесь не прав. Вы сможете получить работу через несколько лет. Думаю, мало кто имеет в виду 2 по законам моей страны. Но не полный рабочий день.
Есть еще варианты работы, когда школы нет, и если у вас все хорошо, и, возможно, у вас есть, то наверняка найдется компания разработчиков, которая захочет вас нанять. Компания Gamedev? Возможно нет. Но нет никакой причины, по которой вы бы действительно хотели работать в качестве стартера, AFAIK, вы могли бы получать более высокую зарплату в обычной компании и работать над игрой в свободное время.
Кроме того, просто посмотрите на свое имя, это как если бы вы уже познакомились с радостью программирования на C ++!
источник
Я еще не в бизнесе (мне 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 ++, если вы хотите получить работу программиста в игровой индустрии.
источник
Я бы ответил, что это действительно зависит от того, что вы хотите делать в игровой индустрии. На данный момент, если вы хотите создавать консольные игры AAA, C ++ является обязательным условием. Никакой другой язык не позволит вам воспользоваться ограниченными ресурсами, имеющимися у вас на консоли.
Долгое время C ++ был языком общения в игровой индустрии, но с появлением iPhone и Unity теперь можно создавать приличные игры, используя такие языки, как C # и Objective-C. Даже HTML 5 способен создавать игры сейчас. Простой факт в том, что существует множество вариантов.
В вашем возрасте у вас еще есть много времени, чтобы учиться и наблюдать за развитием отрасли. Мой вам совет: не сосредотачивайтесь на языке. Сосредоточьтесь на том, чтобы научиться делать игры и / или создавать моды для игр, которые там есть. Одной из идей может быть получение Minecraft и выяснение того, как создавать моды с использованием Java. Нет ничего лучше, чем увидеть, что вы можете изменить поведение игры, даже если вы на самом деле не выпускаете никаких модов.
В твоем возрасте я делал игры, используя Basic (на Commodore 64). RPG Maker, а затем использую Java для мод игры. Я даже не прикасался к С ++, пока мне не исполнилось 18 лет, так что у вас еще есть достаточно времени, чтобы расти.
Чтобы ответить на ваши актуальные вопросы:
На данном этапе нет возможности рассказать. Может пройти до 10 лет, прежде чем вы начнете искать «настоящую» работу, а технологии развиваются очень быстро.
Смотрите ответ выше.
Нет. Важно то, сколько игр вы заканчиваете и выпускаете.
Никогда не рано начинать учиться и никогда не поздно.
источник