[JAVA] Projeto Morg 0.6


Deopis de um mês de estudo e desenvolvimento, mais outro mês parado por causa de tempo (padrão), estou postando a nova versão do Projeto Morg, agora na 0.6. Para quem ainda não sabe do que se trata, veja aqui a explicação inicial.

No post anterior aceitei a sugestão de Suissa, para exibir as mensagens do sistema logo abaixo do mapa. Valeu Suissa.

Veja como ficou o checklist atualizado da versão 0.6  (legenda logo abaixo):

checklist06


Para esta versão foquei mais o sistema de visão (e sua amplitude) do personagem(CHAR). Funciona assim, a idéia é mostrar ao jogador todos os itens que são visíveis ao redor personagem de acordo com sua amplitude(AMP), ou seja, a distância de sua visão. Abaixo o cálculo que realizei para efetuar essa tarefa:

campo_visao_morg_calc

O valor da amplitude é definida a cada nova instância de um char, atualmente está setado como 2 . Dessa forma, ele poderá visualizar dentro da matriz até 2 casas ao seu redor.

Abaixo um exemplo prático de como isso funciona:

campo_visao_morg_amp

Abaixo  changelog da versão 0.6:

Sistema de campos de visão:
– Definir em cada item se este será visto em campo de visão. Ex. A grama não precisa ser referenciada, pois é apenas um objeto comum de cenário. Agora uma árvore precisa estar no meu campo de visão.
– Definir a amplitude do campo de visão de um personagem ou npc. Ex., um personagem pode ser 1(um), ou seja, poderá enxergar apenas uma casa (posição) para qualquer lado (x+1). Um monstro pode ser 3(três), podendo ver até 3 posições em qualquer direção (x+3, visão mais ampla).
– Verificação de limites do mapa: exibir como campo de visão que o personagem está nos limites. Serve também para evitar erros em tempo de execução.

Geral:
– Gravar o mundo ao sair.
– Opção de gravar o mundo.
– As bordas do mapa são itens de uma classe e não mais apenas imperssões de caracteres.
– As mensagens do sistema aparecer abaixo do mapa, e não acima. (sugestão de Suissa via blog)
– Criado mais um item: Muro. A borda do mapa agora é formado por muros.
– Alguns melhoramento na programação.

Bug:
– Não deixar movimentar além do mapa.
– Quando o Personagem está na borda do mapa, gerava erro no campo de visão quando amplitude > 1.


Abaixo uma screenshot da versão 0.6 (clique para ampliar):

console06

Fiz um rápido screencast para termos uma noção do que está acontecendo. Prometo que ná próxima eu comento algo junto com o vídeo :) .

Arquivo de dados:

Todos os objetos no mapa, incluindo a borda, estão sendo armazenados em um arquivo texto no seguinte formato:

x,y;<classe>.<objeto>

Esse arquivo é carregado quando o programa é iniciado, então é montado o mapa. Existe uma thread que é executada de tempos em tempos para a gravação da situação atual do mapa (posição dos objetos) nesse mesmo arquivo texto. Existem outras duas situações em que o mapa também é gravado, através da opção de gravação (tecla G) a patir da linha de comando e quando saímos (tecla X) do jogo.

Observação: os ítens que o personagem está vendo aparecem em uma lista continua, mesmo que sejam repetidos. Pretendo na próxima versão otimizar essa leitura. Alguma sugestão?

, , , , , , , , , ,

  1. #1 by bdmstyle on 04/07/2009 - 19:51

    muito bom cara vo continuar acompanhando seu projeto mto bom mesmo

  2. #2 by daniel on 06/07/2009 - 19:11

    @ bdmstyle
    Valeu pela força!
    Assim que eu tiver novidades, seja em conceitos JAVA como no projeto em si, estarei postando. Daqui em diante vou procurar postar mais exemplos do código do projeto.

    Ajude a divulgar. ;)

  3. #3 by bdmstyle on 10/07/2009 - 13:57

    claro sempre divulgando ^^
    seria legal se tu usasse o google code para hospedar o projeto..

  4. #4 by daniel on 10/07/2009 - 22:24

    @ bdmstyle
    Valeu pela dica! Vou dar uma olhada por lá para ver a melhor forma de disponibilizar. Abração!!

  5. #5 by daniel on 15/07/2009 - 13:17

    Concluí mais um item do projeto, mas é apenas conceito. Vejam aqui o post sobre Assert: http://migre.me/3Gxs

    Está bem completinho.

  6. #6 by bdmstyle on 17/07/2009 - 17:29

    ficou legal o artigo testes unitarios realmente sao importantes fico no aguardo da continuaçao do projeto se tu puder me passa o teu skype seria legal t+

  7. #7 by Daniel Accorsi on 17/07/2009 - 23:01

    @ bdmstyle
    Meu Skype é daniel_ciin. Estou on-line o dia todo em modo texto.

    Abraço!

(não será publicado)