Existe uma boa razão para eu não usar um applet java para um jogo?


9

Eu quero fazer um jogo multiplayer baseado em navegador. O bom de usar um applet é que eu posso criar o cliente e o servidor no mesmo idioma (java / encerramento / scala / etc). Eu sei que há html5 e javascript, mas o javascript do lado do servidor não é tão maduro quanto a plataforma jvm e o suporte ao navegador ainda é meio esquisito.

Os applets não parecem ser amplamente utilizados (exceto o Runescape), mas existe um motivo para eles não serem adequados ou é apenas por causa da má reputação que eles desenvolveram na infância?


11
Talvez porque poucas pessoas fazem jogos na web em Java e preferem o Flash?
The Duck comunista

Hoje em dia, o Java simplesmente não está mais tão disponível nos navegadores (em comparação com o Flash ou com todos os meios javascript), e há uma boa chance de que seu público-alvo não o instale. No entanto, você ainda pode usar o Java no lado do servidor, independentemente da tecnologia do lado do cliente, não entendo o argumento de que "o javascript do lado do servidor não é tão maduro quanto a plataforma jvm".
falstro

Respostas:


9

Eles obviamente não são adequados para isso, como demonstrado pelo RuneScape e Minecraft e outros jogos menores de miniaplicativos Java. Também existem bibliotecas para gráficos 3D acelerados por hardware ( LWJGL , JOGL ). Não é apenas uma linguagem popular na comunidade de desenvolvimento de jogos.

Você precisa considerar suas plataformas suportadas. Windows e Linux têm ótimos plugins Java, o Mac é decente (só funciona a toda velocidade no Safari na minha experiência), mas obviamente plataformas como o iPad e o Chrome OS do Google seriam completamente perdidas porque não possuem, e provavelmente não serão. sempre, tenha a Java VM neles.


Além disso, você precisa pensar no seu mercado-alvo - os jogadores do minecraft obviamente podem acessar o java.com e instalá-lo, mas muitas "multidões do Internet Explorer" podem não estar.
Jari Komppa

No entanto, o Minecraft é bom porque esses usuários podem simplesmente baixar a versão executável, que inclui o JRE e não precisa de nenhuma instalação; apenas funciona ™.
Ricket

2
Eu acho, que java é grande solução como acesso gpu no navegador sem forçar o usuário instale algo (80-85% de usuários tem java instalado ... incluindo noobs explorador também :))
Notabene

6

Eu uso o Java para escrever jogos e usei o C ++ para escrever jogos e achei o Java bom, desde que você fique atento aos pontos fortes e fracos do Java. As duas grandes vantagens para mim, a programação em Java, são a velocidade de desenvolvimento e a capacidade de implantação / portabilidade. Os tempos de compilação são muito mais rápidos do que no VC ++ (ainda não posso falar por XCode ou Clang), o que significa que posso resolver problemas muito mais rapidamente. Além disso, como o Eclipse está compilando constantemente, cometo menos erros de digitação. Eu nunca escrevi um pedaço de código C ++ que 'simplesmente funcione' em outro sistema ou compilador. Em Java, essa é a norma.

Por outro lado, o Java tem algumas desvantagens importantes. A eficiência costuma ser considerada um motivo para não usar Java, mas eu descobri que, desde que você codifique de uma certa maneira, o Java pode ter um desempenho muito bom. O problema é que a maneira como você precisa codificar vai contra o que muita gente de Java consideraria um bom design.
No coração de Java está o 'coletor de lixo', é o sistema de gerenciamento de memória. Ao escrever um código eficiente, você deseja evitar fazer alocações dinâmicas a cada quadro em qualquer idioma, e isso é particularmente verdadeiro no Java. Se você desativar o coletor de lixo devido a novidades desleixadas, poderá dar adeus às taxas de quadros suaves. Em segundo lugar (e o mais irritante), o Java não suporta tipos de dados de usuário de primeira classe. Todo tipo de dados do usuário em Java é instanciado essencialmente como um ponteiro para uma classe, alocada no heap. Isso é péssimo para a simultaneidade de cache, pois você não pode ter coisas como uma matriz de objetos Vector3 e ter esses concorrentes na memória - você pode ter uma matriz de ponteiros Vector3, mas isso não é a mesma coisa. Geralmente você precisa usar deslocamentos em grandes matrizes de tipos primitivos.


3

Nada de errado com os applets Java para um jogo na web. Eu escrevi um jogo roguelike de código aberto ( Tyrant ) em Java e funciona muito bem como um applet.

Alguns grandes pontos positivos do Java na minha experiência:

  • A portabilidade é excelente - dada a complexidade do Tyrant, foi bastante impressionante que eu consegui obter exatamente o mesmo código compilado para funcionar bem no Windows, Mac e Linux.

  • Você não precisa se preocupar com as peculiaridades do navegador.

  • Com um pouco de inteligência, você pode executar o mesmo código como um applet ou como um aplicativo de desktop independente

  • O desempenho é ótimo, assumindo uma JVM moderna.

  • Todos os pontos positivos usuais de Java em termos de grande variedade de bibliotecas / APIs de código aberto etc.

Esteja ciente do seguinte:

  • Você precisará assinar seu miniaplicativo / obter permissões privilegiadas se desejar armazenar dados no sistema de arquivos local ou acessar bibliotecas nativas. Isso pode ser uma barreira para alguns usuários.

  • O tempo de inicialização tende a ser um pouco mais lento que o Flash ou JavaScript. Por outro lado, o desempenho é melhor quando a JVM está em funcionamento ......

  • Java é uma linguagem de coleta de lixo, portanto, possui pequenas pausas no GC ocasionalmente. Não é realmente um problema para jogos casuais / de interpretação de papéis / de estratégia, mas pode ser um problema para títulos de FPS 3D de alto desempenho em que você está tentando manter uma taxa de quadros constante de 120 FPs sem tremores ......


1

Se você planeja que o jogo seja freeware ou está preparado para ganhar dinheiro com tudo isso sozinho, tudo bem com Java. No entanto, ele não possui um modelo de patrocínio de jogos amplo e estabelecido como o Flash, portanto, ganhar dinheiro seria um pouco mais difícil.


Sinto o cheiro de uma oportunidade? :)
Ricket 14/03

Não tenho certeza se o modelo de patrocínio apresenta um bom negócio para os criadores. É melhor vender seu trabalho por um preço razoável do que receber uma ninharia de um site de portal que faça uma ninharia com a publicidade.
Luther

Lutero: é verdade. Só porque um modelo é estabelecido não significa que é o melhor.
Gregory Avery-Weir
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.