Programação de jogos com java

Vini, obrigado pelas dicas !
Seguinte, quero seu material sim, será de grande valia para mim. Mas não o usarei para as aulas não, será para mim mesmo, quero saber o que de física é relevante para jogos. Minha intensão não é ensinar isso para os alunos, mas sim usar para fazer simulações e colocar em meu site pessoal. Para os cursos de engenharia eu ministro aulas apenas de linguagem C (aaaarrrrrghhhhhhh !!!).
Quando tiver tempo começarei a estudar C#, mas antes quero aprender direito Java para jogos, pois já comecei e não quero parar agora. Depois de aprender os conceitos gostaria de aprender a usar a JMonkeyEngine, que em um dos tópicos aqui você colocou o link e achei aquilo sensacional !
Enviei uma mo para você com meu email para que me enviasse o material.
Agora, gostaria de saber de vocês como vocês se arranjam com os cenários, palcos e sprites, pois arte não é comigo, não sei desenhar nem uma casinha ! Vocês contratam artistas ?

Luiz Augusto, dei uma olhada no site, muito legal o trabalho mesmo. Tentei trabalhar com flash, mas tive alguns problemas, gostaria de usar a engine Away3D, mas não obtive sucesso, não consegui instalar e fazer funcionar adequadamente no FlashDevelop. Se souber como fazer isso, gostaria de uma ajudinha sua.

Obrigrado aí, pessoal, estão prestando uma boa ajuda.

Abraços !

[quote=Valder Olmo Corrêa]Vini, obrigado pelas dicas !
Seguinte, quero seu material sim, será de grande valia para mim. Mas não o usarei para as aulas não, será para mim mesmo, quero saber o que de física é relevante para jogos. Minha intensão não é ensinar isso para os alunos, mas sim usar para fazer simulações e colocar em meu site pessoal. Para os cursos de engenharia eu ministro aulas apenas de linguagem C (aaaarrrrrghhhhhhh !!!).
Quando tiver tempo começarei a estudar C#, mas antes quero aprender direito Java para jogos, pois já comecei e não quero parar agora. Depois de aprender os conceitos gostaria de aprender a usar a JMonkeyEngine, que em um dos tópicos aqui você colocou o link e achei aquilo sensacional !
Enviei uma mo para você com meu email para que me enviasse o material.
Agora, gostaria de saber de vocês como vocês se arranjam com os cenários, palcos e sprites, pois arte não é comigo, não sei desenhar nem uma casinha ! Vocês contratam artistas ?

Luiz Augusto, dei uma olhada no site, muito legal o trabalho mesmo. Tentei trabalhar com flash, mas tive alguns problemas, gostaria de usar a engine Away3D, mas não obtive sucesso, não consegui instalar e fazer funcionar adequadamente no FlashDevelop. Se souber como fazer isso, gostaria de uma ajudinha sua.

Obrigrado aí, pessoal, estão prestando uma boa ajuda.

Abraços ![/quote]

Eu entrei para Física este ano na Universidade, e também gostava mesmo de desenvolver simulações de fenómenos reais. Apesar de já estar familiarizado com Java, o pessoal recomendo-me aprender C/C++ :confused:

Olá Valder,

Infelizmente o flash que eu sei trabalhar é o Professional.
Quando quero afazer sumulações mais pesadas eu utilizo o blender.
olha o que é possivel fazer com fluidos no blender:



Eu tentei fazer algo realistico assim, levou 5 min para renderizar um único frame.
Inviavel para eu fazer filmes.

Sobre performance e java para física, veja minha opinião aqui:

[quote]Eu tentei fazer algo realistico assim, levou 5 min para renderizar um único frame.
Inviavel para eu fazer filmes. [/quote]

Seria inviável para fazer filmes em tempo real, mas vc pode deixar “algumas” semanas o programa rodando em sua casa (só duas horas por segundo de filme, levaria apenas 14.400 horas, ou 183 dias, para fazer seu filme)… heheheheh.

Falando em física para esses builders, baba-se mesmo com os exemplos da Lagoa MultiPhysics:

