De acordo com seu primeiro requisito, você está procurando uma estrutura em vez de uma biblioteca.
O jMonkeyEngine é uma estrutura para jogos 3D (ou seja, fornece o loop principal conforme solicitado, semelhante ao XNA), mas não seria uma boa opção para 2D.
No entanto, um loop de jogo não é algo difícil de escrever , e as bibliotecas Java existentes atendem aos seus 2º e 3º requisitos, por isso sugiro pesquisar em uma biblioteca / mecanismo 3D de gráfico de cena ou em qualquer biblioteca 2D, dependendo se você estiver criando um jogo 2D ou 3D.
Aviatrix3D , Ardour3D , Java3D e jMonkeyEngine são minhas recomendações para os motores 3D de cena gráfica.
Para bibliotecas 2D, você possui o JGame ou pode optar por usar o OpenGL para obter a velocidade máxima e usar LWJGL ou JOGL . Você também pode simplesmente usar a biblioteca Graphics2D integrada do Java , o que seria uma opção especialmente boa se você planeja implantar seu jogo como um applet.
Para seguir a rota Graphics2D embutida, observe o código-fonte da Metagun (clique para reproduzir no formato de applet). É um jogo Java 2D pequeno, mas muito bem escrito, e acho que é um excelente exemplo de jogo pequeno; copie sua estrutura e você terá seu loop / estrutura ideal para o jogo.
Se você quer uma estrutura única para suportar 2D e 3D, o mais próximo que eu já vi é o jPct. É 3D, mas dentro de seus fóruns eles têm alguns ajustes para fazer 2D.
Eu recomendo que você use o Xith3D ou o Java Monkey Engine para 3D. E Slick ou GTGE para 2D.
Estou escrevendo um livro sobre desenvolvimento de jogos java, já completei os capítulos sobre o básico para desenvolvimento de jogos java 2D e 3D, ele pode dar um ponto de partida, veja aqui:
http://code.google.com/p/lucu
Taksan
fonte
Embora não suporte 3D, o pulpcore é uma boa estrutura de jogos. Eu não o usei pessoalmente, mas pesquisei o código apenas para verificar e parece bom.
fonte
RedDwarf é um Java Game Engine. Este é o antigo Projeto DarkStar que a Sun usa para financiar.
fonte