Programando jogos com o XNA (com fotos)


Página 1 de 2    1  2 
08-07-2007 por Fergo
Programando jogos com o XNA (com fotos)
Boa noite meus caros,

Criei este tópico para publicar mais um dos meus tutoriais, que acabo de finalizar. Desta vez é sobre a programação de jogos utilizando o Microsoft XNA ( antigo Managed DirectX ). Como escrevi no PDF, evitei de usar informações e rotinas muito complexas, já que minha intenção era criar um guia prático, puxando mais para a parte prática do que para a teoria.

O tutorial ensina basicamente como trabalhar com o XNA, desde a criação do projeto. Cobre a parte de modelagem, texturização e renderização de sólidos tridimensionais, gometria espacial, criação de câmeras e transformações de objetos ( deslocamento, rotação, etc... ).
A linguagem utilizada no tutorial foi a mesma escolhida pela Microsoft, o C# ( C Sharp ), mas é possível usar qualquer outra linguagem .NET, basta alterar a sintaxe.

Também disponibilizei o código fonte e todos os arquivos que usei durante o tutorial ( link incluso no PDF ). Espero que gostem ( e me perdoem por ter sido um tanto quanto "superficial" nas definições que pus no guia, mas como disse, não queria deixar o leitor quebrando a cabeça para decifrar "postulados e colorários" e tornar um guia de baixo nível ).
C&C são bem vindas, claro

Fotos:
http://www.guiadohardware.net/comuni...8/#post3072485

Link para download (~500KB ):
http://fergonez.net/files/guia_xna.pdf

Tags: guia microsoft xna tutorial

Abraço a todos,
Fergo
08-07-2007 por philix
Cara! Vc é o cara!!!

Muito massa o tutorial, vai me atrapalhar muito em meus projetos de banco-de-dados aqui. Mas eu quero mesmo é aprender a mexer com SDL, tenho noções de OpenGL e quero jogos multiplataforma.

Mas eu tenho que começar com o XNA para entender alguma coisa.
Assim como comecei com Delphi e hoje desenvolvo Sistemas de Banco de Dados em PHP que rodam em Browsers.
08-07-2007 por Fergo
Obrigado philix.
XNA é uma ótima plataforma para começar, ela lhe dá o ponta-pé inicial e "explica" como as coisas funcionam nesse ramo da programação. Os conhecimentos que você aprende nela, mesmo sendo de um alto nível, vai ser útil para trabalhar com outras APIs de mais baixo nível ( DirectX e até mesmo o OGL ), pois a base e os fundamentos você já vai ter.

Abraços,
Fergo
09-07-2007 por Fergo
Aí vai algumas fotos de uns testes que andei realizando. Utilizei o mesmo código contido no tutorial, com algumas pequenas modificações para gerar iluminação e specular ( mas ainda sem sombras )..
A mini cidade foi inteira modelada e texturizada no SkethUp ( pelo mesmo processo que há no tutorial ).

Visão geral:


Teste com specular ( não reparem o brilho na grama ):


Outra visão geral:



[]s,
Fergo
09-07-2007 por philix
Ei,

fiz direitinho até o capítulo 7(2D), mas tá dando dois errros na linha que tem:

pass.Begin();
e
pass.End();

A msg é:
Citação:
Error 1 Only assignment, call, increment, decrement, and new object expressions can be used as a statement C:\Documents and Settings\Felipe\Meus documentos\Visual Studio 2005\Projects\MeuJogo\MeuJogo\Game1.cs
O código esta idêntico ao seu, são apenas esses dois erros.

Seu projeto compila direitinho, acho que faltou algo lá no editor de propriedades do effects.fx. Que diz?
09-07-2007 por philix
Ninguém mais se interessou nesse post não foi? Deve ser pq eu conheço o XNA há muito tempo, mas só agora aprendi a usar com este tutorial basikão muito massa.

Mas vou usar o template do XNA só para entender como posicionar os comando e como criar classes para meus jogos em c++, OpenGL, SDL... posteriormente.

É chato demais programar em C Sharp. Vou aprender C++ quando tiver tempo(ano que vem), estudar OGL com a SDL. Arrumei um tempinho nas duas ultimas semanas e aprendi C (fiz um programa que faz tudo que se estuda no Ensino Medio sobre matrizes. Programar em C no Eclipse é bonzinho.
09-07-2007 por Fergo
Se você pegar o compilar o código que está dentro da basta "MeuJogo 2D" ele funciona? Caso esteja copiando os código do PDF, cuidado, pois o sistema de cópia de texto do PDF algumas vezes corrompe a quebra de linha e coisas do tipo.

Quanto a linguagem, você pode portar o XNA para alguma outra linguagem .NET, é bem tranquilo. Basicamente é só ajustar a sintaxe.

Fergo
09-07-2007 por philix
Fergo eu não usei Copy and Paste não, eu li atentamente as instruções, entendi como funciona cada classe/objeto utilizada e para comparar o código eu abri o seu que vem pronto e comparei, tudo igual.

Eu percebi que o seu effects.fx tem propriedades definidas e o meu não, só isso de diferenças.

meu último POST foi caracterizado como flood, olha o botãozinho amarelo no canto inferior direito!!! :-()
17-07-2007 por Fergo
Fiz um pequeno vídeo demonstrando uma IA básica de veículos que criei no XNA que seguem um caminho, fazendo as curvas quando necessário. Eles ainda viram subitamente, não fiz interpolação para suavizar o movimento de curvatura. Dá para notar também o efeito specular de iluminação conforme a câmera se movimenta. O céu ali é temporário ( com as nuvenzinhas ) pois estava trabalhando em um skybox, que substituiria ele.

http://www.youtube.com/watch?v=DxcQLqL2FCU

Estou organizando e comentando o código dessa mini engine novamente. Provavelmente amanhã eu já vou estar com tudo terminado e então eu posto as fontes aqui ( e talvez faça uma atualização no tutorial ).

Abraços,
Fergo
18-07-2007 por philix
Ele voltou ao tópico, aleluia. Interessante os carrinhos, vai fazer GTA? :-)

