segunda-feira, abril 30

Atualização Semanal

Trago agora mais uma atualização semanal.

Desta vez será algo pequeno, tendo em vista que esta semana tivemos algumas provas e trabalhos a serem entregues.

No jogo em si, todos os menus estão completos e plenamente funcionais, antes do planejado. Dessa forma, compensamos os atraso na parte do MapMaker, cuja parte das entidades ainda não está finalizada. O próximo passo é iniciar o desenvolvimento de um multiplayer simples: dois ou mais jogadores conseguirem entrar em uma mesma sala e andarem juntos.

No MapMaker, como foi citado, ainda há trabalho a ser feito na parte de entidades. Porém não é como se nada tivesse sido feito. Foram criadas classes para a criação de entidades (inimigos, boss, baús), um bug na hora de salvar os mapas foi corrigido, um PopupMenu (aqueles menus que aparecem quando se clica com o botão direito do mouse) foi adicionado a seleção dos mapas para facilitar acessibilidade. Uma parte de alteração de propriedades de um mapa (por hora, só o nome, futuramente, talvez as dimensões) está sendo adicionada. Correção de diversos pequenos bugs (difíceis de se achar...) no SpinButton foram feitas e comentários para facilitar o entendimento do código foram adicionados em certas classes.

domingo, abril 22

Atualização semanal


Sobre as atualizações semanais:
-MapMaker:
A tab Entities já foi criada, na qual serão colocadas informações como o local em que os inimigos irão surgir, os chefes e baús.
Alguns erros foram corrigidos, entre eles um problema no botão salvar, que não salvava as alterações feitas em um mapa.
Algumas otimizações gerais no código foram e ainda estão sendo feitas para consumir menos memória no computador.
-O jogo em si:
O menu de controle está quase pronto, quando finalizado daremos inicio a criação do multiplayer.
-Mapas:
A criação do primeiro mapa está quase finalizada, atrasada devido ao erro do salvar no MapMaker.
-Gráficos em geral:
O maior problema encontrado é a falta de sprites prontos na diagonal ou até mesmo um modelo de personagem "pelado" andando na diagonal para podermos trabalhar em cima.

domingo, abril 15

Atualização Semanal

Trago a vocês as novidades da semana.

No lado do MapMaker, a layer de entidades está se aproximando de sua conclusão, sendo o que permite ao criador do mapas inserir coisas como baús com itens e áreas em que inimigos aparecerão. Também foi melhorado o mini-mapa que representa mais fielmente o mapa real, de acordo com as dimensões deste.

Já foi iniciada a criação dos mapas para o jogo, por enquanto apenas o terreno em geral.

No lado do jogo, os menus já estão próximos de sua finalização, sendo que o menu de opções já está plenamente funcional, aplicando opções escolhidas tais como resolução, modo fullscreen e linguagem, além de salvá-las e carregá-las de um arquivo de propriedades. Até o próximo Domingo espera-se finalizar os menus e iniciar-se o trabalho no jogo em si, primeiro pela parte Multiplayer.

Por hoje é só, na próxima semana traremos mais novidades.

Grupo PE

domingo, abril 8

Atualização Semanal

Como dito semana passada, o foco desta semana foi a finalização do autotile para o MapMaker.

Mas, o que é autotile?

Um autotile na realidade representa um conjunto de tiles. 47, para ser preciso. Como o nome insinua, é um tile "automático", ou seja, quando é utilizado, diferentemente de tiles normais, não há necessidade de escolher manualmente qual tile será usado em certa parte, basta ir desenhando e os tiles desenhados se ajustam de acordo. Nas imagens a seguir, podemos observar melhor o que ocorre.

Em um novo mapa, inicio o uso do autotile

Após o clique inicial, decido expandir a grama para a esquerda.

Novamente, expando a grama para a esquerda

Decido então expandir um pouco para baixo.

Por fim, na outra linha, retorno um pouco à direita


Como pode-se notar, os tiles muda dinamica e automaticamente conforme o usuário desenha.

Como o programa cria um autotile?

Observe a seguinte imagem:


Isso é uma imagem composta por 12 tiles que representam uma "grama crescida" por assim dizer. É algo útil na criação de florestas e afins, para dar um ar mais natural ao lugar e mostrar que não há (ou quase não há) ninguém por ali e a grama cresceu bastante.

Mas, enfim, esta imagem por si só não faz uma floresta, logo não faz sentido usá-la como tileset para um mapa. Poderíamos simplesmente incorporá-la a um tileset existente, porem, os 12 tiles que constituem essa imagem não são suficientes para se desenhar todos o tipos possíveis de formas. O que o programa faz, então, é criar 47 tiles a partir dessa imagem ao invés de apenas 12, gerando um autotile.

Para tanto, a imagem é dividida em 4 regiões.

Cada região, então, é novamente dividida em pequenas partes de 16x16 pixels:

Antes de prosseguir com a explicação, cabe uma observação:
Vemos que a região B é, basicamente, inútil. Como já citei, estou baseando-me fortemente no RPGMaker XP para a criação deste programa e o autotile não é exceção. Se bem me lembro, alguns autotiles possuem algo ocupando a região B, mas ainda não compreendi qual sua finalidade.

As principais regiões são as duas últimas: C e D, pois 46 dos 47 tiles gerados envolvem partes provindas delas.

Como funciona o autotiling?

Não fui capaz de observa um padrão durante a inicialização de cada um dos 47 tiles, por tanto eles são criados um a um no código, sem uso de loop algum. Talvez isso possa ser otimizado. Mas mesmo que um padrão seja detectado, teremos de manter em mente que cada um desses tiles possui um ID específico.

Para detectar qual o tile que deve ser desenhado, decidimos nos utilizar do sistema binário devido a sua propriedade onde não há repetição de resultado algum não importa quais somas sejam feitas. Dessa forma, atribuímos valores a cada um dos tiles adjacentes ao clicado. Sempre que um autotile existir em um tile adjacente, seu valor é somado a uma variável e o resultado final é o ID que deve ser utilizado. A imagem a seguir expõe os valores:

Primeiramente checamos os lados padrões (cima, baixo, esquerda, direita) e depois checamos as diagonais. Dessa forma, evitamos que certas posições sejam ignoradas por terem sido checadas precocemente. Uma vez definido o ID, o programa então faz uma checagem de todos os tiles adjacentes e manda todos aqueles que forem autotile se atualizarem.

Bom, acho que já falei demais e talvez quase nada do que tenha dito aqui faça sentido, mas, enfim, estou apenas informando o que fiz. Se parece complicado, não se assuste, porque é.

Sem mais, Victor Lucki.


domingo, abril 1

Atualização Semanal

Durante essa semana tivemos como maior objetivo o aperfeiçoamento do Map Maker. Dessa maneira foi necessária uma revisão no código o que acarretou na correção de bugs que estavam no programa. Além disso, já no jogo em si, o controle da tela que é mostrado está agora centralizado, ao invés de disperso entre as várias classes.

Agora, na primeira semana do mês de Abril, teremos como grande objetivo a finalização da funcionalidade Auto Tile que faz parte do Map Maker, este que, quando for terminado será explicado com mais detalhes, possivelmente na atualização do próximo domingo.

Atenciosamente, Grupo Prime Evils