Esse é na pratica o primeiro jogo desenvolvido em meu curso de especialização em desenvolvimento de jogos, apresentado na matéria de Técnicas de Implementação de Jogos com o Prof. Fábio Vinícius Binder, da PUC/PR.
DigDug - Texto
O interessante desse trabalho foi o de fazer um jogo focando apenas nas regras e dinâmica deste, sem que houve-se perda de tempo com ferramentas avançadas, as quais costumam nos tirar da linha, devido a grande variedade de recursos. Como a única coisa que foi disponibilizada foi uma pequena biblioteca que tinha como principal função, a de desenhar um caracter em um ponto da tela. Foi possível focar esforços na lógica envolvendo os princípios básicos do desenvolvimento de jogos. Realmente foi muito divertido e bem trabalhoso, mas o resultado foi o planejado.
O Jogo:
Baseado no clássico DigDug para Atari, onde monstros subterrâneos tentam eliminar o nosso herói e impedi-lo de coletar o ouro de uma mina. Essa versão é composta de 2 fases, onde o personagem principal possui 3 vidas, e perde uma cada vez que um dos 4 monstros encosta nele.
Por dentro do jogo
O jogo implementa um esquema de Tiled Map, implementado através de uma matriz contendo números de 0 à 9, onde cada algarismo representa um tipo de objeto. Para a movimentação, foi utilizado um algorítimo de PathFinder, que monta um vetor de posições entre dois ponto. Dessa forma é calculado o caminho entre um monstro e o herói, num determinado momento, e o monstro faz esse caminho, quando chega a posição final, é novamente calculado o caminho. A tendência é que os monstros fiquem cada vez mais próximos, e comecem a acuar o herói. O que dá uma senssação de "inteligência", que no caso não foi implementada.
Problemas Enfrentados:
O maior problema foi falta de tempo e a complexidade que acabei colocando no código. Resolvi, no início do projeto, que deveria utiliza Threads, coisa desnecessária para o jogo em questão, o que me causou uma série de problemas de sincronia entre elas e problemas com a biblioteca Console, que se perdia quando haviam chamadas simultâneas dela, fazendo com que caracteres fossem printados em partes diferentes da desejada. O sistema utiliza 5 Threads, uma de controle e outras 4 (uma para cadas monstro).
Faltou Fazer:
Ficha Técnica:
Nome: DigDug
Autor: Marcelo Roberto Scandolara
Linguagem: C++
Tempo de Desenvolvimento: 40 horas
Ferramenta de Desenvolvimento: Code::Blocks 8.02
Código fonte: DigDug_Modo_Texto.zip