私のサポートをC#、特にXNAの背後に置くことを許可します。
Mono(MonoTouchやMonoDroidなどの有料ライブラリを含む)を使用すると、C#をほぼどこでも実行できます(例)。C#は確かにゲーム開発に十分な速度です。そして、ランタイムは非常に安定しています。Silverlightを介してブラウザー内で実行できます。
私の意見では、C#は、特にゲーム開発において、特にツールとライブラリのサポート、特にXNAを考慮すると、言語としてJavaよりも優れています。
XNAはゲーム開発ライブラリ(範囲はDirectXに似ています)であり、XNA用に構築されたライブラリもたくさんあります。さらに、利用可能なサンプルコードの最高のライブラリがあります。
XNAは、Windows、Xbox 360、Windows Phone 7、および(古いバージョン)Zuneでネイティブに実行されます。
PCでは、C#とXNAはそれぞれランタイムを必要とします。MicrosoftのClickOnceインストーラーを使用すると、これが非常に簡単になります。これにより、ユーザーにブートストラップインストーラーが提供され、必要に応じてMicrosoftからランタイムがダウンロードおよびインストールされます。.NET 4.0クライアントプロファイルは41MB、XNA4.0は7MBです。この回答には詳細があります。
さらに、XNA(2D APIのみ)を他のプラットフォームに移植するプロジェクトがあります。私は現在、高品質の2D XNA実装をブラウザー(Silverlight)、iOS、Android、およびMacに導入することを目的として、ExEnというプロジェクトに資金を提供しています。
ExEnを待つことができない場合は、ExEnのベースとなっているライブラリのいくつか(SilverSprite(Silverlight)およびXnaTouch(iOS))を試すことができます。SilverSpriteはかなりバグがあり、XnaTouchの方が少し優れています。
(現時点では、これらのプラットフォームで3Dゲームを実行したい場合は、Unityの方がおそらく優れたオプションです。)