vai fazeno tutos aí que nóis lê aqui.
19-07-2007 por Fergo
Valeu. Estava pensando em fazer algo no estilo de Midtown Madness ( estou trabalhando no projeto junto com um colega meu ).
Vou ter que adiar o código um pouco pois resolvi tentar implementar sombras em tempo real ( utilizando ShadowMap com PixelShader 3 ) e specularmap. Algumas fotos de como fica:

Sombras ( tempo real, se alteram de acordo com a posição da luz )


Specular e brilho nos vidros das janelas


Asfalto e calçada com specular map, um pouco mais realista


Abraços!
Fergo
19-07-2007 por philix
Tá bem realista, a textura da grama é que tá feia. Olhei aqui uns screenshots de Midtown Medness no site da Microsoft, gostaria a falar sobre o desenvolvimento do jogo aqui neste tópico.

Tô para aprender a programar games, mas estou desenvolvendo um sistema para marmoraria em PHP com MySQL(quanta conta, quanto gráfico), fico sem tempo de mexer/aprender mais com Programação 3D, mas o sistema vai render uma grana boa.

flws
19-07-2007 por Fergo
Eu estou trabalhando nas texturas de normal map para a grama, e quero ver se a gente consegue implementar o normalmap ainda hoje. Vai dar outra cara para a grama. Midtown Madness eh um tanto quanto antigo ( 99'/00' ), ms tem um freeroam de veículos bem interessante.
20-07-2007 por mvbueno
ein cara... gostei muito do seu tuto... ta bem facil de entender.. mas eu uso linux... sera que esses programas rodam no wine? Oo
20-07-2007 por Fergo
Olha, é capaz de rodar usando o Cedega ( para emular o DirectX ) e o Mono ( para o .NET Framework ). Pra ser sincero, acho difícil, mas é de se tentar

Fergo
20-07-2007 por mvbueno
voce nao conhece algo parecido para linux?
Tenho vontade de criar jogos
20-07-2007 por Fergo
Infelizmente não conheço, pois não trabalho com linux. A única coisa que eu sei é que o Blender ( programa de modelagem 3D ) parece que possui um "Game Studio" embutido nele, dê uma conferida. Existe ele para linux.

Fergo
20-07-2007 por mvbueno
Infelizmente nao consegui rodar o xna no linux
Ja tenho o Blender, mas achei ele mto complicado de mexer... voce não conhece um tutorial parecido com o seu para blender?
Tambem to tentando mexer no Crystal Space, mas nao consegui nem compila o CEL...

Abracos
20-07-2007 por Herberth_Amaral
Citação:
Infelizmente nao consegui rodar o xna no linux
Ja tenho o Blender, mas achei ele mto complicado de mexer... voce não conhece um tutorial parecido com o seu para blender?
Err.... é meio difícil de achar um bom tutorial para o blender em portugues.

Mas não é tão difícil assim não! O problema básico do blender é sua interface "nada a ver". Mas depois você se acostuma e descobre o quão poderosa ela é.
Vale a pena aprender o blender. Ele possui uma biblioteca física muito boa (a Bullet) e agora na versão 2.44, ele vem ainda mais poderoso com o novo suporte SSS( SubSurface Scattering) que permite ter uma maior realidade nas suas renderezições.
O blender também tem o yafray (www.yafray.org) como um renderizador externo que suporta o RayTracing, que é uma técnica de iluminação que torna as cenas muito mais reais.
Tem um pequeno filme feito somente com software livre (Blender, GIMP e outros) que mostra o poder do blender. O vídeo pode ser baixado em http://www.elephantsdream.org/ e foi feito com a versão 2.42, ou seja esse vídeo não mostra tudo o que o blender pode fazer.

Vou ficar por aqui. O resto e com vcs

P.S: Fergo, parabéns pelo excelente tutorial. Muito bom mesmo!
P.P.S: Estou com o intuito de, no fim do ano, legendar alguns vídeos tutorias do blender. Se vc quiser acompanhar, me mande uma MP.

Até mais!
20-07-2007 por philix
Citação:
Err.... é meio difícil de achar um bom tutorial para o blender em portugues.
Realmente é!!! Eu consegui aprender a mexer nele (um pouco) pq comprei umas pequenas revistas aí que saíram agora da Editora Minuano. Ótimas para começar. Achei o Blender mais fácil de mexer, não pela quantidade de controles e opções, mas pela maneira que vc visualiza a cena e como usa o mouse para selecionar as coisas(vertices, arestas, poligonos...).
O Blender exporta para 3ds...

É interessante a diferença de tamanho entre Blender(30MB) e 3DS MAX(meio DVD)!
 
Guia do Hardware Melhores Tópicos