terça-feira, 22 de junho de 2010

Novidades do Projeto

Aproveitando o início da fase de testes da versão 0.0, resolvi fazer um "freio de arrumação" no projeto, definir algumas coisas e melhorar outras. Os principais pontos foram:
  • Sistema de Login: Já está funcionando, mas preciso deixar ele mais amigável e incluir um processo de recuperação de senha e inclusão de novos usuários.
  • Sistema de atualização: Para evitar que o usuário tenha que acessar um web-site para descobrir as atualizações do jogo (que deverão ser muitas no início), fazer download, instalar, etc, etc, criei um sistema semi-automático que identifica quando uma atualização está disponível e abre o link automaticamente para o usuário instalar.
  • Mesh Combine: Não pretendia lidar com isso no início, mas depois que fiz o teste de desempenho com combinação de malhas, decidi implantar esse recurso. Agora, todos os props de cenário que compartilham o mesmo material são automaticamente combinados pelo jogo.
  • Asset Bundles: Esse eu não deveria mesmo fazer agora, mas é tarde. Já comecei a adaptar o jogo para colocar os objetos dentro de AssetBundles e realizar o instanciamento de acordo com a partida e com um sistema de Temas que criei que o usuário escolhe. Vai dar trabalho, mas quando estiver funcionando, vai ser o fundamento de um sistema de modding importante para a criação rápida de versões do mesmo gameplay com uma "cara" totalmente diferente.
  • Direção de Arte e personagens: Infelizmente o Bruno e a Juliana estão muito ocupados com os respectivos trabalhos e, por isso, vão levar mais tempo para definir e criar os assets que planejamos. Apesar disso, vou precisar muito em breve de elementos visuais para concluir a versão 1.0 do jogo de forma adequada. Para contornar esse problema, estou bolando uma alternativa para a Direção de Arte que acho que vai agradar. Mas é surpresa!
Bom, esse post serviu mais para eu mostrar que o jogo não está parado não! A meta para a liberação da versão 1.0 no final de agosto continua!

segunda-feira, 14 de junho de 2010

Combinação de Malha

Gostaria de compartilhar os resultados de um teste que fiz neste fim de semana com a combinação de malhas no Unity. Como provavelmente iremos usar apenas 1 luz para o efeito de sombras dinâmicas e vários objetos da cena compartilharão o mesmo material, imaginei que a combinação de malhas resultaria em uma melhora significativa de desempenho.

Para testar isso, montei um cenário específico com os objetos dos cogumelos. Cada grupo de cogumelos possui 3 cogumelos distintos. Cada grupo ficou com aproximadamente 1.500 tris e criei na cena 256 grupos, totalizando 384.000 tris. O cenário ficou assim:


Em seguida fiz 4 testes para esse cenário. Para cada teste eu medi:

a) Frames per Second dentro do editor do Unity.
b) Frames per Second de um build Windows Standalone, 1600x900, qualidade Good.

c) Draw Calls
d) Tempo médio de Render de 1 frame

Os testes foram:

Teste1: Execução normal, sem combinação de malhas.
Teste2: Cada grupo de cogumelos com as malhas dos seus cogumelos individuais combinadas.

Teste3: Os grupos de cogumelos do teste 2 divididos em 2 GameObjects, também com malhas combinadas.
Teste4: Igual ao teste 3, mas com combinação de malhas apenas nos 2 GameObjects "pais".


Os resultados dos testes estão na imagem abaixo:


Os testes foram feitos em um desktop Core i7 com 12G de RAM mas, independentemente da capacidade da minha máquina, ficou evidente o benefício significativo que teremos com a combinação de malhas. É curiosa a pequena melhora em desempenho quando apenas os objetos raíz da hierarquia de cogumelos possuem a combinação de malhas e não os pais de cada grupo de cogumelos.

Assim que puder, farei este mesmo teste no meu Notebook Vaio, Core Duo com 1GB.

quinta-feira, 10 de junho de 2010

Visual (WIP)

Para dar uma pausa na programação e no debugging, decidi trabalhar um pouco o visual do jogo. Na versão 1.0, pretendemos dar uma aparência de jogo de tabuleiro mesmo, com peças simples e inanimadas, mas que possam ser usadas posteriormente para a versão 2.0. Então, recriei o tabuleiro do jogo e a única peça de cenário que temos até o momento: a floresta.

Confira o resultado no webplayer do Unity neste link.
A interface do playe ficou estranha: mantenha pressionada a barra de espaço e mova o mouse para orbitar. Use as setas para translação. Na próxima versão eu deixo ele mais intuitivo!

O screenshot abaixo mostra o tabuleiro montado com as peças do Lava:

Agora preciso voltar à programação e fazer o Sistema de Login, o módulo de criação de partidas e continuar testando a versão beta!

Até o próximo post!

terça-feira, 1 de junho de 2010

Beta!

Conforme planejado, após um mês e meio de programação, a versão 0.0 entrou em Beta. Isso significa que todas as regras do jogo estão implementadas e o gameplay básico está definido.
Neste mês de junho, começaremos o design da interface do jogo, que pode mudar bastante em relação ao que existe até agora e, principalmente, faremos a limpeza de bugs dessa versão.

Além disso definiremos o tema, concepts de personagens e outros aspectos de Direção de Arte. A meta é chegarmos à versão 1.0 no final de agosto com um game visualmente bonito e sem erros. Provavelmente a versão 1.0 ainda não terá os efeitos e animações que pretendemos incluir no jogo. Isso ficará para a versão 2.0.