プロジェクトに最適な環境は、タスクを可能な限り最速で実行できる環境です。これ(特に3Dグラフィックスの場合)にはライブラリが含まれます。
タスクによっては、いくつかのマイナーなdirectxハッキングで逃げることができます。次に、.NETとslimdxを使用できます。管理対象言語は、プログラミングが高速でデバッグが容易になる傾向があります。
おそらく、本当に優れた3Dエンジンが必要ですか?Ogre3DまたはIrrlichtを試してください。商用グレードの品質が必要です(Ogre3Dがそれを提供していると主張する人もいるかもしれません)-CryengineまたはUnrealを選択してください。Ogre3DとIrrlichtでは、.NETも使用できますが、ポートは常に最新であるとは限らず、プラグインはC++バージョンほど簡単には含まれていません。Cryengine / Unrealengineの場合、私が推測する本当の選択肢はありません。
もっとポータブルにする必要がありますか?救助のためのOpenGL-ラッパー( SDLなど)が必要になる場合があります。
GUIも必要ですか?wxWidgets、QTが可能かもしれません。
あなたはすでにツールチェーンを持っていますか?ライブラリはファイル形式を処理できる必要があります。
あなたは図書館を書きたいですか?世界のほとんどがC/C ++ライブラリを使用できるため、C /C++が解決策になる可能性があります。おそらくCOMを使用して?
私が言及しなかったプロジェクト/ライブラリはまだたくさんあり(XNA、Boostなど)、3Dグラフィックスを表示するだけでなく、他のニーズもあるかもしれません(入力、サウンド)。 、ネットワーク、AI、データベース、GUI、...)
要約すると、プログラミング言語は目標を達成するためのツールです。それは、目前のタスクのコンテキストで見る必要があります。タスクには独自のニーズがあり、これらのニーズによって言語が選択される場合があります(たとえば、プログラミングに時間がかかる機能を取得するには特定のライブラリが必要であり、言語Xでのみライブラリにアクセスできます)。
1つでほぼすべてが必要な場合:C ++ / CLIを試してください(構文を簡単にするために、おそらくC#と組み合わせて)。