DESENVOLVIMENTO DE JOGO EM JAVA

Nas férias, dezembro de 2013 resolvi desenvolver um jogo em java, foram muitos dias sem dormir e bastante leitura… é um desafio e tanto para quem está começado como eu, pois os melhores tutoriais são em inglês, e pouco se tem material em português.

O mercado é dominado pelo desenvolvimento de jogos em C/C++, devido ser uma linguagem de grande desempenho com o hardware, porem, Java tem conquistado a cada dia seu espaço, graças a constante evolução no desempenho, sua portabilidade e magnificas engine, mais não é o que será tratado aqui.

O jogo não está lá essas coisas, logicamente é meu primeiro, e ralei muito para fazer cada implementação; escrito inteiramente em java, todas as imagens e efeitos sonoros foram baixados (a) da internet, alguns modificados; utilizei apenas uma biblioteca JLayer para reproduzir os arquivos mp3; o intuito desse jogo é apenas para efeito de aprendizagem.

champs da galaxia

Descrição do Jogo:

Trata-se de uma batalha espacial onde o jogador controla uma nave e deve destruir os inimigos, adquirindo o máximo de pontos.

No menu superior, tem informações sobre qual a missão (nível), quantidade de vidas, quantidade de pontos, quantidade de inimigos não abatidos e um temporalizador que faz uma contagem regressiva para trocar de missão.

Captura de tela de 2014-01-06 15:22:42

Possuí efeito sonoro: Musica de fundo, som de disparo, som de coleta de vida, som de explosão, som missão completa, som fim de jogo.

Ambiente de Desenvolvimento

S.O. Linux Ubuntu 13.10

IDE Eclipse

CONTROLE DO JOGO

Botão esquerdo do mouse dispara arma.

W, S, A, D movimenta a nave (ou) up, down, reght, left movimenta a nave.

Obs.: (Mantenha o cursor do mouse em cima da tela do jogo para poder dispara arma).

Este jogo foi desenvolvido com base em vários tutoriais, livros e artigos.

Referencias (Links):

Assassino Programação de Jogos em Java

Abrindo o Jogo

Biblioteca de MP3 para a Plataforma Java

Como criar jogos

Criando sprites com Blender e Gimp | flagrantdisregard

Cap. 9 – Threads (Segmentos) – Java Free.org

DesignsbyZephyr – YouTube

ForeignGuyMike – YouTube

Jogos em desenvolvimento em Java

Jogo tutorial

Jogos em desenvolvimento em Java

Livros de Programação Livre

Sprite Banco de Dados

The Spriters Resource

YoYo Games | Recursos Oficiais

Yann Braga – YouTube

O projeto do jogo deve ser executado na IDE Eclipse (ou em outra IDE que desejar se souber importar), para executar corretamente o efeito sonoro deve-se incluir a biblioteca Jlayer no projeto.

Baixar: Projeto + game.jar

Projeto no GitHub

Obs.: (para executar o .jar, mantenha o diretório “res” junto com o .jar).

Gostaria que, quem baixar mande um feedback, sugestões de melhorias, seja você também um contribuinte, para quem está iniciando o código está comentado, veja o que é possível melhorar para ter um melhor desempenho, agradeço a todos leitores.

Até a próxima.

11 respostas

  1. hidelgard

    Primeiro quero parabenizá-lo pelo projeto está muito bom. Sobre as considerações seria interessante que o tiro da nave pudesse ser acionado ao pressionar o botao de espaço do teclado daria melhor jogabilidade. E que durante o jogo coletasse alguns itens pra aumentar o poder de fogo da nave e a velocidade, e ao passar de estagio a velocidade dos adversarios aumentassem, sei que é apenas um projeto mas fica a dica pra novas versoões.

    Responder
  2. Francisco de Assis

    Hidelgard, obrigado por sua participação, será de grande valor para as próximas versões do jogo, e a dica que foi sugerida será sim implementada, em breve estarei postando uma nova versão com bastantes melhorias.vlw

    Responder
    • Guilherme

      Ola parabéns pelo jogo, mais eu não conquir abrir o jogo porque de umas mensagem de erro problema a tocar as musicas e deu um olhada para ver se o caminho estava correto e sim esta e também importei jlayer mais tem x no ícone no eclipse e o erros de som continua, e também imagem do fundo do game não esta funcionando.
      Que eu tenho que fazer o para corrigir os erros?

      Responder
  3. Vagnerlandio Nunes

    Quais linguagens de programa vocês conhece para desenvolvimento de jogos e qual a gente terá um melhor proveito em alguns anos?

    É que eu fujo do java por não considerar uma linguem para o “futuro”.
    Ainda não fiz faculdade e queria saber de vocês que tem mais conhecimento em programação.

    Atualmente tenho 5 projeto de jogos e pretendo terminar um por ano. O primeiro estou fazendo em GML (linguagem do gamemaker) e depois de muitas pesquisas decidi fazer meus outros 4 jogos em C++.

    Apesar do C++ ser uma linguem de baixo nível, muitas Framework’s no mercado ajudam quem está acostumado com scripts. Como por exemplo a Cocos2d-x (C++) que é possível exportar o jogo para todas as plataformas e todos os consoles.

    Parabéns pelo site de vocês. Jayr está ai representando a nossa cidade (Penaforte)

    Responder
    • Jayr Alencar

      Cara,o que tá vindo com tudo ai, ou pelo menos tava, é HTML5, tem uma galera que desenvolve jogo nela ai, e faz umas coisas bem legais, é uma boa pra quem quer desenvolver jogos pra web, mas se você quer desenvolver pra mobile é melhor que seja Java.
      Pra pc, é melhor que seja uma linguagem baixo nível mesmo, C++ é uma boa e C também, principalmente pra quem quer belos e detalhados gráficos. Falo aqui um pouco do que sei e penso, mas que manja mesmo é o autor do post, Francisco!

      Responder
  4. Francisco de Assis

    Bem, só para complementar, o Framework’s Cocos2d-x é uma excelente alternativa para quem deseja desenvolver games tanto para Web, como Desk, e principalmente Mobile, permite ao programador desenvolver com as linguagens C++, JavaScript, Lua. Veja esse Link: http://www.casadocodigo.com.br/products/livro-jogos-android

    As linguagens de Maior proveito aceita até hoje no mercado de desenvolvimento de jogos são as de baixo nível, com C, C++, Assembly, entre outras. Tudo depende do tipo de jogo que você deseja construir. Porem é muito interessante que você desenvolva inicialmente escrevendo o jogo todo no braço, assim pratica a programação e conhece melhor a linguagem. Aconselho que busque programar em C, C++, Java, Python, essas linguagens são bastante maduras, e não vão cair em desuso da noite para o dia. Sem contar que praticamente tudo que usamos hoje é java, por exemplo: cartões de créditos, uma porrada de aplicações para desktop, tablets, mobile, sites como Banco do Brasil, Lojas Americanas, entre outros Sistemas embarcados. Java é sim uma linguagem que revolucionou, e continuará para o futuro, assim tanto com muitas que vem sendo utilizadas. Visite os links que foi disponibilizado a cima.

    Responder
  5. Lucas

    Amigo, show de bola seu jogo…

    Eu to com um trabalho de curso também e to me ralando para desenvolver a barra do Tempo que você tem ali implementado.
    Estou utilizando o mesmo ambiente que você descreveu..

    Seria possível você disponibilizar esse código?

    Desde já agradeço.
    Abraço.

    Responder

Deixe uma resposta

Seu e-mail não será publicado.