23/01/2011
XNA para o
Desenvolvimento de Jogos
Vinícius Godoy de Mendonça
[email protected]
twitter: @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
1
23/01/2011
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
2
23/01/2011
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)
EBTS – Rio de Janeiro e Curitiba
Simuladores para a polícia federal e
para o exército brasileiro
Oniria – Londrina PR
Softwares para Econorte e Petrobrás
3
23/01/2011
A Indústria de Jogos Digitais
• Educacionais
Positivo Informática
Patrulheiro das Galaxias
PUC/PR e editora FTD
Turma cósmica
A Indústria de Jogos Digitais
• Pesquisa científica
USP – São Carlos
Jogos e mecatrônica
para recuperação
de fraturas
Positivo – Mesas Educacionais
Jogos, realidade aumentada e
tecnologia multi-toque na
educação
http://bit.ly/FractureAndGames
4
23/01/2011
A Indústria de Jogos Digitais
• 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 - Taikodom
Timewave Games – Florianópolis
Jogo web, publicado em várias línguas e sites.
Alunos da PUC/PR
5
23/01/2011
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
6
23/01/2011
O que é XNA ?
Xna Não é um Acrônimo
Plataformas
7
23/01/2011
Qual o custo disso ?
• 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
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!
8
23/01/2011
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
Legenda:
Starter Kits
Code
Content
Application Model
Graphics
Audio
Direct3D
XNA Provê
Components
Content Pipeline
Input
XACT
Você cria
Math
Storage
XINPUT
Network
XCONTENT
Comunidade
9
23/01/2011
Jogos
Starter Kits
Jogos
Extended
Framework
Core
Code
Content
Application Model
Graphics
Audio
Components
Content Pipeline
Input
Math
Storage
Network
Framework
Plataforma
Direct3D
XACT
XINPUT
XCONTENT
Starter Kits
Modifique os jogos e crie o seu próprio
10
23/01/2011
Extensões do Framework
Jogos
Extended
Framework
Core
Starter Kits
Code
Content
Application Model
Graphics
Audio
Components
Content Pipeline
Input
Math
Storage
Network
Framework
Plataforma
Direct3D
XACT
XINPUT
XCONTENT
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
11
23/01/2011
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
12
23/01/2011
Núcleo
Jogos
Extended
Framework
Core
Starter Kits
Code
Content
Application Model
Graphics
Audio
Components
Content Pipeline
Input
Math
Storage
Network
Framework
Plataforma
Direct3D
XACT
XINPUT
XCONTENT
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
13
23/01/2011
Audio
• Baseado no XACT (Cross-Platform Audio Creation
Tool)
– 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
Input
• 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
14
23/01/2011
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
15
23/01/2011
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
Shatter Effects
Distortion
3D Particles
16
23/01/2011
É 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
17
23/01/2011
Como funciona um jogo em XNA
(Game1.cs)
Initialize()
LoadContent()
Update()
Game Loop
Término da aplicação
UnloadContent()
Draw()
Sistemas de Coordenadas 2D
18
23/01/2011
Screenshots de games em XNA
Screenshots de games em XNA
19
23/01/2011
Screenshots de games em XNA
Screenshots de games em XNA
20
23/01/2011
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]
21
Download

XNA para o Desenvolvimento de Jogos Quem sou eu?