Documente Academic
Documente Profesional
Documente Cultură
www.brunoevangelista.com
XNA um framework que possibilita uma alta produtividade no desenvolvimento de jogos Hoje mostraremos como iniciar o desenvolvimento de um jogo 3D com o XNA
No, ns no criaremos um jogo completo! =(
Vamos comear com partes mais tericas seguindo para partes mais prticas !!!
Software
Visual Studio C# Express + Service Pack 1.0 .NET Framework 2.0 SDK Game Studio Express Refresh 1.0 DirectX 9 Runtime (Dezembro 2006)
Hardware
Placa grfica compatvel com Shader Model 1.1 Recomendado Shader Model 2.0
GeForce 5200 ou superior!
Classe base para todos os seus jogos Inicializa todos os recursos necessrio Possui um game loop definido
Single Thread Passos fixos ou variados de tempo
Mtodos
Initialize Load/UnloadGraphicsContent Update Draw
Objetos/Servios
GraphicsDeviceManager ContentManager
Objetos do mundo real podem ser representados computacionalmente atravs da malha de sua superfcie
Uma bola pode ser representada atravs da superfcie de uma esfera
10
11
12
O XNA possui um pipeline de contedo, que pode ser utilizado para compilar vrios assets do jogo
Os assets so importados em seu formato original, e transformado em um formato XML padro Em seguida os assets so processados, gerando objetos gerenciados de jogo Por fim, eles so compilados, gerando binrios otimizados para uso no windows ou Xbox 360
13
14
Para que um asset seja processado pelo pipeline de contedo basta adicion-lo ao projeto Em seguida ele pode ser carregados atravs do gerenciado de contedo (ContentManager)
HORA DE IMPLEMENTAR
15
16
Para gerarmos uma imagem da malha 3D carregada, a mesma precisa ser renderizada
No XNA no existe o pipeline de renderizao fixo preciso fazer o uso do pipeline programvel, utilizando Shaders! xD
17
18
Uma instncia do BasicEffect criada para cada modelo carregado que no possui um efeito
Para cada material "bsico" exportados criado um BasicEffect quando a malha carregada Ferramentas como o 3D Studio Max permitem exportar outros materiais, como efeitos
19
20
A classe Matrix do XNA possui vrios mtodos para auxiliar a criao de uma cmera
21
22
Posio Observada
23
HORA DE IMPLEMENTAR
24
Sistema de coordenadas
Diferente do DirectX o XNA utiliza o sistema de coordenadas da mo direita
Sistema da mo esquerda
Sistema da mo direita
25
Ordenao de primitivas
Diferente do DirectX e do OpenGL, a ordenao de primitivas padro do XNA Clockwise (CW)
V1 V1
V3
Clockwise
V2
V2
Counterclockwise
V3
26
27
DIRECIONAL
OMNIDIRECIONAL
HOLOFOTE
28
29
COMPONENTE AMBIENTE
COMPONENTE DIFUSA
COMPONENTE ESPECULAR
30
31
Utilizando shaders voc pode criar seu modelo de iluminao e suas fontes de luz!
32
HORA DE IMPLEMENTAR
33
34
35
36
HORA DE IMPLEMENTAR
37
38
HORA DE IMPLEMENTAR
39
40
O pipeline de contedo do XNA possui suporte nativo aos formatos de modelo .FBX (Autodesk) e .X (DirectX)
Nesta seo mostraremos como fcil exportar modelos e carregar os mesmos no XNA
HORA DE IMPLEMENTAR
41
42
43
Mais rpido
Esferas
AABB
OOBB
Malha
Tringulos
Mais preciso ?
44
45
Para gerarmos outros slidos de coliso podemos extender o processador de modelos do XNA
46
HORA DE IMPLEMENTAR Utilizar novo processador de modelos Adicionar coliso com o cho e objetos
47
48
Para adicionar um pouco mais de ao ao jogo vamos deixar que o jogador possa pular
Para isso basta adicionar uma gravidade a cena
49
HORA DE IMPLEMENTAR
50
51
O XNA possui classes que facilitam a escrita na tela utilizando qualquer tipo de fonte As fontes so criadas a partir de arquivos SpriteFont
Arquivo XML que descrevem como construir uma textura para uma determinada fonte de texto Podem ser criados pela IDE do GameStudioExpress
52
Para desenharmos objetos 2D como sprites e textos podemos utilizar a classe SpriteBatch
Realiza o desenho dos objetos em lote, permitindo um aumento de desempenho Encapsula todo o processamento necessrio para desenhar os objetos utilizando shaders
53
HORA DE IMPLEMENTAR
54
55
Objetivo do jogo
Coletar o maior nmero de esferas at o tempo acabar No muito desafiador, mas no vamos comear fazendo um Gears of War ^^
56
57
Criar jogos com o XNA fcil e divertido No perca mais seus dias criando
Cdigos para criar e gerenciar janelas Importadores de modelos, texturas, etc Classes de matemtica Loop de jogos E vrias outras coisas chatas
58
Bruno P. Evangelista
bpevangelista@gmail.com Home Page www.brunoevangelista.com
"De fato, que aproveitar ao homem ganhar o mundo inteiro mas perder sua alma?" Mateus 16, 26