私はJavaを使用してゲームを作成し、C ++を使用してゲームを作成しました。Javaの長所と短所を意識している限り、Javaは問題ありません。私にとってのJavaでのプログラミングの2つの大きな利点は、開発のスピードとデプロイ可能性/移植性です。コンパイル時間はVC ++よりもはるかに高速です(XCodeやClangについてはまだ話せません)。つまり、問題をはるかに迅速に解決できます。また、Eclipseは常にコンパイルされているので、タイプミスのエラーを減らすことができます。私は、他のシステムやコンパイラで「そのまま」機能するC ++コードを書いたことがありません。Javaでは、これが標準です。
一方、Javaには大きな欠点があります。効率は、Javaを使用しない理由としてしばしば示されますが、特定の方法でコーディングする限り、Javaは非常にうまく機能することがわかりました。問題は、コーディングする必要がある特定の方法が、多くのJavaの人々が優れた設計と考えるものに反することです。
Javaの心臓部は「ガベージコレクター」であり、メモリ管理システムです。効率的なコードを書くときは、あらゆる言語でフレームごとに動的割り当てを行わないようにする必要があります。これは特にJavaに当てはまります。ずさんなnewingのためにガベージコレクターをオフに設定すると、スムーズなフレームレートにさようならとキスできます。第二に(そして最も厄介なことに)Javaはファーストクラスのユーザーデータ型をサポートしていません。Javaのすべてのユーザーデータ型は、本質的にはクラスへのポインターとしてインスタンス化され、ヒープに割り当てられます。これは、Vector3オブジェクトの配列のようなものを持たせたり、それらをメモリ内で同時に持つことができないというキャッシュの同時実行性にとってはひどいです。Vector3ポインターの配列を持つことはできますが、それはまったく同じではありません。通常、代わりにプリミティブ型の大きな配列にオフセットを使用する必要があります。