Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Ricardo 3D   Brasil - BA
ardiarqui   Argentina Buenos Aires - AC
Sandro Medeiros   Santa Isabel - SP - AC
rafaelboliver   Goiânia - AC
Fabiano C S   São Caetano do Sul - SP

Portfólios Ver Mais

carlacolombo   São José do Rio Preto - AC
juniorturino   São Paulo - SP
deluca   Rio de Janeiro-RJ - AC
alegrafiti   varginha - MG

Tutoriais - Making ofs

Making of Sunag Engine e Jogo do Patrimônio Cultural

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

sunag Comentou em 18/05/2010 00:21 Ver comentário
Juliano Kloss Comentou em 17/05/2010 22:37 Ver comentário
eltonbinda Comentou em 17/05/2010 09:09 Ver comentário
heriksson Comentou em 13/05/2010 21:03 Ver comentário
sunag Comentou em 13/05/2010 18:41 Ver comentário
alxgames Comentou em 13/05/2010 11:55 Ver comentário
designerenato Comentou em 13/05/2010 11:46 Ver comentário
Libanio Comentou em 13/05/2010 10:11 Ver comentário
jpnuclear Comentou em 13/05/2010 09:58 Ver comentário
marceloalmeidabr Comentou em 13/05/2010 08:37 Ver comentário

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 .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.