OI pessoal, eu sou novo aqui, mas eu já participo há algum tempo de um outro fórum especializado em programação de jogos (www.unidev.com.br), lá eu defendo fortemente o uso do java para programação de jogos.
Pq eu defendo esse ponto de vista?
Simples, eu já há algum tempo descobri as funcionalidades do JNI para o aumento da performance JAVA, ou seja, eu escrevo rotinas em C++ e compilo em DLL’s depois eu chamo essas rotinas no java.Para programação gráfica, existem duas maneiras de usar a interface(a q eu uso) a 1º é usar o java.awt.image.BufferedImage q permite funcionalidades de buffer duplo q permitem converter matriz de inteiros em buffer de imagem.Passa-se um ponteiro para o 1º elemento da matriz para as rotinas em C++ em DLLs devidamente carregadas q operam sobre elas e constroem toda a imagem em código int-alpha-RGB e depois devolve o ponteiro.O tempo de conversão da imagem é de menos de 1 ms, e o tempo de exibção é tal q (através do bufferStrategy em cooperação com o BufferedImege e Writableraster) consigo sempre obter o limite da freqüencia de atualização da tela(o tempo de chamada das funções C(no jdk1.4) geram um desperdício de 0.4 segundos a cada 10000000 de chamadas).
Então toda a estrutura gráfica e de interface com mouse e teclado, bem como o gerenciamento de threads eu faço em java, operações em ponto flutuante etc…eu faço em C++.
O segundo meio é o AWT Native interface(Q eu ñ domino e pro tanto ñ posso comentar).
Eu sou estudante de bel. física, e entendo algumas coisas de ótica e de geometria diferencial q eu uso nos meus códigos(principalmente pq eu ñ sei usar JAVA3D), então vcs podem imaginar q eu faço uns códigos carregados de cálculos de ponto flutuante.E comparando a performance do java (ainda uso jdk1.4 mas estou baixando o j2sdk1.4.2_03 enquanto escrevo isso(eu li no site da sum q ele está muito melhor em performance, pois usa instruções SSE e SSE2 do P4 para operações de ponto flutuante gerando aumente de 80% em performance)) eu constatei q o java está muito bom…
o desempenho do java muitas vezes alcançou o do C++!!!
em operações como calcular séries de taylor de soluções de equações diferenciais com o x variando de 1 a 100 000 000(demora tanto q eu tenho q ir dá uma volta enquanto termina de calcular em p4 2.4GHz’s) o desempenho do Java foi exatamente igual ao do C(q é mais rápido q o C++)!!!
Quanto ao negócio de ser mai lento em operações tr
Bem, o problema desses códigos em computação gráfica é q sobrecarregam o processador(eu ñ sei dividir o processamento com o da placa de vídeo, para obter melhor performance).
Mas tem como usar DirectX pelo JAVA e eu conheco um exelente jogo construído em JAVA (mas q só funciona em Windows, por causa o directX) q ñ exige muito em hardware(e os gráficos são de dar inveja ao feitos em C++)
http://community.java.net/games/
Pois eu vi q vcs ñ conhecem jogos de grande porte escritos em JAVA.
Eu tb tenho programas gráficos 3D(sem java3D, só na conta msm) feito em JAVA e em combinações JAVA&C++, posso enviar por e-mail para quem se interessar.
Desculpe o post longo, mas vcs sabem…é o meu 1º.
NielsRX