Чи потрібно C ++, щоб дізнатися, чи хочу я коли-небудь влаштуватися на роботу в ігровій індустрії?


17

Чи потрібно C ++, щоб дізнатися, чи хочу я коли-небудь влаштуватися на роботу в ігровій індустрії? Я надзвичайно добре знайомий із C # та маю основне майстерність створення 2D-ігор у XNA 4.0. Зараз мені лише 13 років і я люблю займатися іграми, і сподіваюся, що коли-небудь отримаю роботу з програмування ігор. Я чув, як багато людей кажуть, що C ++ - це «галузевий стандарт», і це зашкодить вашій кар’єрі, не знаючи цього. Я також намагаюся націлити більше платформ, ніж просто windows, і я знаю про Monogameале я чомусь маю багато проблем із шаблонами візуальної студії, і я знаходжу багато помилок з моногамою. Оскільки я технічно ще не можу влаштуватися на роботу, і, ймовірно, не міг влаштуватися на роботу з програмування, поки мені не подобається 22 чи щось (якщо тільки я не працюю). І в цей 9-річний період ігрової індустрії, швидше за все, сильно зміниться. Тож ось кілька питань

  • Чи не навчання 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 # або Java, ви, ймовірно, можете здогадатися, що відбувається - але знати набагато краще.


Моя рекомендація вам , зокрема, зараз вивчити C ++. У вашому віці у вас є багато часу, щоб витратити тільки на навчання. Таким чином, вам не потрібно буде турбуватися про підбір C ++, коли ви намагаєтеся розробити гру або влаштувати роботу.

Не хвилюйтеся про забування деталей, якщо ви перестанете використовувати C ++ з якихось причин (або XNA або щось інше). Поняття важливіші. І ви зможете зібрати деталі знову легко, якщо вам доведеться.


Як натякали ваші інші запитання - ми не знаємо, як виглядатиме галузь через десятиліття. Хоча я б здогадався, що C ++ все ще буде досить поширеним. Якщо говорити зараз, то знання C ++ дозволить вам значно підвищити працездатність - навіть у магазині, що не має C ++.


7

Якщо ви хочете бути ігровим програмістом, ви, мабуть, не можете уникнути вивчення C ++. Якщо ви хочете іншу роботу в ігровій індустрії, наприклад, продюсера чи виконавця, тоді вам не потрібен C ++.

C ++ важко. Багато людей не навчаються цього до коледжу. У вас багато часу. Працюйте з деякими іншими мовами, щоб швидко досягти основних концепцій програмування. Почніть з малого і зробіть це покроково.


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

6

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

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

  2. Вивчення концепцій є важливою частиною, а не мовою, на якій ви їх реалізуєте. Ви можете «швидко» вивчити нову мову, якщо ви вже розумієте її основні принципи.

  3. C ++ вимагає, щоб ви дізналися про вказівники та проблеми з пам'яттю на набагато глибшому рівні, ніж це було б на C #, тому я рекомендую вам вивчити це в якийсь момент незалежно від його використання в промисловості.

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

У вас, здається, є причини не вивчати C ++, я думаю, що ви насправді просто намагаєтесь раціоналізувати своє бажання не дізнаватися чогось нового.

Подумайте про це так: якщо ви засвоїте C ++, і виявиться, що його не використовувати в майбутньому, у вас буде багато років, щоб дізнатися, що є, і я гарантую, що засвоєння C ++ допоможе вам це зробити. Якщо ви все-таки забудете всю свою XNA і не встигнете вивчити C ++, то краще дізнатися це і рухатися вперед, ніж турбуватися про можливості. Я не думаю, що жоден випадок є дуже ймовірним.


4

Загальна порада: не зосереджуйтеся на тому, що вам потрібно навчитися чи чому ви повинні навчатися. Просто щось зробіть.

Щоб відповісти на ваше конкретне запитання, Microsoft більше не оновлюватиме XNA, тому ймовірно, що довше цього не буде. C ++ є усталеним галузевим стандартом, і не скоро виїжджатиме. Якщо ви хочете працювати над іграми AAA, то так. C ++ досвід буде необхідний.


