回答:
最初の要件によれば、ライブラリではなくフレームワークを探しています。
jMonkeyEngineは3Dゲームのフレームワークです(つまり、XNAと同様に、要求に応じてメインループを提供します)が、2Dには適していません。
ただし、ゲームループを書くのは難しくありません。既存のJavaライブラリは2番目と3番目の要件を処理するため、作成するかどうかに応じて、シーングラフ3Dライブラリ/エンジンまたは2Dライブラリを調べることを強くお勧めします。 2Dまたは3Dゲーム。
Aviatrix3D、Ardor3D、Java3DおよびjMonkeyEngineは、シーングラフ3Dエンジンの推奨事項です。
2Dライブラリの場合は、JGameを使用するか、OpenGLを使用して最大速度でLWJGLまたはJOGLを使用することを選択できます。また、Javaの組み込みGraphics2Dライブラリを使用することもできます。これは、ゲームをアプレットとしてデプロイする場合に特に適したオプションです。
組み込みのGraphics2Dルートを使用するには、Metagunのソースコードを確認します(クリックしてアプレット形式で再生します)。これは小さなものですが、非常によく書かれた2D Javaゲームであり、小さなゲームの優れた例だと思います。その構造をコピーすると、最適なゲームループ/フレームワークが得られます。
Slickは、LWJGLをベースにした素敵な2D Javaライブラリです。ゲームループ、レンダリングを処理し、スプライトを実装するための便利な機能が含まれています。
多くの異なるデモとサンプルがバンドルされています。
1つのフレームワークで2Dと3Dの両方をサポートしたい場合、私が見た中で最も近いものはjPctです。これは3Dですが、フォーラム内では2Dを行うための微調整がいくつかあります。
Xith3DまたはJava Monkey Engine for 3Dを使用することをお勧めします。そして、2D用のSlickまたはGTGE。
Javaゲーム開発に関する本を書いています。2Dおよび3DのJavaゲーム開発の基本に関する章をすでに完了しました。出発点として、ここをご覧ください。
タクサン