Your SlideShare is downloading. ×
  • Like
IntroduçãO Ao Xna  Campus Party
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

IntroduçãO Ao Xna Campus Party

  • 2,038 views
Published

 

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,038
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
87
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introdução ao XNA e ao Game Developer Express José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional Comunidade SharpGames jalf@sharpgames.net http://www.sharpgames.net
  • 2. Quem é esse cara? DirectX/XNA MVP Diretor Técnico Stairs Studio http://www.stairs.com.br Criador e Administrador do Sharpgames http://www.sharpgames.net Livros Colunista XBox Magazine
  • 3. Agenda Introdução Xbox Live Community Games XNA Challenge SharpGames XNA Game Studio Starter Kit XNA Framework Modelo de Aplicação; Content Pipeline Gráficos; Audio; Input Armazenamento Matemática
  • 4. O que é XNA?
  • 5. XNA Game Studio Express Desenhado com acadêmicos, hobistas e pequenos desenvolvedores de games Ideal para jogos casuais Nova plataforma para desenvolvimento de jogos baseado em .NET 3.0, .NET Compact Framework Extensão da IDE do Visual C# 2008 Grupo de bibliotecas multi-plataforma optimizada para jogos
  • 6. XNA Framework O XNA Framework é uma plataforma de desenvolvimento de jogos baseada em .NET que pode ser usada para criar jogos para Windows e Xbox 360 Suporta as plataformas de jogos da Microsoft Foco no jogo, não na plataforma APIs consistentes e de fácil utilização
  • 7. Instalação .NET 3.0 Visual Studio 2008 (Qualquer Versão) XNA Framework XNA Game Studio
  • 8. Games Starter Kits Code Content Comps Starter Kits Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Modifique os jogos e crie o seu próprio Um jogo completamente funcional Use como um começo para seus próprios jogos Acessado via “New Project…” Pressione F5 e divirta-se! Documentação e tutoriais Disponibilidade 2 jogos incluídos com XNA Game Studio Express Novos kits saem regularmente
  • 9. Camadas do XNA Framework Jogos Starter Kits Code Content Components Extended Framework Application Model Content Pipeline Core Graphics Audio Input Math Storage Framework Plataforma Direct3D XACT XINPUT XContent Legenda XNA Fornece Você Fornece Comunidade
  • 10. Extended Framework
  • 11. Games Starter Kits Code Content Comps Modelo de Aplicação Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Mantenha-se focado no jogo e não em qual plataforma ele está rodando Configurado e rodando rapidamente As primeiras linhas de código já serão para seu jogo. Abstração de Plataforma Qual a melhor maneira de criar um game loop? Como eu crio e gerencio minha janela? Como eu sigo as melhores práticas para a plataforma? Game É o tipo principal de seu jogo Eventos de Load, Update e Draw
  • 12. Games Starter Kits Code Content Comps Modelo de Aplicação Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Crie componentes reusáveis que podem facilmente ser integrados ao seu jogo GameComponent, DrawableGameComponent Base para todos os componentes XNA O Autor escreve o Load, Update, e Draw Pode descobrir e interagir com outros componentes Game.Components Gerenciado em tempo de execução pelo jogo Grande suporte a ‘design time’ pelo IDE
  • 13. Games Starter Kits Code Content Comps XNA Framework Content Pipeline Extended Framework Core Application Model Content Pipeline Princípios de Design Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Liberdade de escolha Ferramenta 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
  • 14. XNA Framework Content Pipeline Importadores Conteúdo de jogo adicionado ao Visual Studio 3D File 2D File Material File Audio File Formats Formats Formats Formats .FBX .DDS .FX .XAP (XACT) .X .BMP .JPG .PNG Processadores .TGA Conversões de tipo altamante tipadas Extensões de código gerenciado ContentManager xnaLoader = new ContentManager(); myAsset =
  • 15. Core Framework
  • 16. Games Starter Kits Code Content Comps Graphics Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Fornece recursos de renderização de baixo nível Construído sob o Direct3D 9 APIs atualizadas que seguem as regras do .NET Efeitos Recursos Lock/Unlock Vertex streams Recursos fornecidos Model, Mesh, Bones Texturas Efeitos e shaders
  • 17. XNA Framework Effects
  • 18. XNA Framework Effects
  • 19. Games Starter Kits Code Content Comps Audio Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent É muito fácil tocar seus sons Construa seus pacotes de som usando a ferramenta XACT Adicionar sons Ajustar 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
  • 20. Games Starter Kits Code Content Comps Input Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Torna fácil a obtenção de dados de entrada Pronto para usar Sem inicialização Sem gerenciamento de estado Dispositivos Joystick do Xbox 360 Teclado Mouse (apenas no Windows)
  • 21. Games Starter Kits Code Content Comps Storage Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Fornece um jeito fácil para ler e salvar informações do jogo StorageContainer atua como um sistema de arquivos virtual Arquivos armazenados no local correto de cada plataforma Suporta mútiplos dispositivos de armazenamento e perfis no Xbox 360 Baseado em Streams, o que facilita a integração com o System.IO
  • 22. Games Starter Kits Code Content Comps Math Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Biblioteca de funções matemáticas para jogos Vector, Matrix, Quaternion, Plane, AABB, Sphere, Ray, Frustum, Curve Regra-da-mão-direita por default Fácil integração Testes de intersecção Facilitadores para movimentos
  • 23. Criando Jogos para o Xbox 360
  • 24. Pré-requisitos e Instalação Assinatura da Xbox live XNA Creator’s Club (US$99 por um ano) Instale o XNA Game launcher a partir da Xbox marketplace Compre o XNA Creaters Club a partir Xbox marketplace Para obter seu código de conexão, rode o XNA Game launcer de: GamesDemos and More no Xbox 360
  • 25. Games Starter Kits Code Content Comps Xbox 360 Development Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Platform Direct3D XACT XINPUT XContent Experiência de desenvolvimento Project templates para jogos do Xbox 360 F5 faz o deploy para o console Remote debugging Breakpoints Watches Debug e Trace para o PC Sem Edit and Continue Debug Visualizers
  • 26. Criando um jogo
  • 27. XNA 2D game “Rock Rain” Construção de um jogo simples O jogador deve guiar a nave evitando os asteróides É um jogo 2D simples, baseado em sprites
  • 28. Construção de um jogo em XNA Basedo na forma como um jogo funciona Todo jogo tem algums comportamentos fundamentais: 1. Inicializa todos os recursos no início Inicializa todas as texturas, modelos, som, etc 1. Continuamente roda o Game Loop: 1. Atualiza a game engine Lê os controladores, atualiza o estado e a posição dos game elements 1. Desenha o ambiente do jogo renderiza os game elements na tela
  • 29. Esqueleto de um jogo XNA partial class Game1 : Microsoft.Xna.Framework.Game { public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } protected override void LoadGraphicsContent(bool loadAllContent) { } protected override void Update(GameTime gameTime) { } protected override void Draw(GameTime gameTime) { } }
  • 30. Inicialização do jogo Texture2D cheeseTexture; SpriteBatch spriteBatch; protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { cheeseTexture = content.Load<Texture2D>("cheese"); spriteBatch = new SpriteBatch(graphics.GraphicsDevice); } } LoadGraphicsContent é chamada quando seu jogo inicializa Ele cria a textura do queijo e carrega uma imagem nele Também cria um SpriteBatch para gerenciar o processo de renderização
  • 31. Usando o Content Pipeline O content pipeline gerencia os recursos Cada recurso recebe um nome O método Load do ContentManager fornece acesso ao recurso Note o uso de generics cheeseTexture = content.Load<Texture2D>(“rockrain");
  • 32. XNA Game Drawing protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.Black); // Desenha o Background spriteBatch.Begin(); spriteBatch.Draw(backgroundTexture,new Rectangle(0, 0, graphics.GraphicsDevice.DisplayMode.Width, graphics.GraphicsDevice.DisplayMode.Height),Color.LightGray); spriteBatch.End(); // sprites spriteBatch.Begin(SpriteBlendMode.AlphaBlend); base.Draw(gameTime); spriteBatch.End(); }
  • 33. Update do Jogo protected override void Update() { foreach (GameComponent gc in Components) { if (gc is Meteor) { hasColision = ((Meteor)gc).CheckCollision(shipRectangle); if (hasColision) { audioComponent.PlayCue("explosion"); Start(); break; } } } UpdateComponents(); }
  • 34. Leitura do Joystick GamePadState padState = GamePad.GetState(PlayerIndex.One); if (padState.IsConnected) { if (padState.DPad.Left == ButtonState.Pressed) { breadX--; } if (padState.DPad.Right == ButtonState.Pressed) { breadX++; } /// repetir para o eixo Y do pão }
  • 35. Leitura analógica do Joystick int padXSpeed = 10; int padYSpeed = 10; GamePadState padState = GamePad.GetState(PlayerIndex.One); if (padState.IsConnected) { breadX += (int) (padState.ThumbSticks.Left.X * padXSpeed); breadY -= (int) (padState.ThumbSticks.Left.Y * padYSpeed); }
  • 36. Xbox LIVE Arcade?? Xbox Live é o lugar para usuários que querem testar e comprar conteúdo no Xbox 360 Xbox Live Arcade contém conteúdo de jogos Alta Visibilidade em qualquer console (Aba ‘Games’) Integração com o Marketplace (Download, compra, licenças) Disponível para assinantes Silver & Gold Banner de promoção de novos títulos Diversos recursos para a retenção e re-play de jogos
  • 37. Introdução a Xbox Live Arcade Usuários & receita continuam a crescer +80 jogos disponíveis atualmente Um ou mais títulos chegam por semana Melhor serviço de download de jogos em um console no mercado Novos Jogos Clássicos Jogos Independentes Conectado aos serviços da Live (MSN)
  • 38. Crescimento do Serviço
  • 39. Audiência Engajada Mais de 45,000,000 de jogos baixados Mais de 80,000,000 de horas de jogo Isso é mais de 9,100 homens-ano Mais de 170,000,000 de partidas Mais de 45,000,000 de Achievements obtidos Mais de 550,000,000 em Gamerscore
  • 40. Títulos mais jogados em 2007 By Users By Average Session By Total Minutes Length 1 TMNT 1989 Arcade Jewel Quest UNO 2 Worms Hardwood Spades Texas Hold ‘Em 3 UNO Catan Worms 4 Castlevania Bejeweled 2 Castlevania Azul – 2007 5 3D Minigolf Adventures Texas Hold ‘Em Bejeweled 2 Laranja – 2006 6 Paperboy Castlevania Geometry Wars Verde - 2005 7 Alien Hominid Zuma Zuma 8 Geometry Wars Soltrio Solitaire Aegis Wing 9 Texas Hold ‘em Worms Catan 10 Heavy Weapon Luxor 2 3D Minigolf Adventures
  • 41. Detalhes de Vendas Downloads e taxas de conversão  Títulos originais conseguem cerca de 350k downloads no primeiro mês  Grandes hits conseguem us$125K em vendas na primeira semana  Games continuam com vendas significantes ao longo de sua vida.
  • 42. Volume de vendas sobre o tempo O gráfico mostra a média de todos os jogos do serviço Primeiros dois meses de vendas correspondem a 35% do volume total Vendas tem uma pequena queda após o sétimo mês
  • 43. Melhores Título (Jul 06 – Jun 07) By Sales Volume By Revenue By Conversion Rate 1 Street Fighter II HF Street Fighter II HF TMNT 1989 2 UNO Worms UNO 3 TMNT 1989 DOOM Texas Hold ‘em 4 Worms Castlevania Street Fighter II HF Azul – 2007 5 DOOM Ultimate Mortal Worms Laranja – 2006 Kombat 3 6 Castlevania Texas Hold ‘em Castlevania Verde - 2005 7 Ultimate Mortal UNO GALAGA Kombat 3 8 PAC-MAN Bankshot Billiards 2 Ultimate Mortal Kombat 3 9 Geometry Wars LUMINES LIVE! PAC-MAN 10 Contra TMNT 1989 DOOM
  • 44. Performance de download de conteúdo para jogos 636000 Downloads pagos 107000 Temas de jogos 360000 Conteúdo de jogos (novas fases, etc.) 170000 Imagens e Fotos Downloads gratuitos 1.055.000 downloads Resumo – Conteúdo não vai torná-lo rico, mas é uma interessante fonte de receita
  • 45. Presença de Mercado
  • 46. Como é um jogo da Xbox LIVE Arcade? Completa experiência de jogo Sem pedaços de jogos separados Não deve ter dependências Pequeno em Tamanho <150 MB (a maioria tem <50 MB) Jogável sem mídia física ou qualquer outra dependência Sem necessidade de manual de instruções “Baixar e jogar” Versão de testes limitada mas divertida Deve oferecer a opção de compra da versão completa Promoção de venda do jogo dentro do jogo é permitida Experiências de jogo associadas a Live Arcade Ranks globais Achievements & Gamerscore Convites entre jogos
  • 47. ‘Aba’ da Xbox Live Arcade
  • 48. Como os jogos chegam a Arcade Desenvolvedor Publisher Arcade Publishing Microsoft Team 3PP Team Gerência do Portfólio
  • 49. E os jogos da comunidade? Revisados pelo membros do Creator’s Club Critérios como violência, sexo, sangue, etc. Critérios Técnicos Formado EXCLUSIVAMENTE pela comunidade
  • 50. Que tipo de games estamos procurando? Nós queremos jogos que …
  • 51. … sejam atraentes “Baixar e jogar” “Divertido para toda a família” “Divertido para todas as idades” Jogos casuais
  • 52. … suportem vários dispositivos Social em sua natureza Controladores mais atrativos Quebrar paradigmas
  • 53. … inspirem Saúde física e mental Ensinem sobre o mundo real Faça você uma pessoa melhor Ajudar os outros
  • 54. …unam as pessoas Jogos sociais Multiplayer Competitivo Cooperativo “Backseat driver” Party Games
  • 55. … Jogos que funcionem entre plataformas
  • 56. O que isso tudo significa para você? Primeiro, negócio é negócio: Se você tem um grande jogo, nos queremos vê-lo Compreendendo o valor de seu serviço para o cliente vai lhe ajudar a criar um melhor jogo para ele Novas áreas de interesse: Simples, Atrativos Suporte a vários tipos de controladores Temas e conteúdo inspirativos Social, Social, Social
  • 57. Guia de Conceito Os 6 Pilares do que queremos em jogos Inovação Jogabilidade Visual Multiplayer & Social Plataformas Global
  • 58. Jogabilidade Tem de caber em 150 MB! Idéias únicas “Baixar e jogar” Permitir pequenas seções de jogo ‘Planejado para a família INTEIRA Opções para crianças Dificuldade progressiva
  • 59. Visual Este jogo merece estar no Xbox 360? Re-Design, não apenas um porte Exemplos: RoboBlitz Small Arms Jetpac Refuelled
  • 60. Multiplayer Xbox LIVE & desenhado para poucos participantes “Join In Progress” Migração de Host Multiplayer Local (2+ em um console) Co-Op Experiências Sociais Offline gameplay & tracking
  • 61. Apelo Global Planeje seu jogo com o mercado global em mente Localização Inglês, Frances, Italiano, Alemão, Espanhol, Japonês, Koreano, Chinês (tradicional), Português (pt-br opcional).
  • 62. Dúvidas? José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional jalf@sharpgames.net www.sharpgames.net Twitter: @sharpgames