Versão 0.1

Esta versão representa a primeira versão do código fonte do projeto, que pode ser baixado desta página. O código atual apresenta uma versã em wireframe do jogo, ainda sem iluminação, que será introduzida na próxima entrega.

Dentre as funcionalidades já implementadas nesta versão, destacam-se a utilização de modelos complexos todos carregados de arquivos no formato VTK (inclusive o terreno), o loader de arquivos VTK calcula as normais segundo o modelo de Gouraud (que será necessário para a próxima versão), engine física funcional e quase completa (falta apenas inserir o cálculo da resistência do ar e melhorar a detecção de colisões), etc.

Por se tratar de uma primeira liberação, muitas coisas ainda não totalmente terminadas ou bem polidas. Mais especificamente, a interação com o usuário ainda é primitiva e todo o feedback do jogo é fornecido por meio do console (um HUD - Heads-Up Display - gráfico ainda será inserido nas próximas versões), e a contagem do placar ainda não está implementada.

Download

Para baixar o código fonte da versão 0.1 do projeto, clique aqui

Interação com o usuário

O usuário interage com o sistema por meio do teclado e do mouse. As teclas para movimentação do tanque são as seguintes:

Teclas W e S

Movimentam o tanque para a frente e para trás, respectivamente.

Teclas A e D

Fazem o tanque rotacionar em torno do próprio eixo nos sentidos anti-horário e horário, respectivamente.

Segurar tecla CTRL mais movimento do mouse

Com a tecla CTRL segurada, o mouse passa a controlar o movimento das partes articuladas do tanque. Movimentos laterais do mouse fazem a cabine sobre a base do tanque rotacionar sobre seu eixo, e movimentos verticais do mouse fazem o canhão do tanque ter seu ângulo aumentado ou diminuído.

Teclas + e -

Aumenta e diminui a força do disparo, respectivamente.

Teclas 1, 2 e 3

Utilizadas para escolher o tipo de projétil que se deseja lançar.

Problemas conhecidos desta versão

Esta versão do projeto apresenta ainda algums bugs que não puderam ser solucionados a tempo da liberação, dentre os quais destacam-se:

  • Em algumas situações o projétil lançado sofre algumas rotações inesperadas, fazendo com que não se movimentem de uma forma natural;
  • Em algumas situações o projétil é lançado de uma posição abaixo do canhão;
  • Os modelos dos alvos ainda são provisórios e serão trocados por modelos no formato Wavefront/OBJ nas próximas verões;
  • Ainda não é tratada a situação em que o tanque sai dos limites do terreno;
  • O tanque ainda não acompanha corretamente as ondulações do terreno.

Screenshots desta versão

Seguem mais algumas imagens capturadas do projeto em execução em seu estado atual:

Modelo de tanque a ser utilizado

Exemplo de modelo de projetil a ser utilizado

Na página de screenshots podem ser encontradas várias outras imagens desta fase do desenvolvimento do projeto.

Diagramas UML

São apresentados a seguir alguns diagramas UML de como os componentes do projeto foram desenvolvidos e como se inter-relacionam:

Diagrama de classe do pacote core

Diagrama de sequencia do pacote factory

Diagrama de classe do pacote engine

Diagrama de classe do componente loader

Diagrama de sequencia do componente render

Cronograma de Desenvolvimento

Atividade Data prevista Data concluída
Detalhamento final e modelagem do sistema (UML) 07/04/2006 17/04/2006
Desenvolvimento da engine do jogo (controles do usuário, simulação física e lógica do jogo) 21/04/2006 27/04/2006
Testes 28/04/2006 10/05/2006
Modelagem dos objetos, implementação da estrutura de dados dos objetos e loader de arquivos VTK 04/05/2006 26/04/2006
Implementação dos skyboxes (diurno e noturno) 12/05/2006
Iluminação 19/05/2006
Testes 26/05/2006
Texturização 09/06/2006
Efeitos avançados de câmera e explosão dos alvos 16/06/2006
Efeitos de sombra 30/06/2006