Windowsゲームプログラミングの第一言語としてのC ++? [閉まっている]

StackOverflow https://stackoverflow.com/questions/1618050

  •  06-07-2019
  •  | 
  •  

質問

私はPythonをかなり理解している趣味のプログラマであり、現在Cを学んでいます。最近、プログラミングを学びたい同僚と話をしていました。彼の場合、DirectXを使用したWindowsゲームプログラミングへのパスとしてC ++を学習したいと考えています。個人的には、あなたの最初の言語はやや多いので、C ++に直接飛び込む気がします-より簡単な言語でやる気を維持するのは難しいので、基本的な概念のほとんどを理解するために別の言語を学ぶ方が良いと思いますC ++のようなもの。

Linux / UnixプラットフォームでのネットワークとWebプログラミングにもっと興味があるので、Pythonが私の最初の言語としてうまく機能していることがわかりましたが、Windowsゲームプログラミングに主に興味がある人にとっては、C#がより良い選択であると考えていましたVisual C#Express EditionとXNAを使用して学習し、C ++の学習を開始する準備ができてから既に使い慣れた環境にいるときにVisual C ++に切り替えます。メモリ管理は取り入れるのが大変だと思いますが、C#は少なくともそれを処理するので、C ++の学習を開始するまでそれを先送りできます。

C ++をこの種のアプリケーションの最初のプログラミング言語と考える人はいますか?代わりにC#に行くことをお勧めしますか?

役に立ちましたか?

解決

C ++は問題ないはずです。彼は、C#にジャンプする前に、プログラムがどのように機能しているかを理解するので、メモリ管理、ポインタなどについて学ぶのが一番だと思います。それ以外の場合、彼は単にメモリが魔法であると見なし、ガベージコレクタには実際の意味がありません。基礎となる言語(C、C ++、アセンブリなど)をしっかり理解しておくと、最高のコードを生成できます。

他のヒント

C ++は、ほとんどの "深刻な"ために使用される主要言語です。ゲームタイトル。大手ゲームスタジオのプログラミングをする場合、彼はC ++のちょっとした汚点を知る必要があります。

C ++で始めるのは、初心者にとっては少し大変かもしれません。出発点としてCをお勧めします。 C ++の複雑さを追加する前に、メモリ管理の概念やその他の低レベルのものに精通します。

C#はマネージコードであるため、彼は低レベルのメモリ管理の洞察を得ることはないでしょう。 C ++を処理しなければならないとき、それは彼に役立たないでしょう。この場合、金属に近づき始めることは、長期的に彼を助けるでしょう。

C ++ゲームプログラミングは素晴らしいです。しかし、プログラミングを学んでいる間に全体的な苦痛が好きでない限り、XNAから始めることを検討するかもしれません。これにより、エンジンコードと戦うのではなく、ゲームのコンテンツとロジックに取り組むことができます。

痛みが気になったら、DirectXとC ++のルートから始めましょう。

C ++を使用する前に、JavaやC#などの言語を徹底的に学習することをお勧めします。これを言う理由は、C ++の詳細と複雑さに簡単に行き詰まってしまうからです。

私は(趣味として)C ++のオンとオフに数年間苦労し、UniでJavaを教えられ、C ++をやめ、数年間Javaの仕事に就いてから、C ++ devに移りました。どんなパターンや概念を適用したいかを既に知っていたので、すべてをすばやく見つけました。構文と奇妙さを学び、ポインタに再び慣れるだけの問題でした。なぜではなく、HOWを学ぶ必要がありました。 C ++を最初の主要言語として採用することは、HOWとWHYを同時に学習することであり、非常に混乱を招く可能性があります!

XNAは良い提案です。

Pythonはゲームプログラミングが得意です。 i-want-to-learn-gameを参照してください。 -development-which-language-should-i-use Pygame の学習を検討してください。

  

Pygameは、ゲームを書くために設計されたPythonモジュールのセットです。 Pygameは、優れたSDLライブラリの上に機能を追加します。これにより、Python言語でフル機能のゲームとマルチメディアプログラムを作成できます。 Pygameは移植性が高く、ほぼすべてのプラットフォームとオペレーティングシステムで実行されます。 Pygame自体は何百万回もダウンロードされており、そのWebサイトには数百万の訪問がありました。

業界に参入したい場合、ゲームエンジンの大部分がC ++を使用しているため、C ++を知ることが不可欠です。 (また、開発者はある時点でリーンCまたはC ++を使用する必要があります)
ただし、ゲームの作成(ゲームの作成の完了など)を希望する場合は、C ++を使用することはできません。これは非常に複雑で、開発に時間がかかる言語になる多くの落とし穴があります。メモリ管理だけでなく、恐ろしいstl関連のコンパイルエラーなど、最初に試すときに何かを実行するのが非常に難しいものです。プログラムへ。
C#やPythonのようなものを見るのは、はるかに複雑ではない言語であり、それぞれにいくつかの優れたゲームライブラリがあるため、より良い選択肢です。

C ++が正しい方法であると彼が判断した場合、少なくともレンダリングライブラリをお勧めします。少なくとも Ogre3D のようなもの。この理由については、この記事のエンジンではなくゲームを作成で説明しています。ベースAPIからエンジンを作成する(または作成しようとする)ことは良い経験になりますが、ゲームが終了することはほとんどありません。

考慮しなければならないのは既存のSDKのことで、おそらく自分ですべてをプログラムしたくないでしょう。たとえば、あなたにぴったりのさまざまな種類のライセンスを備えた非常に優れた3Dエンジンがあります。

したがって、既存のライブラリとSDK、および使い続けたいいくつかの言語を同時にチェックアウトする必要があります。 C ++またはC#に適応することはそれほど難しくありません。前者はより厳格で要求が厳しいのに対し、メモリをより広範囲に制御できます。後者は主な開発領域に集中できますが、メモリ管理を担当します(主に)。つまり、リアルタイムの問題が発生する可能性があります。

1日の終わりに、アプリケーションの構築に役立つものは、それらのOO言語間のわずかな違いを常にある程度上回るでしょう(

)。

ゲームエンジンは多数ありますが、ほとんどはこのページに記載されています。特に興味深いのは、自由の世界です:

非フリーパッケージには、 Unity などが含まれます。

これらのエンジンのいずれかを したくない場合、 Qtのような非常に優れたライブラリがまだあります C ++の場合、スクリプトを作成できます-直接Pythonではありませんが、自分で埋め込む必要があります-C#の場合は他のものもありますが、リストが非常に長くなる可能性があります。

通常、人々は最初のゲームを完了する前に勢いを失います。したがって、あなたの友人に厳しく決定された実績がない限り、利用可能な最も高レベルのオプションをお勧めします。 C ++とC#を選択している場合、それはC#になります。

手早く簡単に導入するにはXNAとC#を使用し、トピックに関する経験を積んだ後は、ゲームプログラミングにC ++とDirectXなどのライブラリを使用します。最も成功したゲームのほとんどはC ++で記述されています。

あなたの目標が楽しみを持つことであり、実際に比較的小規模なゲームを自分で(または小さなチームで)終えるなら、私はC#とXNAを言います。

あなたの目標が業界で働くことである場合、巨大なチームとの超大予算ゲーム...そしてC ++ ...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top