1. Desenvolvimento de Jogos na Plataforma XNA Ellison Leão Universidade Federal de Alagoas Instituto de Computação Curso de Ciênciada Computação
2. 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ãoMatemática do jogo Principais Classes Loop Principal
3. Introdução Indústria de Games atual Investimento de milhões de dólares Jogadoresmaispróximos dos jogos Interatividade
6. A plataforma XNA O começo de tudo Programadoresdesbravadores: Necessidade de um conhecimentosucinto de linguagens de baixonível. Windows 95 – Uma “salvação”: Nasce o DirectX outambémchamada de Windows Game SDK DirectX = DirectDraw + DirectSound + DirectPlay Acesso as placasgráficaspelo HAL.
9. A plataforma XNA As versões do DirectX e suas características Algumaspeculiaridades DirectX 6 – Bump Mapping mapeadopeloambiente. DirectX 7 – Transformação e iluminação no chip gráfico. DirectX 8 – Introdução dos Shaders. Pixel Shader e Vertex Shader.
10. A plataforma XNA A plataforma .NET Semelhante à plataforma JAVA, criada com o intuito de criaruma plataforma única de desenvolvimento e execução de sistemas. Criada com o intuito de abrangertodas as aplicaçõespara o sistemaoperacional Windows. Suportamais de 20 linguagens de programação.
11. 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).
13. A plataforma XNA .NET Compacto Versãoreduzida do framework visandosistemasembarcados. Possui algumas bibliotecas da versão full e algumas bibliotecas restritas e específicas para o uso da telefonia móvel. Xbox360 rodasobreumaversão do .NET compacto.
14. A plataforma XNA O console da Microsoft. XBOX 1ª geração Marcou o ingressoda Microsoft naindústria dos games. Foi o primeiro console de sexta geração a utilizar um disco rígido.
15. 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.
16. A plataforma XNA O console da Microsoft. XBOX 2ª geração Lançadoemmaio de 2005, paraconcorrer com as superpotências de consoles de 7ª geração. Trouxe a interatividade para os usuários. Fez parcerias com IBM, SiS, ATi.
17. 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.
18. A plataforma XNA XNA Framework É umaimplementaçãonativa do framework .NET compactopara o XBOX360 e do .NET completopara o PC. Rodasobreuma CLR, mas o desenvolvimento de jogosficarestrito à linguagem C#. Encapsuladetalhes de baixonível.
20. A plataforma XNA XNA Build [4] Conjunto de ferramentasqueotimizam o código. Bastanteutilizadoemjogos de largaescala. Coordena o Game Asset Pipeline. Exemplo de utilização no XNA Build: Estudo de caso de Brian Keller no jogo MechCommander 2.
21. A plataforma XNA XNA Game Studio IDE própriaparadesenvolvimento de jogos Baseada no Visual Studio. Inicialmentecriada com 2 versões: XNA Game Studio Express XNA Game Studio Professional
23. A plataforma XNA Considerações de Perfomance Tom Miller diz – “60 fps é o mínimoaceitável” [2] Regra 80-20. “20% do códigofaz 80% do trabalho” ClasseMicrosoft.Xna.Framework.Game do XNA realiza trabalho de aumento na perfomance. 3 principais métodos são importantes: Update() Draw() LoadGraphicsContent() Todas as classes criadasobrigatoriamenteherdam a classeGame.
24. A plataforma XNA Considerações de Perfomance HLSL – High Level Shader Language Linguagempadrão de acessoàsplacasgráficas (GPUs). Até 2001 o acesso era feitopeloFFP(Fixed Function Pipeline) do DirectX. Permiteuma “conversa” em alto nível com as placas, sem a necessidade de utilização de linguagemAssembly.
25. 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.
26. A plataforma XNA XNA vs. outros Frameworks Crystal Space Desenvolvido, inicialmente, paracriaraplicaçõ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çõesmodularizadas (plugins). É livre.
27. A plataforma XNA XNA vs. outros Frameworks Guff[5] Criado a partirdatese de mestrado de LuísValente. Seu princípio se dá pela reutilização de funções de outras bibliotecas já existentes como OpenGL, GLEW e SDL. É livre.
28. Implementando o Jogo Tube Raid VisãoGeral do Jogo Inspirado no famosojogo River Raid do Atari 2600. Jogadorguiauma nave aolongo de umasuperfície tubular. Jogadordevedesviar de algunsobstáculos e coletaroutrosparafazerpontos.
30. Implementando o Jogo Tube Raid VisãoMatemática do jogo Superfície tubular - Definição Rotação de um ponto P aolongo de um raio r , paracadapontodacurvageratriz r(t). Após a escolhadacurva, sãocalculadostambém, aolongodacurva, 3 vetores: VetorTangente Pordefinição
31. Implementando o Jogo Tube Raid VisãoMatemática do jogo Vetor Normal Pordefinição VetorBinormal
32. Implementando o Jogo Tube Raid VisãoMatemática do Jogo 3 curvasgeratrizesexistem no jogo: Círculo Pordefinição Onde a e b sãocoordenadas do centro e r, o raiodacircunferência.
33. Implementando o Jogo Tube Raid VisãoMatemática do Jogo 3 curvasgeratrizesexistem no jogo: Hélice Pordefinição
34. Implementando o Jogo Tube Raid VisãoMatemática do Jogo 3 curvasgeratrizesexistem no jogo: Senóide Pordefiniçã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.
36. Implementando o Jogo Tube Raid Principais Classes ClasseCircle:Curve ClasseSenoid:Curve ClasseHelix:Curve Classe Tube
37. Implementando o Jogo Tube Raid Loop Principal MétodoUpdate() 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étodoDraw() 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.
39. 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.
Notas do Editor
Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades