Objective Cのは、3Dゲームに適した言語ですか?
-
06-09-2019 - |
質問
私は議論の多くは、リアルタイム3Dゲームを開発するために使用する言語に行ったり来たり見て、一般的なコンセンサスは、システム、CまたはC ++は、ハイエンドのための適切な性能を提供できる唯一の言語であるということです-intensive 3Dゲーム。私はC#、JavaやPythonのを言って多くの人が、特に理由は、ガベージコレクションの、遅すぎるご覧ください。どのようにObjective Cのでしょうか? Objective Cのは、自動ガベージコレクションを持っていますか?自動ガベージコレクション以外の言語は「遅すぎる」や3Dゲームには不適当何をしますか?
この質問は「思った実験」私は私が今までので、これらの質問に対処する必要があることを重く資源であるゲームを開発します疑うが、プログラマであること、私は不可解パフォーマンスに取りつかれていますので、おそらくより多くです、私はまだちょうど私自身ジョリーズのために知っているように思います。
解決
のObjective-C 2.0は、Mac OS X 10.5上で利用可能なガベージコレクションを持っていますが、それはオプションです - あなたがそう選択した場合、あなたはまだガベージコレクションなしでのObjective-Cアプリケーションをコンパイルすることができます。他のプラットフォーム(iPhone、マックOS Xの前10.5、および他のもの)で、そこにはガベージコレクションはなく、手動であなたのメモリを管理する必要があります。
あなたがしたい場合は、Objective-CでプレーンなCをコーディングすることができますので、のObjective-Cは、Cのの厳格のスーパーセットです。したがって、またC.あなたはObjective-Cのは同じくらいか、あなたが好きな少し提供して余分な機能を使用することができます使用には適用されないだろうゲームのためのObjective-Cを使用しない理由はありません。
他のヒント
のObjective-C の自身との唯一の本当の景気減速は、はさえメッセージングメカニズムとなり、その後、それは通常、物事が遅くなりCocoaフレームワークのコンポーネントです。送信のObjective-Cのメッセージが本当にパフォーマンスを傷つけることはありません。のことのずっとます。
とにかく、ほとんどのゲームのために、パフォーマンスのボトルネックの大半は、グラフィックスコードから来る:あなたは途方もなく高速でのOpenGLにグラフィックスのものを委任する場合は、実際にゲームのためのObjective-Cを使用しても問題はないはず。私はObjective-Cのかココア提供するボトルネックを見ることができる唯一の他の場所は集中的な物理学のためになるコードとそれはおそらくとにかく純粋なC / C ++で記述する必要があります。他のすべては、しかし、必要がありません本当に重要それほどます。
正直に言うと、私はOS Xのゲームの大半は、今日、純粋なC / C ++(およびOpenGLを利用し、グラフィックスコード付き)で記述されたパフォーマンスに敏感なコードで、Cocoaフレームワークを使用してObjective-Cで書かれていることを賭けたいですます。
私も話題に興味があると私はこれを見つけました http://wiki.gnustep.org/index.php/3DKitする
これはかなり死んで見えますが、今打ち鳴らす/ LLVM 2.9でのObjective-C 2のグッズの多くは、Linux上で利用可能であり、3D APIを持っているのは興味深いことができます。
のObjective-Cは、自動ガベージコレクションを持っていません。 Javaは、ガベージコレクションの様々な方法があり、そのうちのいくつかは、一定の間隔で漸増的に発生することにより、ゲームと互換性があるように設計されています。また、ガベージコレクションを持っていたC#または何か他のものは、ゲームとの互換性があり、そのいくつかの中から選択する複数の方法を、持っていなかった場合、私は驚くだろう。
それはその実装に解釈され、特に遅いれた場合は、3Dゲームのためのゲームは適さない可能性があるでしょう、私の頭の上からだけの事は次のようになります。それはあなたが上記のものの特性ではありません。
P.S。
):あなたの元の質問に対処するために、私は、iPod TouchやiPhoneを持っている人はObjective-Cのは、3Dゲームまで間違いであることを伝えることができるようになりますかなり確信しています