Italo Info


Jogo de PacMan

Há anos atraz, ainda nos tempos de graduação, produzi um jogo de pacman parecido com aquele criado nos anos 80. Fiz em Java e levei em torno de um mês e meio para produzir a primeira versão do jogo que chamei de Come-Come. O jogo tinha suporte a configuração via arquivos texto, tinha uma versão desktop e outra como Applet Java e suporte a Joystich. O audio do Jogo foi gravado pelo gravador do Windows XP e, parte dele, foi produzido com a voz da minha irmã falando coisas como: Passou de fase, Você tem 4 vidas, Game Over! O jogo tem também um mecanismo de pausa. Para acioná-lo, basta teclar enter! Abaixo, imagens do jogo versão primeira (ComeCome):

Jogo de ComeCome - tela inicial
Jogo de comecome - tela inicial
Jogo de comecome executando
Jogo de comecome executando

Após algum tempo, produzi a segunda versão do Jogo a partir da primeira. Na nova versão, era possível colocar truques para pular de fase e/ou atravessar as paredinhas do labirinto, além de, ser possível também nessa versão do jogo, aplicar um truque para alterar o número de vidas. Inclusive, é possível fazer alterações nos arquivos de configuração e alterar manualmente propriedades do jogo como: número de vidas, sequencia de teclas para os truques, largura e altura máxima do tabuleiro, etc. Esta versão do jogo também sofreu alterações para diminuir o tamanho das imagens carregadas pelo jogo. No entanto, para conseguir tal otimização, houve uma perda na qualidade dos gráficos do menu e tela de apresentação. Outra alteração significativa foi a aplicação de um algoritmo de inteligência artificial para que os monstrinhos encontrem o caminho ótimo da sua posição corrente até a posição do pacman, desde que a distância entre eles seja menor que um fator definido. Essa mudança tornou o jogo mais difícil! Mas, a pesar dos melhoramentos, essa versão apresentou um pequeno defeito que, embora dificilmente o seja notado, algumas vezes pode acontecer de um monstrinho sair do tabuleiro. Abaixo, imagens do jogo versão ComeCome 2:

Jogo de ComeCome 2 - Primeira fase
Jogo de comecome 2 - primeira fase
Jogo de comecome 2 - Última fase
Jogo de comecome 2 - última fase