Que, embora muito bonitos, saem do escopo do que queremos ensinar na aula de física (afinal ela faz tudo praticamente sozinha).
Só é legal para deixar os alunos babando e mostrar a eles até onde podem chegar se estudarem um bocado.

Vale lembrar também que a concepção e o desenvolvimento da engine foi liderado por um brasileiro.

ViniGodoy , blz?

Mais para questao de conhecimento(pq minha praia é jsf, hibernate). Normalmente, quais frameworks voce usa para programacao de games?

abs

Depende muito de que tipo de programação vc vá fazer, e do game.

Em iPhone tem a Cocos2D, para games 3D tem a UDK e a Unity…
Para ensinar games, eu uso uma API nacional chamada Chien2D, e o XNA.

Mas quando faço minhas pesquisas em game (principalmente em CG) gosto de fazer no braço com DirectX e C++.
Não tem jeito, pra estudar o melhor jeito é abusar de “programação orientada a cabelos no peito.”

Ah ta,
Pensei que voce usava “java puro” para games(se é que tem jeito)

Esse exemplo da lagoa magica foi desenvolvido em que ?

[quote=julianosts]Ah ta,
Pensei que voce usava “java puro” para games(se é que tem jeito)[/quote]

Eu usei Java2D puro em alguns games, no início. Mas logo vi que a linguagem era muito deficitária para esse mercado, e parti para alternativas melhores.
Se fosse usar Java, como já falei no post, seria apenas no Android, pois há alternatívas muitíssimo melhores na indústria (não estou dizendo que seja impossível fazer um game em Java, mas é muito mais difícil e arriscado, uma péssima estratégia do ponto de vista técnico ou de negócio).

[quote=ViniGodoy][quote=julianosts]Ah ta,
Pensei que voce usava “java puro” para games(se é que tem jeito)[/quote]

Eu usei Java2D puro em alguns games, no início. Mas logo vi que a linguagem era muito deficitária para esse mercado, e parti para alternativas melhores.
Se fosse usar Java, como já falei no post, seria apenas no Android, pois há alternatívas muitíssimo melhores na indústria (não estou dizendo que seja impossível fazer um game em Java, mas é muito mais difícil e arriscado, uma péssima estratégia do ponto de vista técnico ou de negócio).[/quote]

As duas ultimas duvidas(senao fica parecendo entrevista.rs)

1.A lagoa magina foi feita em que?
2. Voce acha meio arriascado se aprofundar em j2me só por causa do android(tudo bem…conhecimento é bom), mas voce acha que existem outras solucoes melhores para estudar do que ele ?(linguagens)

[quote=julianosts]1.A lagoa magina foi feita em que?
2. Voce acha meio arriascado se aprofundar em j2me só por causa do android(tudo bem…conhecimento é bom), mas voce acha que existem outras solucoes melhores para estudar do que ele ?(linguagens)[/quote]

Segundo o autor, a Lagoa (que é o nome da engine de física que fez todos aqueles demos) foi feita em C++, e inicialmente como um plugin:

O J2ME está em declínio, sendo substituído pelo Android (são coisas diferentes). Não acho que valha a pena se concentrar em J2ME hoje em dia, a menos que vc tenha interesse em entrar em algum nicho específico de mercado já consolidado.

[quote=ViniGodoy][quote=julianosts]1.A lagoa magina foi feita em que?
2. Voce acha meio arriascado se aprofundar em j2me só por causa do android(tudo bem…conhecimento é bom), mas voce acha que existem outras solucoes melhores para estudar do que ele ?(linguagens)[/quote]

Segundo o autor, a Lagoa (que é o nome da engine de física que fez todos aqueles demos) foi feita em C++, e inicialmente como um plugin:

O J2ME está em declínio, sendo substituído pelo Android (são coisas diferentes). Não acho que valha a pena se concentrar em J2ME hoje em dia, a menos que vc tenha interesse em entrar em algum nicho específico de mercado já consolidado.[/quote]

Valeu pela dica Vinny, perguntei do J2ME e do android, porque vi uns cursos especifico de java para android

Abraço

Só um comentário, a Lagoa Multiphysics (não sei de onde vc tirou o “mágica”), é uma engine para animadores, com foco em qualidade ao invés de tempo real (inadequada para jogos). Esses exemplos foram todos pré-renderizados.

