desenvolvimento de jogos na plataforma xna

39
DESENVOLVIMENTO DE JOGOS NA PLATAFORMA XNA Ellison Leão Universidade Federal de Alagoas Instituto de Computação Curso de Ciência da Computação

Upload: ellison-leao

Post on 20-Jun-2015

3.785 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Desenvolvimento De Jogos Na Plataforma Xna

DESENVOLVIMENTO DE JOGOS NA

PLATAFORMA XNAEllison Leão

Universidade Federal de AlagoasInstituto de Computação

Curso de Ciência da Computação

Page 2: Desenvolvimento De Jogos Na Plataforma Xna

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

Page 3: Desenvolvimento De Jogos Na Plataforma Xna

Introdução

Indústria de Games atualInvestimento de milhões de dólaresJogadores mais próximos dos jogos

Interatividade

Page 4: Desenvolvimento De Jogos Na Plataforma Xna

Introdução

Page 5: Desenvolvimento De Jogos Na Plataforma Xna

Introdução

Page 6: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 7: Desenvolvimento De Jogos Na Plataforma Xna

A plataforma XNA As versões do DirectX e suas características

Page 8: Desenvolvimento De Jogos Na Plataforma Xna

A plataforma XNA As versões do DirectX e suas características

Page 9: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 10: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 11: Desenvolvimento De Jogos Na Plataforma Xna

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).

Page 12: Desenvolvimento De Jogos Na Plataforma Xna

A plataforma XNA Arquitetura .NET

Page 13: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 14: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 15: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 16: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 17: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 18: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 19: Desenvolvimento De Jogos Na Plataforma Xna

A plataforma XNA XNA Framework

Arquitetura

Page 20: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 21: Desenvolvimento De Jogos Na Plataforma Xna

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

Page 22: Desenvolvimento De Jogos Na Plataforma Xna

A plataforma XNA XNA Game Studio

Page 23: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 24: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 25: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 26: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 27: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 28: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 29: Desenvolvimento De Jogos Na Plataforma Xna

Implementando o Jogo Tube Raid Visão Geral do Jogo

Alguns Screenshots do jogo.

Page 30: Desenvolvimento De Jogos Na Plataforma Xna

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

Page 31: Desenvolvimento De Jogos Na Plataforma Xna

Implementando o Jogo Tube Raid Visão Matemática do jogo

○ Vetor Normal Por definição

○ Vetor Binormal

Page 32: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 33: Desenvolvimento De Jogos Na Plataforma Xna

Implementando o Jogo Tube Raid Visão Matemática do Jogo

3 curvas geratrizes existem no jogo:○ Hélice

Por definição

Page 34: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 35: Desenvolvimento De Jogos Na Plataforma Xna

Implementando o Jogo Tube Raid Principais Classes

Classe Curve

Page 36: Desenvolvimento De Jogos Na Plataforma Xna

Implementando o Jogo Tube Raid Principais Classes

Classe Circle:Curve Classe Senoid:Curve Classe Helix:Curve Classe Tube

Page 37: Desenvolvimento De Jogos Na Plataforma Xna

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.

Page 38: Desenvolvimento De Jogos Na Plataforma Xna

Conclusão

Page 39: Desenvolvimento De Jogos Na Plataforma Xna

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.