Vale a pena usar Java para criar jogos?  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
tiagomac
JavaTeenager
[Avatar]

Membro desde: 15/12/2006 05:38:29
Mensagens: 191
Localização: Salvador, BA
Offline

Olá Pessoal,

Desde que comecei a usar o Java eu tenho essa dúvida. não me refiro a jogos para celular etc, mas para desktop, que possa competir com os mais populares do mercado.
Até onde eu sei o java tem suporte para opengl, modelos 3D etc... mas na hora de criar um ambiente virtual, enfim, criar um jogo, a linguagem responde bem?

outro problema é a questão da lentidão, escuto muito falar que java é lento, porem para o uso que faço eu nem sinto isso. mas, no caso de um jogo isso é sentido?

sei que a maioria dos grandes jogos são feitos em C++... por isso fiquei com essa dúvida apenas uma curiosidade, o que vocês acham?

scjp 6
ocpjwcd 5

"Desconfie do destino e acredite em você. Gaste mais horas realizando que sonhando, fazendo que planejando, vivendo que esperando, porque embora quem quase morre esteja vivo, quem quase vive já morreu" - Luiz Fernando Veríssimo - Cronista e escritor.
[MSN]
josenaldo
GUJ Master
[Avatar]

Membro desde: 27/11/2006 12:39:28
Mensagens: 1170
Localização: Uberlândia/MG
Offline

Oi Tiago

Olha, Jogos para desktop ainda é dos poucos mercados onde Java apanha feio! rs

A questão do desempenho é tão importante neste mercado que muitos jogos não usam somente c++, como também Assembly ou algo mais baixo nível que C/C++!

Apesar disso, progressos tëm sido feitos. Só que até o momento, nunca vi uma "Killer Game Aplication" em Java.

Mas isto não quer dizer que Java seja ruim. Talvez o paradigma do desempenho do Java esteja tão encravado na cabeça dos desenvolvedores de jogos que ninguém teve coragem de investir alguns milhares de dólares em algo tão arriscado quando "jogos em Java".

