Jogo 2d em java

Olá! Estou desenvolvendo um jogo em Java para um projeto da faculdade mas a princípio eu só tenho o conceito do jogo.
Estudo java voltado para OO e nunca cheguei a ver nada relacionado a jogos, por isso será um desafio imenso! Vou refazer esse jogo aqui, mudando o estilo do cenário somente, mas as funcionalidades serão as mesmas: http://www.jogos360.com.br/jogo_da_reciclagem.html
a parte grafica, como o personagem, os itens e o cenário estão desenvolvidos já, só falta programar o jogo em si. Estou procurando uns materiais de estudo pra ver por onde começar.Ainda não comecei o código, só quero mesmo uma luz de como fazer, só para entender mais ou menos a estrutura, as bibliotecas que vou importar etc…

Se o seu jogo possui um mínimo de dinamismo (ou seja, não é “parado”, como um jogo de cartas), o que você quer é um pouco mais complicado que adicionar um label com um componente timer ou uma thread/swingworker por trás.

Como você não disse que tipo de jogo é, oferecerei dicas genéricas:

  • estude sobre Java2D: se pretende mesmo usar Java, Java2D é o caminho mais simples caso queira fazer um jogo com alguma complexidade (exemplo: animações). Isso te permite adicionar o contador que você quer facilmente, desenhando um texto no canvas de um JPanel, por exemplo;
  • estude sobre game loop: qualquer jogo não estático se beneficia muito dessa técnica, que é usada tanto em jogos simples quanto engines complexas como a Unreal e a Unity;
  • entenda bem a separação entre atualização do desenho e processamento da lógica: de forma simples, a atualização da lógica (movimentação dos personagens, IA dos inimigos) de um jogo é feita de forma separada de sua exibição; enquanto a lógica pode ser atualizada centenas ou milhares de vezes por segundo, a exibição é feita à taxas o mais fixas possíveis (como os famosos 60 frames por segundo);
  • evite threads se não precisar: e acredite, dificilmente você precisará para um jogo simples. Threads por si só trazem uma série de características e detalhes, e não conversam com Swing de forma trivial. Adicione isso à complexidade intrínseca aos jogos e você tem uma receita para uma bagunça difícil de coordenar

Deixo a recomendação de leitura do Ponto V: http://www.pontov.com.br/site/java . Lá fala sobre vários desses conceitos que citei, inclusive game loop e Java2D.

Abraço.

1 curtida