sábado, 27 de agosto de 2011

Update do segundo semestre[2]

Bom, com as recentes atribulações da greve e novos trabalhos a serem feitos, deixei, por minha parte, o projeto de lado por um tempo, por isso semana passada e retrasada não houve sequer um update.

Esse update também não é lá grande coisa.

Movimentação diagonal foi implementada porem na hora de redesenhar o mapa, com a nova logica de movimentar a imagem ja existente e apenas renderizar uma linha/coluna, há bugs cujas origens ainda me são desconhecidas. Além disso, por algum motivo, as vezes o personagem andar rapido demais, como se o Thread.sleep() não estivesse ocorrendo.

Alem disso, estou reorganizando o projeto - criei uma classe voltada a chat box e uma voltada a cuidar de todos os inputs (e com isso aproveitei e adicionei a função "drag" da scrollbar da chat box)

Verei se em um futuro próximo implemento a função de minimizar a chatbox e arrasta-la pela tela.

Mas no momento, quero me focar em arrumar esses erros de movimentação e renderização do mapa. Outra coisa que gostaria é implementar um sistema de prioridades de sprites, para permitir que existam sprites passáveis, porem que ficam por cima do char (vide copa de arvores, paredes altas e afins.

Fora isso mexi bem pouco com gwt, o suficiente para me frustrar e voltar para o aplicativo desktop (pois não há bufferedimage em gwt até onde vi e isso atrapalha bastante).

Bom, creio que seja isso apenas. Não foi um grande update, quando muito apenas revelou que ainda falta uma parcela consideravel de coisas só com relação a minha parte.

Deixemos aqui, então, uma TODO list com tudo que ainda falta (não apenas minha parte) que é imprescindível:
-Arrumar movimentação em geral (incluindo renderização do mapa)
-Criar um servidor e fazer o programa funcionar com conexão remota
-Implementar todo sistema de combate
-Fazer uma AI para inimigos*
-Implementar multiplayer
-Criar mais gráficos (terreno/inimigos/etc)

De cabeça, é isso que me vem no momento.

*Tenho a ideia de o que fazer, mas não como fazer, se tiverem alguma dica ou links (ou até mesmo código pronto - de graça até injeção na testa). Minha ideia é fazer um path que ligue
o inimigo ao player alvo que é atualizado conforme o player se move. O problema é como exatamente faze-lo. Ao menos, uma vez feito (se conseguirmos) podemos utilizar a logica e implementar movimentação via mouse com mais precisão do que apenas uma linha reta.


Sem mais, Victor Lucki.


sábado, 6 de agosto de 2011

Update do segundo semestre[1]

Cá estou, novamente, a trazer as novidades pelas quais sou responsável.

Mais uma vez utilizei uma dica do professor Ivan e otimizei o tiling para que a parte visível do mapa não mais seja redesenhada inteiramente a cada repaint, mas sim quando o personagem se locomover.

No entanto, o consumo de processamento continuava a o mesmo quando o personagem estava em movimento. Tentei otimizar mais um pouco o método e a solução que obtive foi: redesenhar apenas uma linha ou coluna - como o personagem se move apenas 1 tile por vez, necessitamos mover um mapa apenas 1 tile, então reaproveitei os demais tiles que já haviam sido desenhados para tentar poupar processamento.

Estranhamente, o uso de processamento não parece ter diminuído mesmo com a solução supracitada. Teremos então de testar o programa nos computadores da escola, tendo em vista que a diferença na capacidade de processamento de meu computador e os de lá é bem notável.

Caso ainda tenhamos problemas, tentaremos desenhar o mapa inteiro de uma vez só e exibir apenas uma fração dele na tela (a qual iria mudando conforme o personagem se move).

Na pior das hipóteses (ou seja, se o uso de processamento for grande de qualquer jeito), veremos qual dos métodos foi o mais eficaz e utilizaremos o mesmo.

Sem mais, Victor Lucki.