「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ : ゲーム業界におけるスピードへの執着

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

2024 年 8 月 1 日に公開
ブラウズ:743

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 の 線形複雑度 の関数よりも優先されます。Python コードの 15 行で 100 個のツリーを描画する方が、300 行で 500 個のツリーを描画するよりも優先されます。 C コードの

言語ではなくゲームを重視する

ゲームを作っていないときは、どの言語を使用するかはそれほど重要ではありませんね?
C でゲームを作成することは、Python や Ruby で同じことを行うよりもはるかに要求が高く、骨が折れます。 C 1 個のゲームを作成する場合、Python10 個のゲームを作成することになります。 Python5 つのゲームを作成すると、C では 0 ゲームになります。
ゲームや楽しみに気を配りましょう。そうでなければ何の意味があるのでしょうか?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/taqmuraz/speed-obsession-in-the-game-industry-1p4i?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3