Você pode encarar isso de duas maneiras:
  • Pessimista: Esquece! Eles NÃO usam sapatos...

  • Otimista: Oba! Eles AINDA NÃO usam sapatos!



  • Josenaldo de Oliveira Matos Filho
    UAIJUG - http://www.uaijug.com.br
    http:jnaldo.com
    [Email] [WWW] [MSN]
    ACDias
    JavaGuru
    [Avatar]

    Membro desde: 11/08/2006 19:54:51
    Mensagens: 219
    Localização: Patos de Minas
    Offline

    Fizeram um port da engine do Quake 2 para java. Chamaram de Jake. Já ouvi falar que o desempenho da engine java é superior ao da engine c++, porém não sei se é verdade mesmo. Eu creio que a questão da velocidade não é mais problema na linguagem java. O que faz um jogo ser bom não é linguagem em que ele foi feito.
    josenaldo
    GUJ Master
    [Avatar]

    Membro desde: 27/11/2006 12:39:28
    Mensagens: 1170
    Localização: Uberlândia/MG
    Offline

    Concordo com o ACDias que o que faz um jogo bom não é a linguagem.

    Apesar de Java ter um desempenho similar e algumas vezes até superior ao C++ em certos aspectos, tem um deles que tem importância vital nos jogos e é onde Java perde: operações com números flutuantes.

    Confesso que não sei como está este aspecto na Java 5 e Java 6, mas até a 1.4, o Java perdia. E isso conta muito na hora de desenvolver jogos, porque a indústria dos games dá ênfase demais em realismo/gráficos, mesmo que o jogo saia uma droga! Os caras são maníacos por desempenho!!!

    Tiago, observe uma coisa. A dificuldade de se fazer jogos em Java é trabalhar com 3D. A depender do tipo de Jogo, creio que Java pode se sair muito melhor que C++.

    Josenaldo de Oliveira Matos Filho
    UAIJUG - http://www.uaijug.com.br
    http:jnaldo.com
    [Email] [WWW] [MSN]
    boaglio
    Moderador
    [Avatar]

    Membro desde: 09/09/2002 21:23:39
    Mensagens: 1865
    Localização: Sampa City
    Offline


    Numa palestra sobre Jogos em Java do Sun Tech Days de 2005 escutei uma frase interessante do palestrante: "antigamente o programador colocava a culpa no processador pra justificar a lentidão do jogo, hoje ele culpa a linguagem".

    Realmente os jogos antigos baseados em Z-80 (leia-se Tk-90, MSX,etc.) tinham somente 16 ou 32Kb para fazer os jogos e os malucos da época programavam só em Assembly para ficar rápido e em cima disso várias otimizações de código em cima. E conseguiam... impressionante...

    Hoje já tem jogo que pede 1 Giga de RAM e mesmo com uma placa de vídeo boa não é tão rápido assim

    C++ ainda domina o desenvolvimento de Jogos, mas acredito que isso mude com o tempo e abra um espaço para o Java e outras linguagens interessantes como Lua e LISP (vejam o game Abuse).

    Cada linguagem oferece uma facilidade para alguma coisa, portanto acredito que a tendência mesmo é que os jogos não usem 100% Java, mas provavelmente use-o para uma engine interna ou algo do tipo.


     

    Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de Java via MP!
    [WWW]
    dudaskank
    GUJ Ranger
    [Avatar]
    Membro desde: 12/09/2003 14:59:26
    Mensagens: 850
    Localização: Suzano, SP, Brasil
    Offline

    A linguagem já consegue, o que falta é os programadores de jogos fazerem os jogos em java... por exemplo, o guj aqui está com uns 10000 usuários, desses, se tiver uns 20 interessados no assunto já acho que é muito, o pessoal do java parece estar sempre interessado mais em JEE, em framework web, e coisas do gênero que normalmente são chatas hehehe.

    Eu por exemplo me interesso pelo assunto, já fiz jogos em C e C++, mas ainda nenhum completo pra java... um dia talvez eu faça um port dos meus 2 joguinhos humildes pra ela hehe.

    Hoje java já tem opengl, então tudo fica fácil se já souber como trabalhar com ela, o que não é meu caso.

    Links pra você saber mais:

    Java OpenGL
    Lightweight Java Game Library
    JMonkey Engine

    flw e boa sorte

    Eduardo Oliveira

    Toque a balada do amor inabalável, eterna love song de nós dois...

    Página
    [WWW]
    ACDias
    JavaGuru
    [Avatar]

    Membro desde: 11/08/2006 19:54:51
    Mensagens: 219
    Localização: Patos de Minas
    Offline

    josenaldo wrote: Confesso que não sei como está este aspecto na Java 5 e Java 6, mas até a 1.4, o Java perdia. E isso conta muito na hora de desenvolver jogos, porque a indústria dos games dá ênfase demais em realismo/gráficos, mesmo que o jogo saia uma droga! Os caras são maníacos por desempenho!!!
    Não posso afirmar porquê não sei, mas acho isso não é mais problema nas versões recentes da JVM.
    josenaldo wrote: Tiago, observe uma coisa. A dificuldade de se fazer jogos em Java é trabalhar com 3D. A depender do tipo de Jogo, creio que Java pode se sair muito melhor que C++.
    Eu já acho o contrário, as bibliotecas java pra manipulação 3D estão muito mais fáceis de se usar que as de outras linguagens. A API Java3D tem suporte a Opengl e Directx, mas existem outras que são muito boas também.
    boaglio wrote: C++ ainda domina o desenvolvimento de Jogos, mas acredito que isso mude com o tempo e abra um espaço para o Java e outras linguagens interessantes como Lua e LISP (vejam o game Abuse).
    Lua já largamente usada em jogos, normalmente para controlar o comportamento dos npcs, existem bibliotecas c++ para carregar e executar os scripts lua. O melhor disso é que a linguagem é 100% brasileira.

    Esse carinha nesse forum fesse um game 2D em java. Muito bem feito.
    http://www.unidev.com.br/forum/topic.asp?TOPIC_ID=35676
    CarlosEduardoDantas
    GUJ Master
    [Avatar]

    Membro desde: 13/11/2006 15:26:38
    Mensagens: 1089
    Offline

    especialmente pra celular

    tem mta gente faturando em cima disso

    'Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito'.

    Aristóteles.

    carloseduardoxp
    [MSN] [ICQ]
    Grinvon
    GUJ Master
    [Avatar]

    Membro desde: 18/08/2003 22:10:49
    Mensagens: 1899
    Localização: Em qualquer lugar
    Offline

    Josenaldo, seus postos são maravilhosos aqui, mas realmente discordo desse seu post.

    A questão não é somente a linguagem, e sim a ponte que Java possa fazer com outras APIs (diga-se bibliotecas de computação gráfica).

    O Java pode acessar o OGL de forma direcional, do qual todo o processamento gráfico fica com a biblioteca e não com a linguagem em si. A chamada nativa traz benefícios de velocidade, pois não é o Java que irá renderizar uma imagem, um vertex, um shadow, nem nada desses recursos.

    Então lá vem a pergunta, Java é viável para jogos 3D? Sim, desde que se usa as libs corretas e podendo sempre que possível optimizar o código.

    Mas claro que mesmo assim o desempenho final será difícil de se igualar a um jogo feito em (c/c++, asm e Lua). Mas de qualquer forma poderemos ter ótimos resultados com Java. Mas infelizmente as melhores engines gráficas ainda não estão disponíveis, vide a Crysis e a Unreal Engine 3.

    >> Inocêncio.
    [MSN] [ICQ]
    Grinvon
    GUJ Master
    [Avatar]

    Membro desde: 18/08/2003 22:10:49
    Mensagens: 1899
    Localização: Em qualquer lugar
    Offline

    Fora que em Java temos a vantagem da "facilidade", então se você quiser construir um jogo belo, com bons gráficos, é sim possível com Java.

    Tentem programar em DX, é um parto, OGL é mais ligth, tb o OGL é menos abrangente que o DX, pois é direcionado para apenas gráficos 3D, enquanto o DX é uma engine composta de vários recursos, que vai desde som a gráficos em gerais.

    >> Inocêncio.
    [MSN] [ICQ]
    ACDias
    JavaGuru
    [Avatar]

    Membro desde: 11/08/2006 19:54:51
    Mensagens: 219
    Localização: Patos de Minas
    Offline

    Grinvon wrote:Tentem programar em DX, é um parto, OGL é mais ligth, tb o OGL é menos abrangente que o DX, pois é direcionado para apenas gráficos 3D, enquanto o DX é uma engine composta de vários recursos, que vai desde som a gráficos em gerais.
    Sou obrigado a concordar com você. É um porre aqueles milhares de parâmetros que cada método do DX possui e que na maioria você sempre coloca nulo, e isso nem é o pior: você entra na referência da API e a própria diz que aquele parâmetro deve ficar nulo mesmo. Resumindo, ele não serve pra nada!
    peczenyj
    Moderador
    [Avatar]

    Membro desde: 26/03/2006 23:25:37
    Mensagens: 3191
    Localização: Rio de Janeiro
    Offline

    O ponto chave de um jogo é a criatividade.

    De repente vc precisa de recursos que o java não pode te dar, por exemplo, se vc quiser fazer um jogo pra Snes (teria q fazer em C, mas ninguem vai fazer um jogo pra Snes AGORA né?).

    Uma vez me passaram o seguinte desafio: criar um jogo simples, modo texto, com ate 4 salas, que fosse interessante. Eu tentei por meses e ficou muito ruim simplesmente por que eu não consegui pensar em um jogo simples e, ao mesmo tempo, bom. Nem posso culpar a linguagem ou a engine 3D.

    Acho que a pergunta deveria ser "vale a pena usar Java para criar jogos que precisem do recurso X ?". Por que se vc conseguir compensar alguma "deficiencia do Java" com criatividade, a pergunta ja está respondida.

    Digo deficiencia do Java tanto a 'lentidão' mitica da linguagem quanto até mesmo a sua inexperiencia de produzir com as APIs 3D mega fodonas algo ao seu gosto.

    http://pacman.blog.br

    'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
    [WWW]
    tiagomac
    JavaTeenager
    [Avatar]

    Membro desde: 15/12/2006 05:38:29
    Mensagens: 191
    Localização: Salvador, BA
    Offline

    A linguaguem ainda é motivo de confusão para mim, talvez pq ainda sou novato.
    mas vejá só, um amigo meu tá escrevendo um jogo em Object Pascal, usando openGL e o jogo tá massa, bem funcional e tal... agora o engineer ele tá fazendo do zero... sei que apenas um cenário com um modelo e uns itens jogados no chão custaram boas horas de programação :O!
    procurei por recursos em java para estudar, apenas por nível de curiosidade e notei que java tem uma carência muito grande quando o assunto é criação de jogos.

    alguém tem conhecimento de algum livro bom?
    eu encontro informação para mobile edition e outras coisas menores, mas nada grande que chegue a envolver bibliotecas gráficas como opengl/directx etc...

    scjp 6
    ocpjwcd 5

    "Desconfie do destino e acredite em você. Gaste mais horas realizando que sonhando, fazendo que planejando, vivendo que esperando, porque embora quem quase morre esteja vivo, quem quase vive já morreu" - Luiz Fernando Veríssimo - Cronista e escritor.
    [MSN]
    Duende Macabro
    Debugger
    [Avatar]

    Membro desde: 15/11/2004 10:48:27
    Mensagens: 71
    Offline

    Engines:

    www.jmonkeyengine.com

    xith.org

    Livros:
    Killer Game Programming in Java
    Developing Games in Java
    tiagomac
    JavaTeenager
    [Avatar]

    Membro desde: 15/12/2006 05:38:29
    Mensagens: 191
    Localização: Salvador, BA
    Offline

    olha só, continuei pesquisando aqui no site que o dudas passoui: https://jogl.dev.java.net/ fiz um teste inclusive com o código que encontrei aqui: http://en.wikipedia.org/wiki/JOGL e até funcionou direito, mas esse "jogl" possíbilita a importação de modelos feitos em programas tipo Maya, 3dsmax, xsi etc? modelos .obj ?
    é possível criar jogos c/ ele ou ele seria para outra funcionalidade?
    e esse jogl é feito pelo time do java ou é de terceiros?

    scjp 6
    ocpjwcd 5

    "Desconfie do destino e acredite em você. Gaste mais horas realizando que sonhando, fazendo que planejando, vivendo que esperando, porque embora quem quase morre esteja vivo, quem quase vive já morreu" - Luiz Fernando Veríssimo - Cronista e escritor.
    [MSN]
     
    Índice dos Fóruns » Assuntos gerais (Off-topic)
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team