quinta-feira, 20 de março de 2008

E você reclamando de cálculo?

Sempre gostei de computador e sempre me dei bem em matemática, mesmo que não gostasse de estudar pra isso.
Quando chegou o segundo grau, a hora de decidir um curso para a faculdade, não tinha outro caminha além de informática. No entanto, a minha "revolta" com a matemática me fez escolher cursar Comunicação Social, fiz um período mas não rendeu. Aceitando meu destino, fui cursar Sistemas de Informação.
Dai, tive: Matemática Discreta I, II, Cálculo, Probabilidade...
Por fim, acabei fazendo as pazes com a matemática. Isso por que comecei a entender para que serviam todos aquelas formas, aplicando-as em algo concreto.
Isso não foi para contar o meu relacionamento com a matemática e sim, ilustrar a quem quer lidar com as áreas que envolvem informática, como tem que se dar bem com a matemática.
O motivo por trás deste post é:
A alguns dias estou pesquisando sobre algoritmos de jogo como colisão e movimento e tudo que se encontra, são fórmulas de geometria, trigonometria e física. Aquelas que vimos no segundo grau, quando o professor passava uma fórmula no quadro para descobrir a tangente e pensávamos: "Legal, assim eu sei a tangente, e dai?" ou "O gráfico da equação de 2o grau é uma parábola... minha vida mudou!". Experimente fazer um ponto andar na diagonal sem seno e cosseno. Um tiro de canhão sem usar equação de 2o grau? Ou uma query sem a mínima noção de teoria de conjuntos!
Para quem pretende trabalhar com jogos, o buraco é mais embaixo.
Matemática, geometria, trigonometria e física mecânica de ensino médio precisam ser tão, ou mais, fluentes!
Pesquisando, me deparei com coisas como quadTree, quaternion, e vários outros termos sendo falados tão regularmente nos artigos que me toquei que saber fazer uma integral bem não é mérito nenhum, pelo ao menos para quem quer entrar para a área de produção de games.
Se você pretende trabalhar com games, saiba que matemática deverá ser fluente como português ou inglês. Saber plenamente a matemática, geometria e física de ensino médio e estudar esses conceitos mais avançados são requisitos mínimos para a área, e é exatamente isso que vou fazer daqui pra frente. Matemática no café, geometria no almoço, física no jantar e uma cervejinha mais a noite, afinal, ninguém é de ferro.


terça-feira, 18 de março de 2008

Primeiras experiências

Esse final de semana, uma chuva absurda e eu a pé! Foi a deixa pra começar a estudar o XNA.
Abrindo Visual Studio, criar novo projeto, Xna Windows Game... Abre um dos n textos que peguei na internet e vamos lá!
A primeira parte é entender os métodos da classe principal do jogo, a Game1.
Simplificaram bastante as coisas, uma para carregar conteúdo, outra para carregar grafico, uma para descarregar, um loop de lógica e um loop de impressão. Tudo bem organizado mesmo.
O próprio xna já vem configurado de tal forma que ele mesmo cuida de gerar uma janela, o tipo de coisa que você passa horas fazendo em outras linguagens. Lá basta definir a altura, largura e se é fullscreen, e só! Mais que isso é detalhe. Até ai, ok.
Legal, vamos começar agora... mas por onde?
Provavelmente essa é a parte mais difícil de todas. Por fim, escolhi importar e exibir uma imagem na tela. Depois de algumas horas lendo e pesquisando, consegui e cheguei a conclusão de que é mais idiota que imaginava.
O mais dificil ali é o pontapé inicial, já que não é o tipo de estrutura que está acostumado a ver, principalmente eu que venho de web, onde os programas: começa, executam e terminam em ate 1 ou 2 segundos!
Depois, comecei a me meter a besta lendo as teclas: apertar esc e fechar o jogo, molezinha.
Sendo assim, por que não movimentar o meu desenho com as setinhas do teclado pela tela?
Incrementa o x e o y... Movimento feito!
E se eu aplicasse aceleração no movimento?
Ah, tranqüilo, pega o incremento, multiplica pela aceleração... Aceleração feita!
E nesse ritmo foi: aumento de aceleração, rotação do sprite.
Pronto, ele ja andava, acelerava e parava, e rodava mas ele não fazia uma curva, simplesmente rodava e andava de lado.
Como fazia pra ele andar na diagonal? Já que eu conseguia andar pra cima e pra baixo alterando o Y, esquerda e direita alterando o X, mas diagonal... ai bateu o estalo, momento flashback a aula da tia maricota lá no segundo grau, trigonometria!
Rezando pra São Google por mais uns minutos, tudo clareou: X*cos(angulo) e Y*sin(angulo)!
Perfeito! Num é que funcionava mesmo?!
Fui me empolgando, a chuva não dava trégua e quando vi, já entrava pela madrugada até que a cama começou a exercer uma gravidade e, o que a principio era uma barata (sim, o sprite que eu usava pro teste era uma barata), tornou-se um borrão marrom andando sobre um borrão azul. Bom, era hora de dormir.
Resultado final:

  • Básico de XNA
  • Importação de imagem
  • Leitura de Teclas
  • Movimentação
  • Aceleração
  • Rotação
  • Movimento em diagonal
  • Inércia
  • Desaceleração por atrito
A proxima será debulhar um exemplo que baixei com colisão, plataformas, pulo, gravidade. Ou seja, a base do nosso projeto final.

quarta-feira, 5 de março de 2008

O nome!

Depois de tanto apanhar, arrumamos o maldito nome. Nada como o bom e velho brainstorm (valeu Ota)!
O grande problema era arrumar um nome neutro já que o jogo não possui história, ainda.
O único certo é que será um jogo de luta, então, seguindo essa linha, saiu o nome: Kenpachi.
Aos que conhecem Bleach, qualquer semelhança não é coincidência. Claro que não é uma referencia direta mas sim ao significado. Segue um trecho do texto da Wikipédia sobre ele que explica isso:
"Ele também se deu um nome: Zaraki Kenpachi, sendo Kenpachi um título dado ao guerreiro mais forte, ou seja, o guerreiro mais forte de Zaraki."
Sendo assim, o nome se encaixa bem no contexto do jogo.

A urgência do nome era para fechar o anexo I, que deve ser entregue hoje!
Outra coisa interessante são os notes que Vitor e eu pegamos, que vai adiantar nossa vida em muito, principalmente eu que, trabalhando no rio, fica bem difícil de usar o pc em casa.
Agora com a entrega do anexo I, vai o cronograma. Assim, depois da entrega, comça oficialmente o projeto. Primeira parada: Descrição do projeto!


Para quem não conhece o personagem, texto sobre Zaraki Kenpachi está aqui.