Bom…me interessei por esse assunto a um tempo e tô pensando em fazer algo pra aprender já que sempre adorei esse tipo de jogo(tower defence, space shooter, etc).
Já achei aqui no fórum muitas referências de como começar com Java2D, e queria saber de quem tem experiência se java é a melhor linguagem pra isso.
Algumas pessoas me falaram que devia dar uma olhada em C/C++ porque é melhor, falaram que java é muito lento e tem problemas com memória entre outras coisas.
Favor de uma opinião sem levar em conta o javeiro dentro de você ^^ seja neutro.
Obs:Sinto que tô esquecendo de algo ^^ se lembrar eu posto aqui depois.
c++ não é melhor que java para criar jogos não. Pelo menos não no sentido que você expressou.
c++ vai ser mais indicado se o projeto é coisa grande e exige muitos outros parâmetros. No mais com java você consegue a mesma qualidade de um projeto produzido em c++ já que ambas vão utilizar os mesmos recursos, como opengl ou direct3d.
Faça uma pesquisa que você vai encontrar muitas fontes:
Se fosse ruim, não tinha tanta gente desenvolvendo bibliotecas e afins. Eu não entendo esse povo que fala (TANTA) besteira.
De qualquer forma, não dê ouvidos: se você quer mesmo fazer jogos e afins, sugiro esse site.
Existe uma parte de Java no Fórum, acesse, dê uma olhada.
O java tem os seguintes problemas no desenvolvimento de jogos:
Não é uma linguagem suportada em qualquer console (e nem vai ser);
Não é adotado em nenhuma indústria de jogo triplo A (consequencia do ponto #1);
Não possui boa integração com o sistema operacional, portanto, não dá bom suporte a dispositivos de entrada diferentes, como volantes, manches ou o kinectic;
Ainda como consequencia do item anterior, você é obrigado a recorrer a bindings para usar recursos como OpenGL e OpenAL, e nem sempre vc encontra o binding, como é o caso do DirectX e do Phyx.
Você exige que seu jogador tenha a VM instalada.
O número de APIs para Java é bastante pequeno e não está crescendo num ritmo expressivo. Muitas inclusive foram abandonadas.
O java tem os seguintes pontos positivos:
É a linguagem do Android;
É mais fácil de estudar algorítmos de jogos nele, pois é uma linguagem gerenciada. O desenvolvimento também é mais agradável por isso. Sem falar que se vc já conhece, será mais confortável e vc não desvia tanto de seu objetivo profissional (um ótimo argumento para indies e hobbistas, que não querem ser progs. de jogos em tempo integral);
Tem ótimos profilers;
Tem ótimos IDEs;
Performance não é um fator relevante para a maior parte dos casos.
Jogos tendem a ter gargalos na placa de vídeo, e não tanto em uso de CPU.
Além da unidev, outro fórum interessante sobre desenvolvimento de jogos é o http://www.programadoresdejogos.com.br, onde sou administrador. Entretanto, o GUJ ainda tem se mostrado melhor que os dois casos quando o assunto é java.
Também não deixe de visitar o meu portal, o ponto v: http://www.pontov.com.br
O Mark (do post acima) escreve lá sobre Android, enquanto o André Santée (dono da Unidev) é o autor dos artigos sobre GameSpaceLib e Ethanon (engine 2D que ele criou para C++).