desenvolvimento de jogos na plataforma xna
TRANSCRIPT
DESENVOLVIMENTO DE JOGOS NA
PLATAFORMA XNAEllison Leão
Universidade Federal de AlagoasInstituto de Computação
Curso de Ciência da Computação
Sumário Introdução A Plataforma XNA
O começo de tudo Versões do DirectX e suas características A plataforma .NET O console da Microsoft O que é a plataforma XNA? Considerações de Performance XNA versus Outros
Implementando o Jogo Tube Raid Visão Geral do Jogo Visão Matemática do jogo Principais Classes Loop Principal
Introdução
Indústria de Games atualInvestimento de milhões de dólaresJogadores mais próximos dos jogos
Interatividade
Introdução
Introdução
A plataforma XNA
O começo de tudoProgramadores desbravadores:
○ Necessidade de um conhecimento sucinto de linguagens de baixo nível.
Windows 95 – Uma “salvação”:○ Nasce o DirectX ou também chamada de
Windows Game SDK○ DirectX = DirectDraw + DirectSound +
DirectPlay○ Acesso as placas gráficas pelo HAL.
A plataforma XNA As versões do DirectX e suas características
A plataforma XNA As versões do DirectX e suas características
A plataforma XNA As versões do DirectX e suas características
Algumas peculiaridades○ DirectX 6 – Bump Mapping mapeado pelo ambiente.○ DirectX 7 – Transformação e iluminação no chip gráfico.○ DirectX 8 – Introdução dos Shaders. Pixel Shader e Vertex
Shader.
A plataforma XNA A plataforma .NET
Semelhante à plataforma JAVA, criada com o intuito de criar uma plataforma única de desenvolvimento e execução de sistemas.
Criada com o intuito de abranger todas as aplicações para o sistema operacional Windows.
Suporta mais de 20 linguagens de programação.
A plataforma XNA Arquitetura .NET
Todo o funcionamento da plataforma é realizado dentro de uma Infraestrutura chamada de CLI (Common Language Infrastructure).
A implementação da Microsoft para essa CLI é chamada de CLR (Common Language Runtime).
A plataforma XNA Arquitetura .NET
A plataforma XNA .NET Compacto
Versão reduzida do framework visando sistemas embarcados.
Possui algumas bibliotecas da versão full e algumas bibliotecas restritas e específicas para o uso da telefonia móvel.
Xbox360 roda sobre uma versão do .NET compacto.
A plataforma XNA O console da Microsoft.
XBOX 1ª geração○ Marcou o ingresso da Microsoft na indústria dos
games.○ Foi o primeiro console de sexta geração a utilizar um
disco rígido.
A plataforma XNA O console da Microsoft. [6]
XBOX 1ª geração○ Características de hardware:
Possui um processador de 733Mhz da Intel, o qual pode ser considerado como um Pentium III da época.
Possui uma placa gráfica da NVidia, série NV2A, rodando a 250Mhz
Possui rede Ethernet 10/100-T.
A plataforma XNA O console da Microsoft.
XBOX 2ª geração○ Lançado em maio de 2005, para concorrer com as
superpotências de consoles de 7ª geração.○ Trouxe a interatividade para os usuários.○ Fez parcerias com IBM, SiS, ATi.
A plataforma XNA O console da Microsoft.
XBOX 2ª geração○ Características de Hardware:
Possui processador Xenon de 3 núcleos de 3,2Ghz cada. executando simetricamente, com memória cache L2 de 1Mb.
Possui placa gráfica ATI 512Mb, de 700MHz GDDR3.Possui disco rígido de até 120Gb (dependendo da
versão2), com uma unidade de DVD-ROM dupla camada de 12x.
A plataforma XNA XNA Framework
É uma implementação nativa do framework .NET compacto para o XBOX360 e do .NET completo para o PC.
Roda sobre uma CLR, mas o desenvolvimento de jogos fica restrito à linguagem C#.
Encapsula detalhes de baixo nível.
A plataforma XNA XNA Framework
Arquitetura
A plataforma XNA XNA Build [4]
Conjunto de ferramentas que otimizam o código. Bastante utilizado em jogos de larga escala. Coordena o Game Asset Pipeline. Exemplo de utilização no XNA Build: Estudo de caso de
Brian Keller no jogo MechCommander 2.
A plataforma XNA XNA Game Studio
IDE própria para desenvolvimento de jogos Baseada no Visual Studio. Inicialmente criada com 2 versões:
○ XNA Game Studio Express○ XNA Game Studio Professional
A plataforma XNA XNA Game Studio
A plataforma XNA Considerações de Perfomance
Tom Miller diz – “60 fps é o mínimo aceitável” [2] Regra 80-20. “20% do código faz 80% do trabalho” Classe Microsoft.Xna.Framework.Game do XNA realiza
trabalho de aumento na perfomance. 3 principais métodos são importantes:○ Update()○ Draw()○ LoadGraphicsContent()
Todas as classes criadas obrigatoriamente herdam a classe Game.
A plataforma XNA Considerações de Perfomance
HLSL – High Level Shader Language○ Linguagem padrão de acesso às placas gráficas (GPUs).○ Até 2001 o acesso era feito pelo FFP(Fixed Function
Pipeline) do DirectX.○ Permite uma “conversa” em alto nível com as placas, sem a
necessidade de utilização de linguagem Assembly.
A plataforma XNA XNA vs. outros Frameworks
Jfrog [1]○ Tese de mestrado de João Ricardo Bittencourt○ Visa a criação de game engines tanto para desktops, quanto
para sistemas embarcados○ É livre.
A plataforma XNA XNA vs. outros Frameworks
Crystal Space○ Desenvolvido, inicialmente, para criar aplicações 3D
genéricas.○ É escrito em C++ e utiliza algumas funções da biblioteca
ODE e Bullet para o tratamento da física.○ Criação de aplicações modularizadas (plugins).
○ É livre.
A plataforma XNA XNA vs. outros Frameworks
Guff[5]○ Criado a partir da tese de mestrado de Luís Valente.
○ Seu princípio se dá pela reutilização de funções de outras bibliotecas já existentes como OpenGL, GLEW e SDL.
○ É livre.
Implementando o Jogo Tube Raid Visão Geral do Jogo
Inspirado no famoso jogo River Raid do Atari 2600. Jogador guia uma nave ao longo de uma superfície
tubular. Jogador deve desviar de alguns obstáculos e coletar
outros para fazer pontos.
Implementando o Jogo Tube Raid Visão Geral do Jogo
Alguns Screenshots do jogo.
Implementando o Jogo Tube Raid Visão Matemática do jogo
Superfície tubular - Definição○ Rotação de um ponto P ao longo de um raio r , para cada
ponto da curva geratriz r(t). Após a escolha da curva, são calculados também, ao
longo da curva, 3 vetores:○ Vetor Tangente
Por definição
Implementando o Jogo Tube Raid Visão Matemática do jogo
○ Vetor Normal Por definição
○ Vetor Binormal
Implementando o Jogo Tube Raid Visão Matemática do Jogo
3 curvas geratrizes existem no jogo:○ Círculo
Por definição
Onde a e b são coordenadas do centro e r, o raio da circunferência.
Implementando o Jogo Tube Raid Visão Matemática do Jogo
3 curvas geratrizes existem no jogo:○ Hélice
Por definição
Implementando o Jogo Tube Raid Visão Matemática do Jogo
3 curvas geratrizes existem no jogo:○ Senóide
Por definição
○ Onde: A - Amplitude da curva.
B - Relaciona-se com o período da função (2π/|B| ). C - Translação Horizontal. D - Translação Vertical.
Implementando o Jogo Tube Raid Principais Classes
Classe Curve
Implementando o Jogo Tube Raid Principais Classes
Classe Circle:Curve Classe Senoid:Curve Classe Helix:Curve Classe Tube
Implementando o Jogo Tube Raid Loop Principal
Método Update()○ Atualiza a movimentação da nave dentro da superfície de
acordo com a tecla pressionada.
○ Verifica o intervalo de atualização para o desenho de uma novo “pedaço“ da superfície.
Método Draw()○ Desenha na tela a superfície gerada com a respectiva
iluminação e textura.○ Desenha na tela as novas posições da nave ao longo da
superfície.○ Desenha na tela o score e estado do escudo atuais.○ Verifica o teste de colisão.
Conclusão
Bibliografia [1] Bittencourt, J. R. & Giraffa, L. M. (2004), ‘Desenvolvendo
jogos computadorizados multiplataforma com amphibian’, V Workshop sobre Software Livre, Porto Alegre: SBC, 2004, 119-122p.
[2] Carter, C. (2007), Sams Microsoft XNA Unleashed, Sams. [3] Landry, N. (2007), ‘Microsoft xna: Reasons for purchasing an
xbox 360’ [4] Nitschke, B. (2007), Professional XNA Game Programming:
For Xbox 360 and Windows, Wiley Publishing, Inc. [5] Valente, L. & (Advisor), A. C. (2005), ‘Guff: A game
development tool’, IV Workshop de Teses e Dissertações em Computação Gráfica e Processamentode Imagens, SIBGRAPI.
[6] Wikipédia (2008c), ‘Xbox — wikipédia, a enciclopédia livre’. URL http://pt.wikipedia.org/w/index.php?title=Xbox&oldid=9259408.