quarta-feira, 3 de outubro de 2007

JXNA: Framework para jogos Java, similar ao XNA em C#

O Ecosistame de jogos Java é impressionante e vasto. Nos temos bibliotecas para simplificar as operações em pequenos dispositivos, nesse caminho temos também códigos java que nos possibilita gerenciar clusters de servidores de jogos. Este nosso ecosistema é realmente diverso?

Observando este vasto ecosistema, nós encontramos bibliotecas para área gráfica, representação física e materiais, inteligência artificial, redes, som, entre outras; e muitos dos componentes que podem satisfazer teoricamente a qualquer necessidade de “infraestrutura” de qualquer jogo, carregadores, construtores GUI, editores de níveis, onde a maioria dessas bibliotecas são OpenSource.

Infelizmente, todos esses excelentes projetos possuem filosofias de desenvolvimento diferentes e não se misturam (integram) muito bem uma com a outra.

Codificando jogos em Java para desktop, muitas vezes sentimos uma dificuldade como se estivéssemos presos. Isto é claramente a necessidade de integração das soluções, o que podemos usar e reusar como uma fundação/base para nossos projetos.

A Sun entretanto, nunca decidiu em criar uma solução integrada que abordasse a este necessidade e olhando por uma ótica de como o java é/está forte nas empresas como IBM, BEA e outras. Nenhuma dessas se candidata a criar um framework para games.

Isto significa que a comunidade java está encarregada de criar um framework para esta tarefa (games) que possa competir frente ao XNA. É obvio que nos temos que fazer (a comunidade Java), porque pelo que vemos as empresas de grande porte não tem essa preocupação, então temos que criar nos mesmo um framework para games, para qualquer um que quiser o movimento de desenvolvimento de games em Java, nós não estamos tão longe de uma solução como o XNA, mas precisamos codificar.

Por que não podemos como comunidade Java (com interesse em games) criarmos juntos um framework como o XNA? Por que temos todas as peças do quebra-cabeça e não conseguimos montar a figura? Isto é algo que eu posso escolher, ou temos que esperar por alguém faça isso por nós.

Quando o XNA foi lançado, o Java ainda “sofria” de muitos dos aspectos que lhe proporcionaram a posição de não ser uma linguagem boa para o desenvolvimento de jogos. Entretanto com a evolução da JVM, provavelmente o mais divulgado fato pelo time de engenheiros Java da Sun, que atualmente o código Java executa tão rápido quando um código nativo e em alguns casos até mais rápido devido as otimizações feitas pela VM. Com o OpenJDK nos temos agora, uma possibilidade de aprimorar cada vez mais a runtime, ou até desenvolver runtimes especializadas para games.

Lembrando que o framework XNA utiliza um runtime especializado para games gaseado em CLR. Poderia a comunidade Java utilizar-se do OpenJDK para aproximar e tentar gerar também uma JRE especializada para jogos? Possibilidade de um game amigável ao GC e otimizações do Java bytecode?

ps.: é as esperanças agora, por esta perspectiva são depositadas no OpenJDK, para possibilitar o desenvolvimento de um runtime especializado para games em Java assim como existe a runtime especializado para games usado pelo XNA.

Fonte : Javalobby

aproveitando, veja este vídeo que foi apresentado no JavaOne 2007, do que foi feito em Java utilizando o Java Monkey Engine: