GNU GCCはAAAゲームに使用されますか?


11

GNU GCCは非常に一般的なコンパイラですが、AAAゲームのような大規模なプロジェクトではほとんど使用されていないようです。私には、それは問題なく動作し、問題はありませんでした。しかし、なぜすべてのAAAゲームがIntel Studioなどの商用コンパイラを使用しているように見えるのでしょうか。なぜそれが重要なのですか?また、GNU GCCはIntelだけでなくすべてのシステムのコードを最適化するので、なぜIntel Studioなどに煩わされるのでしょうか。


GCC 、LLVM / Clangが登場する前、またはclangで「gcc?意味はclangですか?」;)
Maik Semder 2013年

clangの機能 コンパイラですか?もしそうならそれは良いですか?O_O
LiquidFeline

Clangはllvmと呼ばれるコンパイラプラットフォームのac / c ++フロントエンドです。はい、多くの点で優れています。まず、マクロが呼び出された行だけでなく、マクロの正確なエラーが表示されます。ASTツリーへのアクセスが簡単になり、追加のパーサーを必要としないため、愚かなインテリセンスはさらに愚かに見えます。部分的なコードのコンパイル、リストは長いです、それを見てください、その価値があります:)
Maik Semder '15

回答:


9

インテルのコンパイラーは別のコンパイラーです。GCC ++とVC ++は、IntelのICCと同様に、プロダクション品質のコードを生成します。主な違いは、4つの主要な領域にあります。

  • a)サポートされる機能(主にC ++ 11機能で異なる)
  • b)実行可能サイズ
  • c)ランタイム
  • d)コンパイル時間

(ほとんどの)Intel CPUからパフォーマンスのすべての最後のビットを絞り込もうとしているとき、AAAスタジオはその代償をいとわず、ICCにいくらか春を迎えています。 素晴らしい逸話についてはこちらご覧ください。また、ICCが非正規のIntel命令セットCPU(AMDなど)で十分に実行されていないと非難されている彼の欠点セクションにも注意してください。


10

一部のコンソールやハンドヘルドを含む多くの非PCプラットフォームは、変更されたGCCをプライマリ/唯一のコンパイラとして使用します。

PCでは、ほとんどのゲーム開発会社がVisual Studioのコンパイラを使用しています。コンパイラの選択は、通常、エンジンの設計やグラフィックスと比較してランタイム速度にほとんど影響を与えません。いずれにしても、その機能セットはIDEとして設定されているため、GCCのインストールと開始は比較的困難です。また、反復時間と生産性を向上させることはあまりありません。誰もがすでに投資している代替案と比較して、GCCを使用する理由は十分に説得力がありません。


GCCを使い始めるのが少し難しいだけではありませんが、アプリケーションがマルチスレッドの場合、MinGWにはDLLを同梱する必要があります-GCCはWindowsでDLLを必要とするSEHとは異なる例外メカニズムを使用します。
ディートリッヒエップ2013年

1
例を示すために、ソニーはPS3プライマリコンパイラを内部コンパイラからGCCに移動しました。そして、PS3でリリースされたAAAタイトルの不足はありません。
Kaganar 2013年

欠点は、これらのプラットフォーム固有のGCCが通常はかなり古くなっており、通常はGPLv3以前、したがってC ++ 11以前であり、最近の診断とパフォーマンス作業の多くが欠落していることです。:/多くのベンダーによる新しいGCCのこの拒否は、多くのゲーム開発者がGCCを回避できる場合は、それを回避するもう1つの理由である可能性があります。ベンダーのツールチェーンでの経験を踏まえると、彼らはその状態について不公平な見方をしているかもしれません。Clang 3.1程度がGCC 4.2と比較されているAppleプラットフォームでの頻繁なClang比較を見てください。(私はClangのファンですが、比較は一般的に不公平です。)
Sean Middleditch 2013年

4

はい、AAゲームで使用できます。

ほとんどすべてのAAAゲームが(すべてではないにせよ)商用コンパイラを使用する理由は、商用製品には通常サポートがあり、AAAで発生する可能性のある問題に対処するときに、苦情やサポートを24時間年中無休で受けられるという事実です。産業、時代はお金を意味します。大きなチームや企業、特に後者は、大きなお金がかかっているときにコミュニティに依存したくありません。契約によるサポートに投資することをお勧めします。

一方、エンジンはSDKに依存しています。SDKがコンパイラをサポートしていない場合、それはあなたが自分でいることを意味し、回避策を実行することは有益ではありません。

最後に、最適化。多くのプレーヤーがIntelを使用していることを知っているなら、あなたはゲームを丁寧に彼らに提供したいと思います。


1
毎年10億のターンアラウンドを達成した当社は、gccおよびその他のgnu開発ツールをプレミアムレベルでサポートできます。
lzap 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.