Чудова порада, +1. Хоча я чесно думаю, що вивчення нових мов також дуже важливо.
jcora

Янбан: Але це не є другорядним? По мірі того, як ОП робить речі, вони відкриють те, що їм потрібно навчитися, і дізнаються це в процесі. Коли ви добре знаєте одну мову, вивчити інші, як правило, досить легко.
Zach Latta

Помилка, ні, це не так. Вам потрібно трохи і те, і інше, але вивчення мов важливіше, ніж наявність проектів. І ні, тільки тому, що ви знаєте, що C # не означає, що ви знаєте C ++. І якби це було легко, ви б регулярно бачили людей, які знають 6+ мов.
jcora

1

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

Я також переживаю, що, хоч я і знайомий з об'єктно-орієнтованим програмуванням, я можу витратити багато часу на C ++, і я дуже розчарований і розгублений, а потім просто кинув його вивчати, і до цього часу я забув багато XNA і я повинен навчитися всьому всьому. Отже, коротко: чи повинен я вивчати C ++, якщо я коли-небудь хочу роботу з програмування?

Звідки ви взяли таке уявлення про те, що C ++ є жахливою монстровою мовою? Це не! Насправді це дуже весело.

Правда, ви можете наблизитися до обладнання, яке насправді має дві переваги: ​​ви дізнаєтесь набагато більше про те, як насправді функціонує комп'ютер, по-друге, у вас набагато більше енергії в руках, ніж, скажімо, на C #.

Але знову ж таки, C ++ має чудові методи абстрагування та має дуже корисні бібліотеки, тож це не так, як ви насправді спілкуватиметесь із графічною картою (ви, безумовно, можете) - вона просто буде абстрагована.

Знання будь-якої мови дуже корисно, має великі шанси збільшити ймовірність прийняття на роботу і, безумовно, робить вас кращим програмістом.

Коли у вас буде час, перевірте JavaScript та / або Python. Інші, напевно, також пропонують Лісп, але я не такий обізнаний, коли справа доходить до цього, тому я не хочу нічого говорити. Але це може бути корисно все-таки перевірити, я думаю, що це досить акуратно навіть при моєму обмеженому розумінні його концепцій. Хаскелл теж є, але блех.

І в цей 9-річний період ігрової індустрії, швидше за все, сильно зміниться.

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

Крім того, вивчаючи C ++, ви полегшите собі перехід на потенційну нову мову середнього рівня.

Оскільки я технічно ще не можу влаштуватися на роботу, і, ймовірно, не міг влаштуватися на роботу з програмування, поки мені не подобається 22 чи щось (якщо тільки я не працюю).

Я майже впевнений, що ви тут помиляєтесь. Ви зможете влаштуватися на роботу через кілька років. Думаю, мало закони моєї країни 2. Але не на повну роботу.

Ще є варіанти роботи, коли школа закінчується, і якщо ти хороший, і ти, мабуть, є, тоді точно знайдеться компанія розробників, яка хотіла б тебе найняти. Компанія "Гамедев"? Напевно, ні. Але немає ніяких причин, щоб ви насправді хотіли працювати в якості стартера, 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 для модних ігор. Я навіть не торкнувся C ++, поки мені не виповнилося 18 років, щоб у вас ще було багато часу для зростання.

Щоб відповісти на ваші фактичні запитання:

  • Чи не навчання C ++ зашкодить моїм шансам отримати роботу з програмування?

На цьому етапі немає можливості сказати. Перш ніж шукати «справжню» роботу, може пройти до 10 років, і технологія просувається надзвичайно швидко.

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

Дивіться вищевказану відповідь.

  • Якщо я інді-розробник, чи не важливо, чи я вивчаю С ++ чи ні, і дотримуюся того, що я знаю?

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

  • Чи повинен я навіть почати вивчати це зараз, бачачи, як у мене є багато років, перш ніж я навіть можу влаштуватися на роботу?

Ніколи не зарано починати вчитися, а також не пізно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.