ゲーム業界で就職したい場合、C ++を学ぶ必要がありますか?


17

ゲーム業界で就職したい場合、C ++は学習する必要がありますか?私はC#に非常に精通しており、XNA 4.0で2Dゲームを作成する基本的な知識を持っています。今、私はわずか13歳で、ゲームを作るのが大好きで、いつかゲームプログラミングの仕事に就きたいと思っています。多くの人が、C ++は「業界標準」であり、C ++を知らないとあなたのキャリアを損なうと言うことを聞いたことがあります。また、Windows以外のプラットフォームをターゲットにしようとしていますが、Monogameを認識していますしかし、何らかの理由で、Visual Studioテンプレートに多くの問題があり、モノゲームに多くのバグがあります。私は技術的にまだ仕事を得ることができないので、おそらく22か何かになるまでプログラミングの仕事を得ることができませんでした(im自営業でない限り)。そして、9年以上の期間で、ゲーム業界は大きく変化するでしょう。ここにいくつか質問があります

  • C ++を学ぶことでプログラミングの仕事に就くチャンスが損なわれることはありませんか?
  • 就職できるまでに、C ++は依然として「業界標準」のプログラミング言語になります
  • 私がインディー開発者である場合、C ++を学ぶかどうかは本当に重要であり、私が知っていることに固執しますか?
  • 仕事に就くまでに何年もかかるので、今でも学習を開始すべきでしょうか?

また、オブジェクト指向プログラミングに精通していても、C ++に多くの時間を費やし、非常に失望し、混乱し、学習をやめるかもしれないという心配もあります。私はすべてを学ぶ必要があります。要するに、プログラミングの仕事が必要になったら、C ++を学ぶべきでしょうか?

更新

回答と提案をありがとうございました。最近、SFMLとC ++を取り上げましたが、かなり順調です。私はC ++のコツをつかみ、新しいことを学ぶことを気にしないことに目を向け始めています。なぜなら、C#の知識をすべてC ++の学習を容易にすることに移行できたからです。もう一度ありがとう。


4
ゲーム業界では、実際にはコーディングしているジョブよりもコーディングしていないジョブの方が多いことに注意してください。アーティスト、プロジェクトマネージャー、ブラックボックステスター、デザイナー、営業など。また、C ++だけではなく、他の言語を組み合わせたジョブがはるかに多くあります。統計的に言えば、いや、業界で仕事を得るためにC ++を学ぶ必要はありません。
マイケルハウス

1
それは間違いなくあなたのチャンスを傷つけません。私が今働いている彼らの会社は、ゲームの開発にC#とUnityを厳密に使用しており、C ++は必要ありません。ただし、C ++は、他の場所で適用できる多くの有用な概念を教示しているため、依然としてプラスと見なされます。インディーズプロジェクトで知っている言語に焦点を当てることをお勧めしますが、できる限り(経験のために)C ++を習得するのに少し時間をかけます。
ベンジャミンデンジャージョンソン

2
プロの開発者である場合、ツールを常に選択して選択できるとは限りません。たとえば、私はJavaとMATLABを情熱的に嫌っています。しかし、たまに息を止めてやり直す必要があります。だから、泣き言をやめてC ++を学んでください。いくつかの言語を学んでください。
drxzcl

C ++を学んでください。
jcora

この投稿はこの質問の重要な読み物だと思います。
アンドリューラッセル

回答:


23

私の知識の範囲内であるため、3番目の質問に焦点を当てたいと思います(インディーデベロッパー)。

何年もの間、C ++コードを1行も書いていません。そして、実際、私は核心の詳細の多くを忘れました(そしてC ++にはそれらがたくさんあります)。私はほとんどの作業をC#で行います。そして、あなたは絶対にC ++を学ぶ必要はありません。

ただし、C ++の学習から得たスキル(特に低レベルのもの、特にメモリとポインターの仕組み)は非常に貴重であることがわかっています。

さらに、他の人のC ++コードを読まなければならないことが何度かありました。C#またはJavaでプログラミングする方法を知っていれば、おそらく何が起こっているのか推測できますが、知っている方がはるかに優れています。


具体的には、C ++を今すぐ学ぶことをお勧めします。あなたの年齢では、単に学習に費やすだけの十分な時間があります。そうすれば、ゲームを開発したり仕事を見つけたりする際に、C ++ を使用することを心配する必要がなくなります。

