Olá Pessoal.
Em 2009 foi a época que mais elaboramos projetos a serviços de outras empresas, embora atualmente nós estamos focados nos projetos próprios, lembrei de algo interessante para a comunidade, a Sunag Engine para o XNA, e o Jogo do Património Cultural para PC.
Making-off:
1. Shader
O Jogo do Património Cultura foi totalmente desenvolvida aqui na Sunag, desde suas trilhas sonoras a seus algoritmos de colisão, utilizamos Pixel e Vertex Shader 2.0, trabalhamos com uma fusão do ShaderFx com nossos próprios algoritmos de Shader para a composição matemática visual do game.
(Conheci aqui mesmo na TrêsD1 o ShaderFx, em destaque na pagina inicial)
2. Modelagem e Animação
Embora a animação seja um dos fatores mais importantes do jogo, e nem sempre é tão difícil, como previsto, foi um tanto complicado a adaptação com o XNA. Utilizamos o 3Ds Max para a animação e modelagem, e para exportação usamos o plug-in Pandasofts Directx Exporter, que exporta para o formato .X, que por ultimo passou pela biblioteca animação XNAmation criado por Bruno Evangelista, disponível para download no site dele http://www.brunoevangelista.com/
3. Algoritmos
Muitos de nossos algoritmos criado nos outros games foi reaproveitado, como sempre contando com a famosa equação de interpolação:
X += ((Y - X) * T) * P;
Onde X é o posição posição atual, Y a posição que você quer que ele vai, T o TimeStep do jogo (Que nada mais é que a diferença de tempo de um quadro para o outro) e o P que serial o tempo de propagação em milisegundos.
Como tudo isso você tem um curvatura exponencial de suavização de movimento, muito usado nos jogos profissionais. Mais um exemplo;
(Vector3)
Camera.Position += ((Pos - Camera.Position) * TimeStep) * 10.0f;
A Camera.Position vai estar nas coordenadas da variável Pos em um tempo de 10 milisegundos.
4. Colisão
Uma etapa muito complicada também, mais complicado pelo fato de elaborar a engine de colisão são fatores que prende você muitas horas na frente do mesmo projeto se você não estiver com os algorítimos na mão.
No nosso caso não foi muito diferente, tivemos que elaborar boa parte dos cálculos e colisão, até a presença de um físico foi contratada por nós para podemos entender melhor a analogia e fazer algo coerente e sem bugs.
A metodologia de colisão é estática, e pode ser usado também para optimização do render, o método foi a Octree, algorítimo de optimização, embora agente tenha criado nosso próprio implemento, essa tecnologia já é bem conhecida no mundo dos games.
O funcionamento dela é bem simples, ela cria um BoundingBox, caso tenha alguma vértice dentro dessa BoundingBox ela criara outras BoundingBox dentro da mesma, seguindo uma função recursiva, baseado em um limite de escala, você não pode deixar a BoudingBox muito pequena, ou com pouco vértices implementas, se não você não irar ganhar no desempenho, por isso a sempre a necessidade de trabalhar com escala no game, é recomendado o tamanho mínimo que uma BoundingBox pode chegar, seja pelo menos o tamanho do personagem do principal.
Nunca se esqueçam, use apenas os metodos BSP ou Octree na ContentPipeline (O pré-processador do Visual Studio (XNA)) se for fazer em tempo de execução vai demorar muito para carregar o jogo.
Para saber mais sobre acesse:
http://en.wikipedia.org/wiki/Octree
5. Colisão/Mouse
Como o Jogo do Patrimônio é um RPG Multiplayer, é obvio que precisaríamos implementar o sistema de colisão pela projeção do mouse diante a projeção angular da câmera.
O método implementado foi o seguinte:
Agora que já temos os BoundingBox dos objetos projetados logo na explicação acima, o raio do mouse (MouseRay) vai buscar cada detectar as colisões com as BoundingBox dos objetos, e depois vai analisar em qual Octree ele está implementado, para só depois disso vereficar a colisão com triangulo, e finalmente retornar o vetor de intercessão.
Parece complicado, mais é um dos métodos mais preciso e usado de colisão do mundo dos games.
6. Render/Otimização
Um dos meios mais práticos para esse game, e digo em geral, para otimização de render é a tecnica BoundingFrustum.
Que nada mais é que a projeção matemática criada pelos dados da câmera, com isso você pode criar conexões com os BoundingBox , como explicado acima, e renderizar apenas uma parte do cenário, a qual a câmera esta enxergando, evitando o processamento de modelos que estão fora do frustrum ou do campo de visão da câmera.
Sunag Engine
Estou liberando source da engine, porem, apenas para fins acadêmicos, não existe nada que impeça o uso para fins profissionais, mais por falta de tempo não posso elaborar nada adequado explicando detalhadamente o processo, contando apenas com a criatividade de vocês acharem os melhores caminhos para os algorítimos implementados nessa engine.
Sunag Entertainment:
http://www.sunag.com.br/
http://www.sunag.com.br/labs/
Demo Reel da Sunag 2009, contem vídeo do Jogo do Patrimonio Cultural:
http://www.youtube.com/user/sunagbrasil#p/a/u/1/lyIZC10k74M
Jogo do Patrimonio Cultural: (Apenas para Windows XP)
Parte 1: http://rapidshare.com/files/385170048/patrimonio_cultural_1.0.part1.rar.html
Parte 2: http://rapidshare.com/files/385177795/patrimonio_cultural_1.0.part2.rar.html
Sunag Engine 1.0-source:
http://www.sunag.com.br/downloads/sunagxnaengine_1.0_publicsource.rar
Nóticias do Jogo no Paraná-Online:
http://www.parana-online.com.br/editoria/almanaque/news/256075/?noticia=LAPA+SERA+PALCO+DO+JOGO+DO+PATRIMONIO+CULTURAL
--
Nós só criamos limites para poder vencer a nós mesmos um dia. (Jean Carlo Deconto)
Abraço a todos.
Faça o login para poder comentar
VOCÊ TAMBÉM PODE SE INTERESSAR POR:
Usuários conectados
Total de mensagens publicadas pelos membros da comunidade: 710658.
Total de membros registrados: 138136
Últimos membros registrados: JamilyNepo20, nanoflex, monsterxlvolgorde, goldsalty, Lakorewikw, paraxan, AlvionaKapselnPreisRezension, Yasmeen026 .
Usuário(s) on-line na última hora:
1476, sendo 16 membro(s) e 1460 visitante(s).
Membro(s) on-line na última hora: Gabriel.C, Augusto Peixoto, tsmodelagem3d, Nuno, Carla Franco, Roberto Movanni, Thiago Couto, Luis Antonio, Paulo Rodrigues Lima, AlexTerra, Duda, Pierrejr78, Bruno, Ronaldo, Frederico Wagner N. R., dallest91.
Legenda: Administrador, Especial, Moderador, Parceiro .