XNA para o Desenvolvimento de Jogos - Global Game …€¢ Como desenvolver para um console com...
Transcript of XNA para o Desenvolvimento de Jogos - Global Game …€¢ Como desenvolver para um console com...
23/01/2011
1
XNA para o
Desenvolvimento de Jogos
Vinícius Godoy de Mendonça
[email protected]: @ViniGodoy
Ponto V! - http://www.pontov.com.br
Quem sou eu?
• Professor dos cursos de pós graduação e graduação tecnológica em Jogos da PUC/PR;
• Sócio e fundador do portal de desenvolvimento de jogos Ponto V!: www.pontov.com.br
• Criador do projeto Alegria: http://alegria2d.com
• Funcionário da Positivo Informática – Tecnologia Educacional
• Jogador e RPGista há mais de 20 anos
23/01/2011
2
O que veremos
• A indústria de jogos digitais;
• A Microsoft no mercado de games;
• Uma breve introdução ao XNA;
– Visão geral;
– Organização do framework;
– Facilidades no desenvolvimento;
– Exemplos.
A indústria de Jogos Digitais
23/01/2011
3
A Indústria de Jogos Digitais
• É uma das mais rentáveis do mundo– Faturamentos de 2007 supera a
indústria de música e cinema juntos.
• Não é coisa de criança– 47% dos chefes de família jogam
– Média de idade de jogadores: 34 anos
– 40% dos jogadores são mulheres
– 42% dos entrevistados jogam jogos em um dispositivo móvel: PDA ou celular
Dados da ESA (“2010 video-game indutry facts”), http://www.theesa.com
A Indústria de Jogos Digitais
• Serious Games (Treinamento e Capacitação)
Oniria – Londrina PR
Softwares para Econorte e Petrobrás
EBTS – Rio de Janeiro e Curitiba
Simuladores para a polícia federal e
para o exército brasileiro
23/01/2011
4
A Indústria de Jogos Digitais
• Educacionais
Positivo Informática
Patrulheiro das Galaxias
PUC/PR e editora FTD
Turma cósmica
• Pesquisa científica
USP – São Carlos
Jogos e mecatrônica
para recuperação
de fraturas
http://bit.ly/FractureAndGames
Positivo – Mesas Educacionais
Jogos, realidade aumentada e
tecnologia multi-toque na
educação
A Indústria de Jogos Digitais
23/01/2011
5
• Advergames
Aquiris – Porto Alegre – RS
Campanhas pra Axe, Casas Bahia, Gillette,
Laka, Embraer e Chevrolet
Continuum – Curitiba PR
Campanhas para MacDonald’s, Onda e
Rede Globo (BBB, Xuxa e os Duendes, no
Limite)
A Indústria de Jogos Digitais
• E claro, jogos de entretenimento
Hoplon – Florianópolis
MMORPG - TaikodomTimewave Games – Florianópolis
Jogo web, publicado em várias línguas e sites.
Alunos da PUC/PR
A Indústria de Jogos Digitais
23/01/2011
6
Mas nem tudo são flores...• Criar jogos demanda conhecimento técnico.
• Acesso aos Kits de desenvolvimento– Restrito– Caro– Complexo
• Desenvolver para qual plataforma?
• Quais as chances de sucesso para quem esta começando?
• Como desenvolver para um console com pouco investimento?
Introdução: Uma solução !
The Harvest 3 Racing Game City Rain
23/01/2011
8
• Para desenvolver / jogar no PC– Nenhum!
– Tudo através de ferramentas gratuitas (Visual C# Express Edition, XNA Game Studio e recursos da comunidade).
• Para desenvolver / jogar no Xbox 360.– Licença XNA Creators Club
• US$ 99,00 por ano ou• US$ 49,00 por 4 meses
• Windows Phone 7– Licença XNA Creators Club
• 5 submissões gratuitas;• US$ 19,99 por submissão adicional
Qual o custo disso ?
E os requisitos?
• Para desenvolver:– Windows XP SP2 ou superior– Visual C# 2010 Expresse Edition ou versão Professional– Runtime do DirectX
• Para rodar:– Placa de vídeo compatível com DirectX 9.0 e Shaders 2.0– Runtime do XNA e do DirectX– PC: Windows XP SP2 ou superior– Xbox 360: deve haver HD– Zune e Windows 7: pronto para rodar!
23/01/2011
9
Histórico
• Principal API utilizada pra desenvolvimento de jogos no PC
• Aplicativos desenvolvidos em C++
• Desenvolvimento para Windows
• API construída sobre o DirectX
• Jogos desenvolvidos com linguagens .NET
• Desenvolvimento para plataforma Windows
• API construída utilizando como base o MDX (substituiu o MDX)
• Aplicativos desenvolvidos em C#
• Desenvolvimento para Windows, Xbox 360, Zune e Windows Phone 7
XNA Framework e suas camadas
Jogos
Extended
Framework
Core
Framework
Plataforma
Starter Kits Code Content Components
Application Model Content Pipeline
Graphics Audio Input Math Storage
Direct3D XACT XINPUT XCONTENT
XNA Provê Você cria ComunidadeLegenda:
Network
23/01/2011
10
Jogos
Jogos
Extended
Framework
Core
Framework
Plataforma
Starter Kits Code Content Components
Application Model Content Pipeline
Direct3D XACT XINPUT XCONTENT
Graphics Audio Input Math Storage Network
Starter Kits
Modifique os jogos e crie o seu próprio
23/01/2011
11
Extensões do Framework
Jogos
Extended
Framework
Core
Framework
Plataforma
Starter Kits Code Content Components
Application Model Content Pipeline
Direct3D XACT XINPUT XCONTENT
Graphics Audio Input Math Storage Network
Application Model
Mantenha-se focado no jogo e não em qual
plataforma está rodando
• Faz o serviço chato e trabalhoso para você
• Desenvolvimento acelerado
• Possui recursos avançados
• Extensível
23/01/2011
12
Content Pipeline
• Liberdade de escolha– Ferramentas de criação de conteúdo
– Game engines
• Menos código para a criação– Mais tempo para a criação do jogo
• Forte integração entre código e conteúdo– Build de código e de conteúdo unificados
Content Pipeline
23/01/2011
13
Núcleo
Jogos
Extended
Framework
Core
Framework
Plataforma
Starter Kits Code Content Components
Application Model Content Pipeline
Direct3D XACT XINPUT XCONTENT
Graphics Audio Input Math Storage Network
Graphics
• Fornece recursos de renderização de baixo nível
• Construído em cima do Direct3D 9
• APIs atualizadas que seguem as regras do .NET– Efeitos– Recursos– Lock / Unlock– Vertex streams
• Recursos fornecidos– Model, Mesh e Bones– Textures– Effects e Shaders
23/01/2011
14
• Baseado no XACT (Cross-Platform Audio CreationTool)– Adiciona sons
– Ajusta propriedades
– Construir bancos de sons
• Fácil integração para desenvolvedores– Acesse-os via seus nomes lógicos
– Looping, streaming, e gerenciamento de memória
– Sem gerenciamento de buffer de baixo nível
Audio
• Torna fácil a obtenção de dados de entrada
• Dispositivos– Keyboard– Mouse (apenas para Windows)– Xbox 360 (Gamepad, guitarra, tambores, volantes, etc...)– 2011: Integração com Kinect®
• Modelo de programação imediato– Não demanda inicialização– Não demanda gerenciamento de estados– Basicamente tira uma fotografia dos estados de todos os
botões
Input
23/01/2011
15
Storage
• Fornece um jeito fácil para ler e salvar informações do jogo
• Atua como um sistema de arquivos virtuais– Arquivos armazenados no local correto de cada
plataforma– Suporta múltiplos dispositivos de armazenamento e
perfis no Xbox 360
• Baseado em Streams, o que facilita a integração com o System.IO
Math• Biblioteca de funções matemáticas para jogos
– Vector, Matriz, Quaternion, Plane, AABB, OBB, Sphere, Ray, Frustum, Curve...
– Regra-da-mão-direita por default
– Fácil integração
– Testes de intersecções
– Facilitadores para movimentos
23/01/2011
16
Network
• Conexão entre Xbox 360 e PC
• Conexão local e via LIVE!
• Inclui suporte a LIVE! MatchMaking– Conecta você a pessoas com perfil semelhantes
• A partir da versão 3.1– Ranked matchmaking– Venda de jogos na Live Community!– Conexão de até 8 Zunes em rede ad-hoc
Demos
Skinning & Animation
3D Particles
Distortion
Shatter Effects
23/01/2011
17
É realmente fácil criar jogos com XNA ?
• AbduX
– Jogo completo, feito em 4 dias, por 1 pessoa
– Explora recursos gráficos, sons, input e fontes no XNA além de reconhecimento de voz
É realmente fácil criar jogos com XNA ?
• Dungeon Quest
– Desenvolvido em apenas 4 dias
– Equipe: 1 desenvolvedor e 1 designer
23/01/2011
18
Como funciona um jogo em XNA (Game1.cs)
Initialize() LoadContent() Update()
Draw()UnloadContent()
Game Loop
Término da aplicação
Sistemas de Coordenadas 2D
23/01/2011
21
Considerações Finais
Referências
• Sharp, John. Microsoft Visual C#: Passo a passo (Tradução: Altair Dias Caldas de Moraes). Porto Alegre : Bookman, 2007. 504 p. ISBN 978-85-60031-17-7.
• Ponto V! – http://www.pontov.com.br/site/index.php/xna[acessado em novembro de 2010]
• Kleber Andrade. Curso de XNA. http://kleberandrade.wordpress.com/xna [acessado em abril de 2010].
• Sharp Games. http://www.sharpgames.net[acessado em abril de 2010]
• XNA Developer Center, http://msdn.microsoft.com/xna/[acessado em janeiro de 2011]
• XNA Creators Club, http://creators.xna.com[acessado em janeiro de 2011]