何らかの理由(またはXNAなど)でC ++の使用を停止しても、詳細を忘れる心配はありません。概念はより重要です。また、必要に応じて簡単に詳細を再度取得することができます。


他の質問からもわかるように、10年後に業界がどのように見えるかはわかりません。C ++はまだかなり一般的に使用されていると思いますが。今のところ、C ++を知っていると、非C ++ショップであっても、エンプロイアビリティが大幅に向上します。


7

ゲームプログラマになりたい場合は、おそらくC ++の学習を避けられません。プロデューサーやアーティストなど、ゲーム業界で別の仕事が必要な場合は、C ++は必要ありません。

C ++は難しいです。多くの人々は大学までそれを学ばない。あなたには多くの時間があります。他のいくつかの言語と連携して、基本的なプログラミングの概念を理解してください。小さく始めて、一度に1ステップずつ実行します。


2
私は反対の方法を主張します。C ++は現在、ハードウェアに近いと考えられている言語であり、C#などの高レベル言語では習得できないコンピューターアーキテクチャについて、主にメモリの割り当てとアドレス指定について学ぶ必要があります。C#を最初に習得し、C#に慣れると、おそらくC ++を使用して比較する必要のある追加のフープに疎外されることになります。
ハックワース

6

まだ多くの時間を学んでいるので、使用する言語についてあまり心配する必要はないと思いますが、役に立つと思われるいくつかのことを述べます。

  1. C ++は言語ですが、XNAはフレームワークです。XNAはMicrosoftによって更新されることはもうないので、9年後に深刻な能力で使用されると想像するのは信じられないほど難しいと思います。もう一方のC ++は永遠に存在し、それを改善するために積極的な標準化委員会を設け、開発者にハードウェアの制御を提供します。高性能ゲームの事実上の標準として。

  2. 概念を学習することは重要な部分であり、実装する言語ではありません。基本的な原則をすでに理解していれば、新しい言語を非常にすばやく「学習」できます。

  3. C ++では、ポインターとメモリの問題について、C#よりもはるかに深いレベルで学習する必要があるため、業界での使用に関係なく、ある時点で学習することをお勧めします。

  4. 物事を忘れることについてのあなたの心配は、おそらく根拠がない。物事を忘れることは事実ですが、詳細は本当に重要な部分ではありません。言語を切り替えてゲームを設計する方法を忘れないでください。

あなたはC ++を学ばない理由があるように見えます。私はあなたが実際に何か新しいことを学ばないことの合理化を試みているだけだと思います。

このように考えてみてください。C++を学習し、将来使用されないことが判明した場合、何を学習するかは長年あります。すべてのXNAを忘れてしまい、C ++を学習できない場合は、可能性を心配するよりも、これを見つけて前進する方が良いでしょう。どちらの場合もそうなるとは思わない。


4

一般的なアドバイス:学習する必要があることや学習すべきことに集中しないでください。ただ何かを作ります。

あなたの特定の質問に答えるために、MicrosoftはXNAを更新しなくなります。C ++は十分に確立された業界標準であり、近いうちに出荷されることはありません。AAAゲームで作業したい場合は、はい。C ++の経験が必要です。


すばらしいアドバイス、+ 1。正直なところ、新しい言語を学ぶことも非常に重要だと思います。
jcora

Yannbane:しかし、それは二次的ではありませんか?OPが物事を作成するとき、彼らは学習するために必要なものを発見し、その過程で学習します。1つの言語を十分に理解すれば、他の言語を習得することは一般的に非常に簡単です。
ザックラッタ

エラー、いいえ、そうではありません。両方、またはもちろん必要ですが、言語を学ぶことはプロジェクトを持つよりも重要です。いいえ、C#を知っているからといって、C ++を知っているわけではありません。そして、それが簡単だったら、6 +言語を知っている人に定期的に会うでしょう。
-jcora

1

質問はすでに回答されているので、あちこちにいくつかの穴を埋めてみましょう...

また、オブジェクト指向プログラミングに精通していても、C ++に多くの時間を費やし、非常に失望し、混乱し、学習をやめるかもしれないという心配もあります。私はすべてを学ぶ必要があります。要するに、プログラミングの仕事が必要になったら、C ++を学ぶべきでしょうか?

C ++がひどいモンスター言語であるという考えはどこで得ましたか?そうではありません!実はとても楽しいです。

確かに、ハードウェアに近づくことができます、実際には2つの利点があります。コンピューターが実際にどのように機能するかについてより多くを学ぶことと、2番目にC#などよりもはるかに強力です。

