quarta-feira, 24 de junho de 2009

Estou postando uma imagem no fim desta atualizacao para auxiliar o entendimento do post anterior.

Bom, o projeto do planeta foi um sucesso, eu adiqueiri experiencia com renderizacao, calculo vetorial, transformacoes de vetores por matrizes, o kit completo!

Foi entao que meu chefe apareceu com a ideia de fazer um jogo educativo de pequeno-medio porte, totalmente em 3D e atraente.

Pra mim, foi fantastico a oportunidade de fazer algo com uma proporcao que eu soh esperava atingir em alguns anos na area.

Iniciamos o brain storm. Foram escolidos os membros que participariam no projeto, comecando com eu, o rafael xavier, o leonardo hernandes, e futuramente o Hamma (todos os 3 companheiros de trabalho no anglo) como os desenvolvedores do jogo.

A ideia era um jogo de aviao (devido a sua simplicidade de colisao, e a nao-necessidade de animacao) no qual o objetivo dele era formar palavras.

Devo confessar, estava morrendo de medo por nao me sentir capaz de fazer algo dessa dimensao. Apesar de ter feito o projetinho do planeta terra, o passo a frente sempre assusta.

Fica pra proxima a continuacao, mando agora a imagem para auxiliar o post anterior

terça-feira, 23 de junho de 2009

Um ano depois...

Faz um ano que nao comento neste blog, mas a nostalgia me pegou de jeito e decidi retomar as postagens neste blog!

Muita coisa aconteceu desde esse meu primeiro projeto ateh onde me encontro atualmente.
Para dar um preview, neste exato momento sou um game developer na TecToy Digital, desenvolvendo jogos para o novo e primeiro console brasileiro, o Zeebo.

Mas esse era um preview, vou relatar aqui desde o ponto em que parei na postagem do blog.

No projeto do planeta terra, alem da rotação do planeta eu tive a ideia de implementar um zoom, onde a camera sairia de sua posicao inicial, e de uma maneira suave, se aproximaria e seguiria a terra que girava.

A ideia por tras disso nos coloca em um dos aspectos mais importantes da programacao de jogos 3D, os vetores!

Como todos sabem (ou deveriam), um ponto em um plano pode descrever um vetor, sendo este a linha formada entre a origem do plano e a posicao do plano.
Vetores tem algumas propriedades matematica, como soma, multiplicacao escalar, multiplicacao vetorial, etc etc, e com ele podemos fazer com que tais pontos neste espaco se comportem de maneira interessante para um jogo.

Uma das formas é somar um pequeno vetor com a posicao de minha camera, colocando-a cada vez mais proxima ao planeta terra.

Como encontro este vetor? Subtraindo a posicao da camera com a da terra, e normalizando o vetor! Isso me da exatamente um pequenino vetor que aponta diretamente para a terra.
Se a cada loop do jogo, eu adiciono esse vetor (calculado a todo ciclo pois a terra muda de lugar durante a simulacao), eu vou ter uma camera que se aproxima suavemente ao planeta. Basta eu decidir uma distancia minima entre a camera e o planeta para fixa-la uma vez que esta esta proxima o suficiente. =]

Amanha (talvez) eu continue a historia