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

segunda-feira, 16 de junho de 2008

Ok, depois de quase um mes parado neste blog fantasma ( =::[ ) volto a dar noticias!

Como contava, o curso tinha acabado, e vi que havia uma luz ao fim do túnel!

Primeiro projeto:
Uma apresentação que mostrasse a terra girando em volta do sol, para mostrar como são formadas as 4 estações do ano.

Ok, um projeto bem simples, que na verdade, já havia sido implementado em flash! O meu trabalho era transportar ele para XNA utilizando os recursos gráficos que ele oferece.

Utilizando os exemplos que geramos durante o curso, consegui colcar 2 bolinhas texturizadas na tela, girando uma em volta da outra!

Foi ai que comecei a ver os problemas envolvidos na programação de jogos.

Ao girar a terra, eu apenas aplicava a funcao Matrix.CreateRotationZ(angulo).
Isso gira de fato um objeto, e mudando o pivo dele, posso fazer ele descrever um circulo...

Qual o problema disso? Ao girar, ele nao fica orientado corretamente! Observe:



quando deveria ser:




Gastem um tempo imaginando, e vão entender!

Pois bem, agora a funçãozinha já não resolvia mais meu problema!
Solução?

Matemática!!

Utilizando seno e cosseno, eu posso descrever uma circunferência, e simplismente atualizar meu planeta terra sobre essa posição, sem alterar sua orientação.
Agora eu não estava mais rotacionando a terra, eu estava transladando sua posição, e essa translação descrevia uma circunferência =DD

Até a próxima pessoal!

terça-feira, 20 de maio de 2008

Legal! Eu tinha o emprego!

Só tinha um problema!

EU NÃO SABIA NADA DE XNA!!!

No dia seguinte, eu já estava começando o estágio, então resolvi fazer os tutoriais do riemer, que eu já tinha tentado fazer antes, porém com pouco sucesso.

(site http://www.riemers.net )

Então começamos eu e o Rafael a fazer os tutoriais, desde o primeiro!

Nos dois primeiros dias de trabalho, fizemos apenas os tutoriais.
O Fernando não passou nada referente ao trabalho. Achamos que ia ser a melhor forma de gastar o tempo.

No terceiro dia, o Fernando anúnciou que ia trazer um rapaz de São Paulo para passar um treinamento em XNA, e que eu iria participar!

Poxa, caiu do céu pra mim! Um curso de XNA de uma semana!! Era o que eu precisava para perder o medo do 3D de vez!

Bom, terminei a semana com os tutoriais mesmo. O treinamento começaria na próxima.

Passado a semana, descobri que o cara que ia passar o treinamento era o Bruno Evangelista, o mesmo cara que estava na game fest passando o minicurso de efeitos com xna (aquele que perdi metade), e o jogo 3D!

Já tinha visto o trabalho dele, e vi que a escolha do tutor foi boa!

O treinamento foi exelente! O Bruno sabe DEMAIS sobre desenvolvimento de jogos, e tentei aproveitar o maximo que pude.

Ao fim do treinamento, me sentia preparado para o primeiro projeto.

Asta mañana!

segunda-feira, 19 de maio de 2008

Antes de falar sobre o telefonema, gostaria de fazer um pequeno flashback!

No ano em que desenvolvi para o terra parque, 2007, em outubro, eu dei um minicurso de desenvolvimento de jogos!

Foi a maneira que encontrei de contribuir como que o pessoal da faculdade me ajudou no meu início do aprendizado.

Tenho todo o material nos meus emails, e posso passar eles para quem quiser gratuitamente! Envie um email para tota5forever@gmail.com pedindo, e eu mando!

Aqui está o site, espero que ele não saia do ar tão cedo!

http://www4.fct.unesp.br/secompp/minicursos.html

Voltando ao telefonema:

Recebi um dia um telefonema de um rapaz chamado Fernando, do anglo, pedindo para eu ir ve-lô.

Bom, como eu morava ao lado do anglo, pensei "que mal pode fazer?", e fui no mesmo instante que recebi o telefonema!

Chegando lá, fui enviado a uma sala no andar de cima do primeiro prédio. Encontrei o meu atual chefe ^^

Sem eu entender direito o que acontecia, o Fernando falava como se eu já estivesse contratado! Falando sobre projetos que ele tinha com xna, e se eu topava em participar da equipe!

Acabei aceitando, e sai numa mistura de confusão e alegria! Por um lado, não sabia exatamente o que ia fazer, quando começar, e o que precisaria aprender.
Por outro, sabia que tinha conseguido um emprego na área de games! Finalmente conquistei o sonho! O começo do sonho!

Logo depois de digerir isso, veio a parte do medo!

"Será que eu vou ser capaz de corresponder as espectativas?"

Deixei pra me preocupar com o medo depois...afinal, o que eu tinha a perder, não é?

Meu amigo Rafael, aquele que fez junto comigo o trabalho da fila de banco, também foi contratado, no mesmo dia, para fazer o mesmo que eu.

Continuo amanhã!

Abraços a todos!

sábado, 17 de maio de 2008

Voltei depois de uns dias parados!

Como ia contando, eu larguei a mão do terra parque pois vi que tinha rendido o que tinha que render! Aprendi a fazer jogos em java, e isso bastava!

Nas férias de fim de ano, logo após o episódio do terra parque, fui ao game fest, evento voltado a comunidade de desenvolvimento de jogos, focado no XNA. Foi o meu primeiro contato com a ferramenta, antes disso, eu sequer sabia da sua existência!

O evento foi fantástico, e vi que o pessoal não teve muitos recursos para promover o evento...fizeram milagre, foi um sucesso (tirando o coffe break, que foi de morrer...pipoca com refri pior que dolly!).

No evento, participei das palestras de:
-Introdução a ferramenta XNA;
-Programação em multi-cores;
-Desenvolvimento de um jogo 2D, até os 10 primeiros minutos, quando percebi que não havia novidades ai;
-Efeitos com shaders em xna, os minutos finais, pois era junto com o desenvolvimento de jogo 2D, e acabei perdendo o mais importante!
-Programação de um jogo 3D;

Bom...obviamente não sai de lá expert em xna! Mas foi o suficiente para me convencer a fazer o Simubank (jogo que pretendia fazer para o TCC da faculdade, que seria a versão completa e 3D da fila de banco do Ronaldo), e contatei o meu amigo de infância Samuel, que decidiu seguir a parte artistica de modelagem do mundo dos jogos, para fazer a modelagem do meu jogo!

Ok, eu já sabia onde desenvolver, já tinha os recursos, já tinha até um modelador!

Faltava saber fazer jogos 3D!!!!!!!!

Foi ai que tomei fôlego, baixei o XNA em casa, e......................... passei o resto das férias sem mexer mais nisso!

Ao fim das férias, eu não sabia nada ainda de programação 3D (além do intuitivo), mas estava disposto a aprender na volta as aulas!

A essa altura, eu já havia terminado o meu ante-projeto para o TCC, e avisado o meu professor que iria desenvolver tudo em XNA. Já todos da minha sala sabiam da minha escolha.

Desse anúncio todo, um telefonema surgiu!

E conto isso amanhã!

quarta-feira, 14 de maio de 2008

ok, esqueci de postar ontem! Mas hoje estou devolta!

O terra parque foi minha chance de aprender a programar jogos em java forçadamente! Mas como vi que seria muito trabalho para uma pessoa só, resolvi convidar o Fábio para visitar o lugar, e conversar com o responsável sobre o trabalho.

Entramos no carro, e depois de 15 minutos de estrada, chegamos.

Coêncidentemente, o rapaz também se chamava Fábio, e nos disse que pretendia fazer quatro jogos de auditório:
-Um quiz;
-Um jogo onde aos poucos vão se revelando pequenas partes da face de alguém famoso, e quem adivinhar primeiro ganha;
-Um jogo da velha para 4 jogadores, onde para colocar uma bola da cor em uma casa da velha, era necessário acertar uma pergunta;
-Uma apresentação do estilo da entrada do BBB, onde vários candidatos tinham suas fotos na tela, e os eliminados eram apontados conforme o desenrolar da brincadeira;

Tempo para desenvolver tudo -> 1 mês!!!!

Pois é, para quem desenvolve, sabe que deixar um programa rodando redondinho em 1 mês, é difícil..quem dirá 4!!!

Infelizmente, não tenho as fotos dos jogos aqui, mas a parte gráfica não era lá grande coisa.

Passamos o mês desenvolvendo, e o que melhor aprendi nisso tudo, foi como utilizar 2 monitores em um jogo, por que lá, o jogo própriamente dito foi mostrado no projetor, e os controles do jogo ficavam na tela do computador de quem o controlava (imaginem o projetor como um segundo monitor).

Passado um mês, os jogos estávam cheios de bugs, porém, funcionais!
O Fábio do terra parque então pediu para que eu e o Fábio participassemos do evento para controlar os jogos, e aceitamos.

O evento era um curso sobre entretenimento em parques de esportes, e as atividades eram das mais variadas. A noite, era a vez das atividades multimedia (os jogos), e durante o dia, eu e o Fábio corrigiamos os bugs para que a noite, os jogos funcionassem!

O curso todo foi divertido pra burro! E eu trabalhei como um camêlo para ganharmos apenas 250 reais cada um...uma mixaria pelo que fizemos...mas o objetivo era aprender jogos em java, e não dinheiro!

Me diverti tanto trabalhando com eles, que pedi um emprego na monitoria! O Fabio do terra parque disse que sim, e que nas próximas semanas me chamaria.

Foi ai que vi a falta de organização do lugar...passou uma semana...nada...passaram-se duas....nada....três...quatro...2 meses...3 meses...
No começo do ano de 2008, fui chamado para arrumar bugs nos jogos, sendo que o próximo evento aconteceria a 2 dias do aviso!

Pedi o CD que deixei com os jogos do evento, todos com a maioria dos bugs corrigidos, e adivinhem...Eles perderam!

DAM IT! Poxa!! Que falta de responsabilidade....

Mas como bom samaritano...decidi corrigir tudo, e instalar lá.

Gerei um outro CD, e entreguei nas mãos do plock (um semi gerente do terra parque, abaixo do fabinho, mas acima dos outros monitores).

Nesse dia, me chamaram para o treinamento em um dia próximo dali.

Fui ao treinamento, e ninguém estava lá para me treinar...típico...Preenchi uma folha, e fui embora...

Dali, nunca mais me chamaram pra treinamento, nem para trabalho nenhum como monitor...me chamavam apenas algumas veses para correção de bugs, mas na terceira chamada (realizada esses dias), não pude mais comparecer, primeiro por que estava fazendo de graça, e exploração tem limites.
Segundo, por que nessa terceira chamada, estava já aqui no anglo, e essa história conto amanhã.

Abraços =D