しかし、C ++には優れた抽象化メソッドがあり、非常に便利なライブラリがあるため、実際にグラフィックスカードと直接通信しているわけではありません(間違いなく可能です)-単に抽象化されます。

任意の言語について知ることは非常に有用であり、採用される可能性を高める可能性が高く、間違いなく優れたプログラマーになります。

時間があれば、JavaScriptやPythonをチェックしてください。他の人もおそらくLispを提案するでしょうが、それに関しては私はそれほど知識がありませんので、何も言わないでしょう。しかし、とにかくそれをチェックアウトすることは有用かもしれません、その概念の私の限られた理解でさえ、それはかなりきれいだと思います。Haskellもありますが、問題があります。

そして、9年以上の期間で、ゲーム業界は大きく変化するでしょう。

本当です。しかし、推測してみてください。9年後も、アセンブリ、C ++、Cを使用し続けます。ゲーム開発者が突然、十分なリソースがあると判断し、マシンの限界を超えることをやめるとは思いません。もちろん、これは推測に過ぎませんが、これらの言語はすべて私よりもずっと古いので、私は正しいと思います。

また、C ++を学習することで、潜在的な新しい中間レベル言語への移行が容易になります。

私は技術的にまだ仕事を得ることができないので、おそらく22か何かになるまでプログラミングの仕事を得ることができませんでした(im自営業でない限り)。

ここが間違っていると確信しています。実際に数年以内に仕事を得ることができるでしょう。私の国の法律では2という意味はほとんどないと思います。しかし、フルタイムの仕事ではありません。

学校が休みのときに働く選択肢がまだあります。もしあなたが元気で、おそらくあなたがそうなら、あなたを雇いたい開発会社が必ずあるでしょう。ゲーム開発会社ですか?おそらくない。しかし、スターターとして実際に働きたい理由はありません。通常の会社でより良い報酬を得て、空き時間にゲームに取り組むことができます。

それに、自分の名前を見てください。C++プログラミングの楽しさを既に理解しているようです。


1

私はまだ仕事をしていません(17歳)が、新しい言語と技術を発見することは本当に必要だと思います。時間があれば、C ++、OpenGL、およびJavaを学んでください。これらをマスターするには時間がかかります(私は5年かかったので、今と同じ年齢で始めました)が、得られる経験は本当に素晴らしいです。

試してみると良いのは、MinecraftのクローンをJavaとOpenGLで作成することです。これにより、多くのgamedevテクニックの洞察が得られ、多くの最適化テクニックを学習できます。それは私が16歳のときにしたことです。この結果はCraftManiaで見ることができます。Javaで始めることをお勧めする理由は、プログラミングが簡単だからです。ガベージコレクターと適切な例外処理があります。これにより、C ++が未経験の開発者に伴う困難をすべて気にすることなく、OpenGLを非常に効率的に学習できます。

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でもゲームを作成できるようになりました。簡単な事実は、そこには多くのオプションがあります。

あなたの年齢では、まだ業界がどのように発展しているかを学び、見る時間がたくさんあります。あなたに私のアドバイスはこれでしょう:言語に焦点を合わせないでください。ゲームの作成方法の学習や、既存のゲームのmodの作成に焦点を当てます。1つのアイデアは、Minecraftを入手し、Javaを使用してmodを作成する方法を理解することです。MODを実際にリリースしなくても、ゲームの動作を変更できることを確認することほど良いことはありません。

あなたの年齢で、私はベーシック(コモドール64)を使用してゲームを作成していました。RPG Maker以降では、Javaを使用してゲームを修正します。私は18歳頃になるまでC ++に触れませんでしたので、まだ成長するのに十分な時間があります。

実際の質問に答えるには:

  • C ++を学ぶことでプログラミングの仕事に就くチャンスが損なわれることはありませんか?

この段階では、伝える方法はありません。「本当の」仕事を探し始めてから、テクノロジーが非常に急速に進歩するまでに最大10年かかる可能性があります。

  • 就職できるまでに、C ++は依然として「業界標準」のプログラミング言語になります

上記の回答を参照してください。

  • 私がインディー開発者である場合、C ++を学ぶかどうかは本当に重要であり、私が知っていることに固執しますか?

いいえ。重要なのは、いくつのゲームを終了してリリースするかです。

  • 仕事に就くまでに何年もかかるので、今でも学習を開始すべきでしょうか?

学習を始めるのに遅すぎることはなく、遅すぎることもありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.