Atenção: (O truque de pular de fase só funciona corretamente na versão 2 com uma limitação: se for executado após os monstrinhos sairem da casinha! Já a partir da versão 3, funciona corretamente sem a limitação!

Logo após a segunda versão do jogo de ComeCome, veio a terceira versão. O jogo foi refeito e foi também utilizado como parte prática do meu trabalho de conclusão do curso de Bacharelado em Sistemas de Informação. O trabalho monográfico teve como titulo: A importância da programação concorrênte no desenvolvimento de jogos computacionais. Inclusive, já havia implantado a programação concorrente desde a primeira versão do jogo. Isso significa que, o jogo é multithreading - executa multiplas threads.

Para quem não conhece o conceito de threads, eu explico: Trata-se de uma parte ou todo de um processo que, grosseiramente, pode ser considerado como um programa em execução. Na programação multithreading, o processo (Ou programa em execução) é dividido em vários núcleos de processamento, chamados threads. Isso pode aumentar o desempenho do programa multithreading, dado que, cada thread concorre para ser escalonada pelo processador e ter parte do seu código executado. Assim, o programa é executado pelo processador mais vezes do que se tivesse uma única thread. No meu trabalho de monografia foi escrito também sobre uma comparação de desempenho entre duas versões produzidas do jogo: a versão de única thread e a multithreading!

Então, vamos ao pacman 3! A configuração do jogo foi alterada para não suportar mais os arquivos de configuração. Pois, a configuração dessa versão do jogo pode ser feita via alteração de constantes no código fonte. Porém, a desvantagem é que, para realizar alterações no funcionamento do jogo, é necessário recompilar o código e empacotá-lo num arquivo de extensão ".jar". O algoritmo A* foi mantido e houve alterações nas fases, além de mostrar um placar com número de vidas, número de bolinhas restantes, etc. Nessa versão é possível reiniciar o jogo através de um item da barra de menus que fica no topo do aplicativo. Abaixo imagens do jogo versão PacMan 3:

Jogo de PacMan 3 - tela inicial
Jogo de PacMan 3 - tela inicial
Jogo de PacMan 3 - primeira fase
Jogo de PacMan 3 - primeira fase

Uns meses depois de formado e com a monografia já defendida e aprovada, resolvi criar outra versão do jogo de Pacman: O PacMan 4! Essa nova versão foi feita a partir da terceira e trouxe muitas novidades! Nessa versão, foi mantido o algoritmo A* para inteligência artificial dos monstrinhos, foi colocada logo no início uma opção para executar o jogo com, apenas, o desenho de primitivas gráficas e, outra opção para o desenho com base em imagens criadas no Corel Draw. A versão primitivas gráficas permite que todo o gráfico seja produzido a partir da linguagem de programação Java, dispensando os gráficos feitos em algum software de edição e produção de imagens. Claro, a versão primitivas gráficas não necessita de carregamento dos gráficos. Outro melhoramento é que não necessita carregar nem o áudio durante a inicialização. Pois, os mesmos são pequenos arquivos representados no formato .mp3 carregados e executados durante o jogo. Outra consideração importante desta versão é que ela trouxe melhorias significativas na programação das multiplas threads. Entretanto, essa versão do jogo trouxe também um pequeno defeito na exibição das mensagens de perda de vidas. Algumas vezes, as devidas mensagens não são mostradas, embora o audio seja executado. Quando vi perceber o erro, já tinham se passado anos após o termino do projeto. Então, decidi não mexer mais nele. Abaixo, imagens do jogo versão PacMan 4:

Jogo de PacMan 4 - tela inicial
Jogo de PacMan 4 - tela inicial
Jogo de PacMan 4 - primeira fase
Jogo de PacMan 4 - primeira fase

Observação: Esse jogo foi produzido com Windows XP há mais de dez anos atrás e foi descontinuado. Isso significa que, para versões mais recentes do Windows, o jogo pode apresentar algum comportamento alterado.

Para jogar pacman é necessário, após o download, descompactar o arquivo .rar ou .zip e dar dois cliques no arquivo de extensão .jar. Nas versões 1 e 2 do jogo, o arquivo .jar tem o nome ComeCome.jar e, nas versões 3 e 4, o .jar tem o nome PacMan.jar. Para executá-los, basta dar dois cliques em algum deles!

Atenção: Eu perdi parte do código fonte do jogo de pacman versão 4. Por isso não disponibilizarei o codigo fonte dele aqui. Mas, você pode baixar a versão sem o código fonte e ver como ficou essa versão do projeto.

Download da versão mais recente do jogo: pacman4.zip

Download das versões anteriores com código fonte:

Siga as seguintes instruções para jogar PacMan ou ComeCome:

  • Pressione as setas do teclado para mudar a direção do personagem PacMan;
  • Pressione enter para pausar;
  • Truques suportados a partir da versão 2:

    Atravessar paredes: Pressione a sequência de teclas 123 para o PacMan poder atravessar as paredes. Para o PacMan voltar ao normal, basta pressionar novamente as teclas 123.

    Pular de fase: Pressione a combinação de teclas fase(n) onde (n) representa o número da fase. Ex: para ir para a fase 5, pressione as teclas fase5;

    Obs: você pode pausar o jogo para, então, pressionar as teclas de truque;

  • O jogo tem 5 fases
  • Truque disponível apenas na versão 2:

    Alterar número de vidas: Quando aparecer o menu principal, digite: vidas???? onde, cada interrogação deve ser substituida por um dígito numérico. Por exemplo: para 10 vidas digite vidas0010. Para 9999 vidas digite vidas9999. Se o truque der certo, um som é executado para indicar que o truque foi executado com sucesso.

  • Função disponível apenas na versão 4:

    Nesta versão, é possível escolher a opção modo normal logo na tela de apresentação e, durante a execução do jogo, pressionar pause e, na barra de menus, alterar de modo normal para modo primitivas gráficas, e vice-versa. Assim, se o modo normal estiver selecionado, são mostrados gráficos com imagens dos personagens produzidas no Corel Draw. Se o modo primitivas gráficas estiver acionado, são mostrados gráficos produzidos, apenas, com os recursos disponibilizados pela linguagem Java.

É só isso pessoal, até o próximo!

Deixe um comentário com dúvidas ou sugestões!