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 の 線形複雑度 の関数よりも優先されます。Python コードの 15 行で 100 個のツリーを描画する方が、300 行で 500 個のツリーを描画するよりも優先されます。 C コードの
ゲームを作っていないときは、どの言語を使用するかはそれほど重要ではありませんね?
C でゲームを作成することは、Python や Ruby で同じことを行うよりもはるかに要求が高く、骨が折れます。 C で 1 個のゲームを作成する場合、Python で 10 個のゲームを作成することになります。 Python で 5 つのゲームを作成すると、C では 0 ゲームになります。
ゲームや楽しみに気を配りましょう。そうでなければ何の意味があるのでしょうか?
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3