Desenvolvimento de Jogos na Plataforma XNA<br />Ellison Leão<br />Universidade Federal de Alagoas<br />Instituto de Comput...
Sumário<br />Introdução<br />A Plataforma XNA<br />O começo de tudo<br />Versões do DirectX e suas características<br />A ...
Introdução<br />Indústria de Games atual<br />Investimento de milhões de dólares<br />Jogadoresmaispróximos dos jogos<br /...
Introdução<br />
Introdução<br />
A plataforma XNA<br />O começo de tudo<br />Programadoresdesbravadores:<br />Necessidade de um conhecimentosucinto de ling...
A plataforma XNA<br />As versões do DirectX e suas características<br />
A plataforma XNA<br />As versões do DirectX e suas características<br />
A plataforma XNA<br />As versões do DirectX e suas características<br />Algumaspeculiaridades<br />DirectX 6 – Bump Mappin...
A plataforma XNA<br />A plataforma .NET<br />Semelhante à plataforma JAVA, criada com o intuito de criaruma plataforma úni...
A plataforma XNA<br />Arquitetura .NET<br />Todo o funcionamento da plataforma é realizado dentro de uma Infraestrutura ch...
A plataforma XNA<br />Arquitetura .NET<br />
A plataforma XNA<br />.NET Compacto<br />Versãoreduzida do framework visandosistemasembarcados.<br />Possui algumas biblio...
A plataforma XNA<br />O console da Microsoft.<br />XBOX 1ª geração<br />Marcou o ingressoda Microsoft naindústria dos game...
A plataforma XNA<br />O console da Microsoft. [6]<br />XBOX 1ª geração<br />Características de hardware:<br />Possui um pr...
A plataforma XNA<br />O console da Microsoft.<br />XBOX 2ª geração<br />Lançadoemmaio de 2005, paraconcorrer com as superp...
A plataforma XNA<br />O console da Microsoft.<br />XBOX 2ª geração<br />Características de Hardware:<br />Possui processad...
A plataforma XNA<br />XNA Framework<br />É umaimplementaçãonativa do framework .NET compactopara o XBOX360 e do .NET compl...
A plataforma XNA<br />XNA Framework<br />Arquitetura<br />
A plataforma XNA<br />XNA Build [4]<br />Conjunto de ferramentasqueotimizam o código.<br />Bastanteutilizadoemjogos de lar...
A plataforma XNA<br />XNA Game Studio<br />IDE própriaparadesenvolvimento de jogos<br />Baseada no Visual Studio.<br />Ini...
A plataforma XNA<br />XNA Game Studio<br />
A plataforma XNA<br />Considerações de Perfomance<br />Tom Miller diz – “60 fps é o mínimoaceitável” [2]<br />Regra 80-20....
A plataforma XNA<br />Considerações de Perfomance<br />HLSL – High Level Shader Language<br />Linguagempadrão de acessoàsp...
A plataforma XNA<br />XNA vs. outros Frameworks<br />Jfrog [1]<br />Tese de mestrado de João Ricardo Bittencourt<br />Visa...
A plataforma XNA<br />XNA vs. outros Frameworks<br />Crystal Space<br />Desenvolvido, inicialmente, paracriaraplicações 3D...
A plataforma XNA<br />XNA vs. outros Frameworks<br />Guff[5]<br />Criado a partirdatese de mestrado de LuísValente.<br />S...
Implementando o Jogo Tube Raid<br />VisãoGeral do Jogo<br />Inspirado no famosojogo River Raid do Atari 2600.<br />Jogador...
Implementando o Jogo Tube Raid<br />VisãoGeral do Jogo<br />Alguns Screenshots do jogo.<br />
Implementando o Jogo Tube Raid<br />VisãoMatemática do jogo<br />Superfície tubular  - Definição<br />Rotação de um ponto ...
Implementando o Jogo Tube Raid<br />VisãoMatemática do jogo<br />Vetor Normal<br />Pordefinição<br />VetorBinormal<br />
Implementando o Jogo Tube Raid<br />VisãoMatemática do Jogo<br />3 curvasgeratrizesexistem no jogo:<br />Círculo<br />Pord...
Implementando o Jogo Tube Raid<br />VisãoMatemática do Jogo<br />3 curvasgeratrizesexistem no jogo:<br />Hélice<br />Porde...
Implementando o Jogo Tube Raid<br />VisãoMatemática do Jogo<br />3 curvasgeratrizesexistem no jogo:<br />Senóide<br />Pord...
Implementando o Jogo Tube Raid<br />Principais Classes<br />ClasseCurve<br />
Implementando o Jogo Tube Raid<br />Principais Classes<br />ClasseCircle:Curve<br />ClasseSenoid:Curve<br />ClasseHelix:Cu...
Implementando o Jogo Tube Raid<br />Loop Principal<br />MétodoUpdate()<br />Atualiza a movimentação da nave dentro da supe...
Conclusão<br />
Bibliografia<br />[1] Bittencourt, J. R. & Giraffa, L. M. (2004), ‘Desenvolvendo jogos computadorizados multiplataforma co...
Upcoming SlideShare
Loading in …5
×

