C++ : ゲーム業界におけるスピードへの執着

王林
リリース: 2024-07-27 18:31:42
オリジナル
542 人が閲覧しました

C++ : speed obsession in the game industry

本当にスピードが必要になるのはどんな時ですか

C++ は、ずっと前にゲームやグラフィック ソフトウェアの標準言語になりました。そして、実際の理由がありました。リアルタイム グラフィックス物理学 を扱うには、高いパフォーマンスが必要です。ジオメトリの処理、バッファの管理、行列の計算 - すべてに時間がかかります。
しかし、高度なロジックについてはどうでしょうか?ゲームの仕組み、ユーザー インターフェイス、ストレージ管理、ネットワーク リクエスト?そこではスピードよりも安定性と安全性がはるかに求められます。

責任の分散

当社は、パフォーマンスを要求する関数を C++ などのコンパイル言語で実装し、Python などの動的言語で書かれたプログラムから呼び出すことがあります。
しかし、今日では、主に C/C++ で実装され、重い計算のための関数を提供する Python 用の十分に文書化された使いやすいライブラリ (pygame、pyopengl、pyassimp、pybullet、numpy) がすでにあります。または特に物理学/グラフィックス。このようなライブラリを独自に実装する必要に直面することは決してないでしょう。

C++ が唯一の選択肢ですか?

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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!