quinta-feira, 8 de julho de 2010

Nova Introdução

Como havia comentado anteriormente, substituí a introdução do jogo por uma com a funcionalidade praticamente final. Apesar do jogo ainda não ter nenhuma direção de arte deifnida, já possui as principais funções para deixá-lo "jogável" por qualquer pessoa. Ainda preciso terminar alguns detalhes e o mais importante, ligar esta nova introdução com a partida propriamente dita.

Além disso, preciso terminar de implementar a funcionalidade de Temas. Quando estiver pronto vai ser muito interessante. Aguradem!

Ah, a Direção de Arte está quase saindo. Espero que no mês que vem consiga criar todos os assets visuais do jogo!

Nova Introdução from Almiro Carvalho Junior on Vimeo.

segunda-feira, 5 de julho de 2010

Unity3D versão 3.0 beta2

Não dá para não comentar. Quem acompanha a evolução da Unity3d está de boca aberta com a versão 3.0, que ainda vai ser liberada oficialmente nas próximas semanas. A seguir vão alguns teasers:

Cena do Windmill. Animado então é de tirar o fôlego!

O link seguinte é de um vídeo com um exemplo do sistema de cloth:

http://www.vimeo.com/12833414

E este outro link é de uma página do fórum da Unity com um post de um teste com Ambient Occlusion e o novo sistema de lightmapping com Global Illumination e Final Gather:
http://forum.unity3d.com/viewtopic.php?t=55897&postdays=0&postorder=asc&start=15

Já fez a pré-order do seu Unity3.0?

sábado, 3 de julho de 2010

Transplante

Foi exatamente isso que fiz nessas últimas semanas. Mais cedo ou mais tarde eu ia mesmo ter que planejar e implementar a interface do início do jogo, desde o startup até o carregamento de uma partida específica. Então eu arranquei toda a introdução que havia feito e criei uma nova. Ela ainda não está terminada, mas já parece a introdução de um jogo. Ela apresenta, em ordem:
- Um janela perguntando se o usuário quer atualizar o jogo. Ele detecta isso automaticamente se houver conexão com a Internet.
- Uma ou mais sequências de imagens ou vídeos com as famosas apresentações dos desenvolvedores.
- O Menu Principal. Ele não existia antes e eu decidi criá-lo para o jogador optar pelo jogo singleplayer (quando houver), multiplayer, escolher opções, ver os créditos, etc.
- O Painel de Controle. Aí sim o jogo chama as rotinas originais, só que o Painel de Controle está diferente, com uma opção para o jogador mudar o Tema da partida.
- Janelas para login, cadastro de um novo usuário, recuperação de senha e mudança de senha. Essas funções são fundamentais para a liberação da versão beta do jogo para o público.

A criação do Tema da partida foi uma decisão de impulso, mas que tem me empolgado bastante. No próximo post eu explico melhor e adiciono um vídeo sobre tudo isso!

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.