Engines de física com foco em tempo real modernas incluem a Havok e, entre as gratuitas, a Bullet Physics.

Para vocês que estudaram por esse livro ‘Killer Game Programming in Java’, hoje ele ainda pode ser considerado uma referência para quem pretende começar a programar jogos?
Se não for, vocês têm sugestão de algum outro livro?
Obrigado.

Está um tanto desatualizado, por ser da época do Java 4. Desde lá, muita coisa piorou na plataforma JSE em relação à jogos.
Mesmo o livro do Dave Brackeen, está um tanto obsoleto, pois é da mesma época.

Foram descontinuados ou paralizados projetos como a JOGL, JMF e javax.sound.
Ok, muitos recursos legais foram adicionados ao JSE, como generics, for each e thread pools, mas poucos deles realmente fazem a diferença para games.

Sobra só o livro do Jonathan Harbour, que não é tão bom assim.
Esse autor sai escrevendo livro de desenvolvimento de game em tudo o que é linguagem, mas não se aprofunda bastante em nenhuma delas.

Enquanto não sai um livro específico de LibGdx, não é uma boa insistir em JSE.
Outra possibilidade é tentar partir para o JavaFX - mas esse é um campo que ainda não arrisquei.

Tem uma série interessante e bastante abrangente chamada Introdução ao Desenvolvimento de Games, publicada pela Carnage Learning. É bem interessante. Te dá uma visão geral da área.
A parte 2 é específica sobre desenvolvimento.

No caso de Java, eu recomendaria pegar livros para Android, como esse aqui:

Ou, se quiser aprender a fazer games 2D do jeito “hardcore”, esse aqui:

Mas há ótimos tutoriais de games 2D na internet, como esses:
http://www.sdltutorials.com/tutorials
http://lazyfoo.net/SDL_tutorials/

O importante é você ter um foco na área. Saber se quer estudar games 2D, 3D, mobile. Pelo menos, traçar seu objetivo com estudo de games.
Assim podemos te ajudar melhor, e não dar sugestões tão abrangentes.

O fato é que a área de jogos ainda é dominada pelo C++, e essa tendência não parece estar mudando. Você ainda acha alguma coisa em Objective-C, no caso do Android. Em flash, para games do facebook.
No Brasil, a Unity tem tido uma boa penetração no mercado de 3D. Mas é difícil competir com o C++ pois ele compila para praticamente qualquer coisa. Desde o último video-game tiplo A, até aquela cafeteira com um microprocessador que já prepara o café automaticamente de manhã.

Obrigado pelas dicas ViniGodoy. Eu pretendo fazer alguns jogos para Android.
Mas antes disso, queria começar tendo uma experiência com algo 2D.
No início do ano passado, comecei a estudar um pouco com o material desse site
‘Lazy Foo Productions’. Estava aprendendo bastante, mas interrompi para priorizar minha pesquisa de mestrado.
Nos próximos meses estou para retomar esse estudo, mas queria planejar bem para aproveitar melhor esse tempo.
Daí pesquisei um pouco no Google e achei este tópico, me veio o interesse em saber do livro porque
Java é a linguagem com a qual eu sou mais familiarizado.

É importante aprender os conceitos. Por exemplo, você não vai muito longe em jogos sem saber o básico sobre vetores e matrizes de transformação:
http://www.pontov.com.br/site/arquitetura/54-matematica-e-fisica/132-o-uso-de-vetores-nos-jogos
http://www.pontov.com.br/site/arquitetura/54-matematica-e-fisica/238-matrizes-e-transformacoes-parte-1

Isso permitirá que você faça objetos que girem, ou implemente frameworks de partículas.
Ou mesmo que modele comportamentos bem interessantes, como os desse site:
http://www.red3d.com/cwr/steer/

Se for implementar games de plataforma, é legal conhecer os assuntos listados nesse guia:
http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers

E se for fazer games com mais física, estudar também a Box2D:
http://www.box2d.org/manual.html

Vários outros tópicos já estão listados no LazyFoo, tais como paralaxe, scrolling background, etc.
Vai nos conceitos, que depois adaptar para qualquer linguagem é só uma questão de tempo.