Desenvolvimento De Jogos Na Plataforma Xna

4,077 views

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,077
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
  • Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
  • Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
  • Falarquepossuitodas as caracteristicas do framework .netadicionandoalgumasfuncionalidades
  • Rotacao e translação de um ponto
  • Rotacao e translação de um ponto
  • Rotacao e translação de um ponto
  • Desenvolvimento De Jogos Na Plataforma Xna

    1. 1. Desenvolvimento de Jogos na Plataforma XNA<br />Ellison Leão<br />Universidade Federal de Alagoas<br />Instituto de Computação<br />Curso de Ciênciada Computação<br />
    2. 2. Sumário<br />Introdução<br />A Plataforma XNA<br />O começo de tudo<br />Versões do DirectX e suas características<br />A plataforma .NET<br />O console da Microsoft<br />O que é a plataforma XNA?<br />Considerações de Performance<br />XNA versus Outros<br />Implementando o Jogo Tube Raid<br />Visão Geral do Jogo<br />VisãoMatemática do jogo<br />Principais Classes<br />Loop Principal<br />
    3. 3. Introdução<br />Indústria de Games atual<br />Investimento de milhões de dólares<br />Jogadoresmaispróximos dos jogos<br />Interatividade<br />
    4. 4. Introdução<br />
    5. 5. Introdução<br />
    6. 6. A plataforma XNA<br />O começo de tudo<br />Programadoresdesbravadores:<br />Necessidade de um conhecimentosucinto de linguagens de baixonível.<br />Windows 95 – Uma “salvação”:<br />Nasce o DirectX outambémchamada de Windows Game SDK<br />DirectX = DirectDraw + DirectSound + DirectPlay<br />Acesso as placasgráficaspelo HAL.<br />
    7. 7. A plataforma XNA<br />As versões do DirectX e suas características<br />
    8. 8. A plataforma XNA<br />As versões do DirectX e suas características<br />
    9. 9. A plataforma XNA<br />As versões do DirectX e suas características<br />Algumaspeculiaridades<br />DirectX 6 – Bump Mapping mapeadopeloambiente.<br />DirectX 7 – Transformação e iluminação no chip gráfico.<br />DirectX 8 – Introdução dos Shaders. Pixel Shader e Vertex Shader.<br />
    10. 10. A plataforma XNA<br />A plataforma .NET<br />Semelhante à plataforma JAVA, criada com o intuito de criaruma plataforma única de desenvolvimento e execução de sistemas.<br />Criada com o intuito de abrangertodas as aplicaçõespara o sistemaoperacional Windows.<br />Suportamais de 20 linguagens de programação.<br />
    11. 11. A plataforma XNA<br />Arquitetura .NET<br />Todo o funcionamento da plataforma é realizado dentro de uma Infraestrutura chamada de CLI (Common Language Infrastructure).<br />A implementação da Microsoft para essa CLI é chamada de CLR (Common Language Runtime).<br />
    12. 12. A plataforma XNA<br />Arquitetura .NET<br />
    13. 13. A plataforma XNA<br />.NET Compacto<br />Versãoreduzida do framework visandosistemasembarcados.<br />Possui algumas bibliotecas da versão full e algumas bibliotecas restritas e específicas para o uso da telefonia móvel.<br />Xbox360 rodasobreumaversão do .NET compacto.<br />
    14. 14. A plataforma XNA<br />O console da Microsoft.<br />XBOX 1ª geração<br />Marcou o ingressoda Microsoft naindústria dos games.<br />Foi o primeiro console de sexta geração a utilizar um disco rígido.<br />
    15. 15. A plataforma XNA<br />O console da Microsoft. [6]<br />XBOX 1ª geração<br />Características de hardware:<br />Possui um processador de 733Mhz da Intel, o qual pode ser considerado como um Pentium III da época.<br />Possui uma placa gráfica da NVidia, série NV2A, rodando a 250Mhz<br />Possui rede Ethernet 10/100-T.<br />
    16. 16. A plataforma XNA<br />O console da Microsoft.<br />XBOX 2ª geração<br />Lançadoemmaio de 2005, paraconcorrer com as superpotências de consoles de 7ª geração.<br />Trouxe a interatividade para os usuários.<br />Fez parcerias com IBM, SiS, ATi. <br />
    17. 17. A plataforma XNA<br />O console da Microsoft.<br />XBOX 2ª geração<br />Características de Hardware:<br />Possui processador Xenon de 3 núcleos de 3,2Ghz cada. executando simetricamente, com memória cache L2 de 1Mb.<br />Possui placa gráfica ATI 512Mb, de 700MHz GDDR3.<br />Possui disco rígido de até 120Gb (dependendo da versão2), com uma unidade de DVD-ROM dupla camada de 12x.<br />
    18. 18. A plataforma XNA<br />XNA Framework<br />É umaimplementaçãonativa do framework .NET compactopara o XBOX360 e do .NET completopara o PC.<br />Rodasobreuma CLR, mas o desenvolvimento de jogosficarestrito à linguagem C#.<br />Encapsuladetalhes de baixonível.<br />
    19. 19. A plataforma XNA<br />XNA Framework<br />Arquitetura<br />
    20. 20. A plataforma XNA<br />XNA Build [4]<br />Conjunto de ferramentasqueotimizam o código.<br />Bastanteutilizadoemjogos de largaescala.<br />Coordena o Game Asset Pipeline.<br />Exemplo de utilização no XNA Build: Estudo de caso de Brian Keller no jogo MechCommander 2.<br />
    21. 21. A plataforma XNA<br />XNA Game Studio<br />IDE própriaparadesenvolvimento de jogos<br />Baseada no Visual Studio.<br />Inicialmentecriada com 2 versões:<br />XNA Game Studio Express<br />XNA Game Studio Professional<br />
    22. 22. A plataforma XNA<br />XNA Game Studio<br />
    23. 23. A plataforma XNA<br />Considerações de Perfomance<br />Tom Miller diz – “60 fps é o mínimoaceitável” [2]<br />Regra 80-20. “20% do códigofaz 80% do trabalho”<br />ClasseMicrosoft.Xna.Framework.Game do XNA realiza trabalho de aumento na perfomance. 3 principais métodos são importantes:<br />Update()<br />Draw()<br />LoadGraphicsContent()<br />Todas as classes criadasobrigatoriamenteherdam a classeGame.<br />
    24. 24. A plataforma XNA<br />Considerações de Perfomance<br />HLSL – High Level Shader Language<br />Linguagempadrão de acessoàsplacasgráficas (GPUs).<br />Até 2001 o acesso era feitopeloFFP(Fixed Function Pipeline) do DirectX.<br />Permiteuma “conversa” em alto nível com as placas, sem a necessidade de utilização de linguagemAssembly.<br />
    25. 25. A plataforma XNA<br />XNA vs. outros Frameworks<br />Jfrog [1]<br />Tese de mestrado de João Ricardo Bittencourt<br />Visa a criação de game engines tanto para desktops, quanto para sistemas embarcados<br />É livre.<br />
    26. 26. A plataforma XNA<br />XNA vs. outros Frameworks<br />Crystal Space<br />Desenvolvido, inicialmente, paracriaraplicações 3D genéricas.<br />É escrito em C++ e utiliza algumas funções da biblioteca ODE e Bullet para o tratamento da física.<br />Criação de aplicaçõesmodularizadas (plugins).<br />É livre.<br />
    27. 27. A plataforma XNA<br />XNA vs. outros Frameworks<br />Guff[5]<br />Criado a partirdatese de mestrado de LuísValente.<br />Seu princípio se dá pela reutilização de funções de outras bibliotecas já existentes como OpenGL, GLEW e SDL.<br />É livre.<br />
    28. 28. Implementando o Jogo Tube Raid<br />VisãoGeral do Jogo<br />Inspirado no famosojogo River Raid do Atari 2600.<br />Jogadorguiauma nave aolongo de umasuperfície tubular.<br />Jogadordevedesviar de algunsobstáculos e coletaroutrosparafazerpontos.<br />
    29. 29. Implementando o Jogo Tube Raid<br />VisãoGeral do Jogo<br />Alguns Screenshots do jogo.<br />
    30. 30. Implementando o Jogo Tube Raid<br />VisãoMatemática do jogo<br />Superfície tubular - Definição<br />Rotação de um ponto P aolongo de um raio r , paracadapontodacurvageratriz r(t).<br />Após a escolhadacurva, sãocalculadostambém, aolongodacurva, 3 vetores:<br />VetorTangente<br />Pordefinição<br />
    31. 31. Implementando o Jogo Tube Raid<br />VisãoMatemática do jogo<br />Vetor Normal<br />Pordefinição<br />VetorBinormal<br />
    32. 32. Implementando o Jogo Tube Raid<br />VisãoMatemática do Jogo<br />3 curvasgeratrizesexistem no jogo:<br />Círculo<br />Pordefinição<br />Onde a e b sãocoordenadas do centro e r, <br />o raiodacircunferência.<br />
    33. 33. Implementando o Jogo Tube Raid<br />VisãoMatemática do Jogo<br />3 curvasgeratrizesexistem no jogo:<br />Hélice<br />Pordefinição<br />
    34. 34. Implementando o Jogo Tube Raid<br />VisãoMatemática do Jogo<br />3 curvasgeratrizesexistem no jogo:<br />Senóide<br />Pordefinição<br />Onde:<br /> A - Amplitude da curva.<br /> B - Relaciona-se com o período da função (2π/|B| ).<br /> C - Translação Horizontal.<br /> D - Translação Vertical.<br />
    35. 35. Implementando o Jogo Tube Raid<br />Principais Classes<br />ClasseCurve<br />
    36. 36. Implementando o Jogo Tube Raid<br />Principais Classes<br />ClasseCircle:Curve<br />ClasseSenoid:Curve<br />ClasseHelix:Curve<br />Classe Tube<br />
    37. 37. Implementando o Jogo Tube Raid<br />Loop Principal<br />MétodoUpdate()<br />Atualiza a movimentação da nave dentro da superfície de acordo com a tecla pressionada.<br />Verifica o intervalo de atualização para o desenho de uma novo “pedaço“ da superfície.<br />MétodoDraw()<br />Desenha na tela a superfície gerada com a respectiva iluminação e textura.<br />Desenha na tela as novas posições da nave ao longo da superfície.<br />Desenha na tela o score e estado do escudo atuais.<br />Verifica o teste de colisão.<br />
    38. 38. Conclusão<br />
    39. 39. Bibliografia<br />[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.<br />[2] Carter, C. (2007), Sams Microsoft XNA Unleashed, Sams.<br />[3] Landry, N. (2007), ‘Microsoft xna: Reasons for purchasing an xbox 360’<br />[4] Nitschke, B. (2007), Professional XNA Game Programming: For Xbox 360 and Windows, Wiley Publishing, Inc.<br />[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.<br />[6] Wikipédia (2008c), ‘Xbox — wikipédia, a enciclopédia livre’. URL http://pt.wikipedia.org/w/index.php?title=Xbox&oldid=9259408.<br />

    ×