sexta-feira, novembro 30

PTSD

Olá a todos!
Ontem (29/11/2012) o grupo PrimeEvils apresentou seu projeto aos professores Ivan e Renato. No momento, os integrantes estão se esforçando para fazer os ajustes sugeridos na documentação.
Agora que o desenvolvimento em si está parado, apresento-lhes alguns gráficos, números e informações interessantes sobre o projeto:

Total de linhas de código (ignorando html e documentos): 108814
Total de mudanças nos commits: 5435




 E por hoje é só.

domingo, novembro 25

Atualização

Olá.
Lembro-me de ter dito, na semana passada, que aquela seria a última atualização semanal antes da entrega do projeto. O projeto foi entregue em sua versão inicial, mas isso não significa que paramos de trabalhar.
Nos últimos dias, focamos na correção de problemas e adição de algumas características do jogo que antes haviam sido descartadas.
Sem mais delongas, eis o que foi feito pelos membros nessa semana:

Ogawa:
Até o dia 22/11 (entrega):
- Deu ataques a todos os mobs.
- Tornou possível colocar itens na barra de habilidades, fez com que itens na barra de habilidades tivessem sua quantidade mostrada, fez com que itens na barra quando utilizados descontassem a quantidade do inventário também e fez com que itens na barra fossem removidos quando acabassem.
- Fez com que o jogo mostrasse o dano tomado pelo jogador também. Quando o seu personagem toma dano ele é mostrado em vermelho, quando inimigos tomam dano ele é mostrado em branco.
Entre dia 23/11 e 25/11 (hoje):
- Adicionou o modo PvP (Player vs Player ou Jogador contra Jogador) ao multiplayer. Para acessá-lo, basta criar uma sala no modo PvP. Neste modo, você batalha contra até outros três jogadores em um mapa pequeno, e o personagem não é deletado quando morre.
- Alterou o modo como os itens são derrubados por monstros de modo que as chances de alguns itens aparecerem se alterem de acordo com a situação do personagem jogando. Por exemplo, se a vida do personagem está baixa poções de vida aparecem com maior frequência.
- Alterou o comportamento de chefes, de forma que quando eles atingem certos níveis de vida (50%, 25% e 12.5%) eles causem cada vez mais dano, e se movam mais rapidamente.
- Arrumou um problema no multiplayer com habilidades algumas vezes não sendo utilizadas corretamente.
- Alterou as sprites da maioria dos monstros de forma que seus ataques não acertem apenas ar.
- Melhorou a comparação de anéis nas tooltip de itens, agora o jogo sempre compara o anel a ser equipado com o anel mais fraco equipado, ao invés de sempre comparar com o anel do primeiro espaço.
- Adicionou músicas diferentes para o modo PvP.
- Arrumou um problema que fazia com que nomes dos usuários e danos tomados "pulassem" toda vez que o usuário utilizasse uma habilidade.

Lucius:
Até o dia 22/11 (entrega):
- Adicionou algumas habilidades ao jogo, incluindo habilidades de longa distância;
- Adicionou mais informação às tooltips de habilidades;
- Alterou o drag de itens do inventário para que ficasse igual ao drag de habilidades.
Entre dia 23/11 e 25/11 (hoje):
- Arrumou problemas que ocorriam quando tentando equipar e desequipar itens.

Felipe:
- Testes.

Ricardo:
- Testes.

sábado, novembro 17

Atualização Semanal

Sejam bem-vindos à última atualização semanal antes da entrega do projeto. A meros cinco dias do prazo final, é de se esperar que tudo esteja pronto, ou bem perto disso.
Felizmente esse é o caso para nós, que temos como única pendência a criação de mais habilidades para os personagens e monstros, um trabalho braçal que será terminado a tempo.

Enfim, vamos ao que foi feito pelos membros na última semana:

Ogawa:
- Fez com que todos os efeitos de itens funcionassem adequadamente;
- Adicionou todos os 370 itens do jogo, e os 40 mobs, além de determinar as chances de cada item ser derrubado por cada mob e as posições dos mobs nos mapas;
- Implementou as restrições de classe para uso de equipamentos determinados;
- Adicionou tratamento de dano no modo multiplayer;
- Alterou a progressão de experiência para saltos menos bruscos de dificuldade;
- Fez com que o jogo salve o progresso do usuário no último mapa, em que monstros ficam mais fortes a cada vez que são derrotados. Desse modo, não é mais possível para o usuário sair do jogo e voltar com os monstros novamente fracos;
- Arrumou o dano causado pelos personagens, que anteriormente só tinha seu fator aleatório recalculado quando atributos mudavam e não a cada ataque. Para refletir o fator aleatório do dano, foi alterado o mostrador de dano na janela de status do personagem, que agora indica uma faixa de dano possível;
- Alterou a fórmula de redução de dano tomado (defesa) para que dependa mais da vitalidade;
- Melhorou as tooltips de itens para que mostrassem mais informações sobre seus efeitos, quais classes podem usar o item e alterou a comparação de atributos de equipamentos para que comparações sejam feitas corretamente. Por exemplo, anteriormente se um personagem tinha um total de 10 de defesa por todos os seus equipamentos e visse uma tooltip de um equipamento para a cabeça de 6 para defesa, o jogo informaria que o jogador perderia 4 de defesa (10 - 6) mesmo se ele não tivesse nada equipado no espaço para cabeça. Agora o jogo compara o equipamento com o seu devido lugar, e informaria ao usuário que ele ganharia 6 de defesa, no exemplo;
- Arrumou um problema que fazia com que o minimapa fosse desenhado erroneamente em mapas maiores que 128x128 tiles;
- Arrumou um problema que causava erros ao tentar desequipar itens com um duplo click;
- Eliminou a possibilidade do jogador gerar um espaço de inventário infinito equipando e desequipando itens;
- Revisou toda a documentação necessária.

Lucius:
- Criou um InputHandler separado para a interface de usuário, procurando evitar que comandos do jogador passem despercebidos pelo jogo;
- Criou a árvore de habilidades e iniciou a adição de habilidades ao jogo.

Felipe:
- Finalizou os manuais de usuário do jogo e do MapMaker.

Ricardo:
- Finalizou todos os sprites de personagem.

domingo, novembro 11

Atualização Semanal

Vamos direto ao assunto. Segue o que foi realizado desde a última postagem:

Ogawa:
- Adicionados sons para quando os inimigos são atingidos;
- Dano tomado por inimigos agora é mostrado acima de suas cabeças;
- Adicionada uma barra de vida para os inimigos que aparece quando o jogador ataca um. Ela mostra a vida do inimigo e seu nome;
- O personagem agora fala que não tem MP o suficiente quando o jogador tenta utilizar uma habilidade sem ter MP o suficiente;
- Arrumado um problema que fazia com que personagens não fossem salvos automaticamente quando fechando o jogo;
- Selecionados os 396 itens que estarão presentes no jogo, e iniciada a adição deles nos mapas.

Felipe/Mano:
- Atualizado o manual de usuário do jogo.

Ricardo:
- Finalizado o cabelo do Archer;
- Criados os olhos e cabelos do Wizard.

Lucius/Victor/Eu:
- Implementado sistema de dia e noite;
- Adicionada a possibilidade de se colocar itens na barra de habilidades e utilizá-lo por lá;
- Adicionado tempo de espera em itens para evitar que os mesmos sejam utilizados rápido demais;
- Adicionado tempo de uso para habilidades - habilidades que demoram mais para serem utilizadas deixam a personagem vulnerável por mais tempo e a habilidade pode ser cancelada caso a personagem sofra um ataque antes de utilizá-la;
- Adicionadas informações gerais às habilidades (nome, descrição, custo de mana);
- Criada base para os ícones de habilidades;
- Adicionadas tooltips para a barra de habilidades;
- Criada a classe PlayableCharacter e refatorada a classe Character de modo a evitar que a classe Enemy herde atributos e métodos que nunca utilizará (exclusivos dos jogadores);
- Arrumado erro no posicionamento de animações quando a personagem se encontrava próxima as bordas do mapa.

domingo, novembro 4

Atualização Semanal

Trago a todos o que foi feito na última semana.

Ogawa:
- Alterou a música da tela de fim de jogo para uma mais apropriada.
- Adicionou a função da hotkey de mostrar os nomes dos itens, que quando ativada faz com que o jogo mostre os nomes dos itens caídos no chão acima de suas imagens.
- Organizou o código de todas as telas, diminuindo repetição (por exemplo, o desenho das caixas de diálogo que era repetido em cada tela foi externado), e facilitando o entendimento.
- Escreveu javadoc para boa parte do projeto (Servidor, Shared e a parte de telas do jogo).
- Distribuiu algumas funções da ScreenControl para novos managers (ConnectionManager, DatabaseManager e SoundManager), para diminuir a concentração de funções da classe.
- Arrumou um problema que fazia com que a altura do diálogo de opções fosse estranha em algumas telas.
- Arrumou um problema que fazia com que os itens no chão não desaparecessem se o jogador saísse do jogo e depois entrasse novamente.

Lucius:
- Criou uma classe para o mini mapa;
- Iniciou implementação da barra de habilidades (por enquanto mostra apenas a habilidade primária.

Felipe:
- Avançou no manual de usuário;
- Corrigiu algumas traduções do inglês para o português.

Ricardo:
- Continuou trabalho nos cabelos dos sprites.