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