ホームページ >Java >&#&チュートリアル >C++ : ゲーム業界におけるスピードへの執着
C++ は、ずっと前にゲームやグラフィック ソフトウェアの標準言語になりました。そして、実際の理由がありました。リアルタイム グラフィックス と 物理学 を扱うには、高いパフォーマンスが必要です。ジオメトリの処理、バッファの管理、行列の計算 - すべてに時間がかかります。
しかし、高度なロジックについてはどうでしょうか?ゲームの仕組み、ユーザー インターフェイス、ストレージ管理、ネットワーク リクエスト?そこではスピードよりも安定性と安全性がはるかに求められます。
当社は、パフォーマンスを要求する関数を C++ などのコンパイル言語で実装し、Python などの動的言語で書かれたプログラムから呼び出すことがあります。
しかし、今日では、主に C/C++ で実装され、重い計算のための関数を提供する Python 用の十分に文書化された使いやすいライブラリ (pygame、pyopengl、pyassimp、pybullet、numpy) がすでにあります。または特に物理学/グラフィックス。このようなライブラリを独自に実装する必要に直面することは決してないでしょう。
Java や C# などのガベージ コレクション言語は C++ よりも遅く、大量の計算の要件を実際には満たしていないというのが一般的に受け入れられています。 これはもちろん真実ではありません。
C++ は、一部の特殊なケースではパフォーマンスで Java や C# を 20 ~ 30% 上回る可能性がありますが、動的な関数ディスパッチ、言語対話、非同期タスク、テキストまたは抽象コレクションの管理などのランタイム抽象化 に関しては、 Java と C# は C++ よりもはるかに高い効率を示します。
また、Jython または IronPython を使用して、Java または C# と同じランタイムで Python プログラムを実行する場合もあります。 共有ガベージ コレクション メモリ、型システム、すぐに使えるC# または Java ライブラリへの簡単なアクセスなど、多くの利点をもたらします。 Java には、Clojure や Groovy などの優れた動的言語が実装されており、Java クラス ライブラリに完全にアクセスでき、前述の利点を共有します。
今日のパーソナルコンピューターは、15 ~ 20 年前に比べてはるかに高速になっています。ただし、デスクトップ プログラムやゲームのほとんどは、(依然としてほとんどが C/C++ で実装されているにもかかわらず) 期待したほど速く動作しません。今日、私たちは言語速度だけではなく、優れたアルゴリズムと効果的なアプローチを必要としています。 Python の 一定複雑度 の関数は、C の 線形複雑度 の関数よりも優先されます。 15 行の Python コードで 100 本の木を描画する方が、300 行で 500 本の木を描画するよりも優先されます。 C++ コードの
ゲームを作っていないときは、どの言語を使用するかはそれほど重要ではありませんね?
C++ でゲームを作成するのは、Python や Ruby で同じことを行うよりもはるかに要求が高く、骨が折れます。 C++ で 1 つのゲームを作成する場合、Python では 10 つのゲームを作成することになります。 Python で 5 つのゲーム を作成すると、C++ では 0 ゲーム になります。
ゲームや楽しみを重視しましょう。そうでなければ意味がありません。
以上がC++ : ゲーム業界におけるスピードへの執着の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。