Introdução ao XNA e ao
Game Developer Express
José Antonio “jalf” Leal de Farias
Microsoft Most Valuable Professional
Comu...
Quem é esse cara?
 DirectX/XNA MVP
 Diretor Técnico Stairs Studio
   http://www.stairs.com.br
 Criador e Administrador do ...
Agenda
 Introdução
   Xbox Live
   Community Games
   XNA Challenge
   SharpGames
 XNA Game Studio
   Starter Kit
 XNA Fra...
O que é XNA?
XNA Game Studio Express
 Desenhado com acadêmicos, hobistas e
 pequenos desenvolvedores de games
 Ideal para jogos casuais...
XNA Framework
 O XNA Framework é uma plataforma de
   desenvolvimento de jogos baseada em
 .NET que pode ser usada para cr...
Instalação
 .NET 3.0
 Visual Studio 2008 (Qualquer Versão)
 XNA Framework
 XNA Game Studio
Games
                                                        Starter Kits            Code           Content            Co...
Camadas do XNA Framework
   Jogos             Starter Kits            Code                Content     Components




   Ex...
Extended Framework
Games
                                                                    Starter Kits            Code           Content  ...
Games
                                                        Starter Kits            Code           Content            Co...
Games
                                                      Starter Kits            Code           Content            Comp...
XNA Framework Content Pipeline
  Importadores
     Conteúdo de jogo adicionado ao Visual Studio
                     3D Fi...
Core Framework
Games
                                                   Starter Kits            Code           Content            Comps

...
XNA Framework Effects
XNA Framework Effects
Games
                                                       Starter Kits            Code           Content            Com...
Games
                                                Starter Kits            Code           Content            Comps




...
Games
                                                        Starter Kits            Code           Content            Co...
Games
                                                    Starter Kits            Code           Content            Comps
...
Criando Jogos para o Xbox 360
Pré-requisitos e Instalação
 Assinatura da Xbox live
 XNA Creator’s Club (US$99 por um ano)
 Instale o XNA Game launcher a...
Games
                                                   Starter Kits            Code           Content            Comps

...
Criando um jogo
XNA 2D game
“Rock Rain”

   Construção de um jogo
   simples
   O jogador deve guiar a
   nave evitando os
   asteróides
 ...
Construção de um jogo em XNA
Basedo na forma como um jogo funciona

   Todo jogo tem algums comportamentos
   fundamentais...
Esqueleto de um jogo XNA
 partial class Game1 : Microsoft.Xna.Framework.Game
  {
      public Game1() {
         graphics ...
Inicialização do jogo
Texture2D cheeseTexture;

SpriteBatch spriteBatch;

protected override void LoadGraphicsContent(bool...
Usando o Content Pipeline
  O content pipeline
  gerencia os recursos
  Cada recurso recebe
  um nome
  O método Load do
 ...
XNA Game Drawing
protected override void Draw(GameTime gameTime)
{
    graphics.GraphicsDevice.Clear(Color.Black);

    //...
Update do Jogo
protected override void Update()
{
      foreach (GameComponent gc in Components)
      {
         if (gc i...
Leitura do Joystick
GamePadState padState = GamePad.GetState(PlayerIndex.One);

if (padState.IsConnected)
{
    if (padSta...
Leitura analógica do Joystick
 int padXSpeed = 10;
 int padYSpeed = 10;

GamePadState padState = GamePad.GetState(PlayerIn...
Xbox LIVE Arcade??
   Xbox Live é o lugar para usuários que
   querem testar e comprar conteúdo no Xbox
   360
   Xbox Liv...
Introdução a Xbox Live Arcade
Usuários & receita continuam a crescer
+80 jogos disponíveis atualmente
Um ou mais títulos c...
Crescimento do Serviço
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 home...
Títulos mais jogados em 2007
            By Users       By Average Session By Total Minutes
                              ...
Detalhes de Vendas
Downloads e taxas de conversão

 Títulos originais conseguem cerca de 350k downloads no primeiro mês

...
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 corres...
Melhores Título                                    (Jul 06 – Jun 07)
       By Sales Volume            By Revenue         ...
Performance de download de
conteúdo para jogos
 636000 Downloads pagos
   107000 Temas de jogos
   360000 Conteúdo de jogo...
Presença de Mercado
Como é um jogo da Xbox LIVE Arcade?
   Completa experiência de jogo
      Sem pedaços de jogos separados
      Não deve te...
‘Aba’ da Xbox Live Arcade
Como os jogos chegam a Arcade
                 Desenvolvedor



     Publisher
                                  Arcade
  ...
E os jogos da comunidade?
        Revisados pelo membros do
        Creator’s Club
        Critérios como violência,
     ...
Que tipo de games estamos
       procurando?

Nós queremos jogos que …
… sejam atraentes
 “Baixar e jogar”
 “Divertido para toda a família”
 “Divertido para todas as idades”
 Jogos casuais
… suportem vários dispositivos
 Social em sua natureza
 Controladores mais
 atrativos
 Quebrar paradigmas
… inspirem
 Saúde física e mental
 Ensinem sobre o mundo real
 Faça você uma pessoa melhor
 Ajudar os outros
…unam as pessoas
Jogos sociais

 Multiplayer
 Competitivo
 Cooperativo
 “Backseat driver”
 Party Games
… Jogos que funcionem entre
plataformas
O que isso tudo significa para você?

  Primeiro, negócio é negócio: Se você tem um
  grande jogo, nos queremos vê-lo
  Co...
Guia de Conceito
Os 6 Pilares do que queremos em jogos
 Inovação
 Jogabilidade
 Visual
 Multiplayer & Social
 Plataformas
...
Jogabilidade
  Tem de caber em 150 MB!
  Idéias únicas
  “Baixar e jogar”
  Permitir pequenas seções de jogo
  ‘Planejado ...
Visual
Este jogo merece estar no Xbox 360?


Re-Design, não apenas um porte

Exemplos:
 RoboBlitz
 Small Arms
 Jetpac Refu...
Multiplayer
 Xbox LIVE & desenhado para poucos participantes
  “Join In Progress”
  Migração de Host
 Multiplayer Local (2...
Apelo Global
 Planeje seu jogo com o mercado global em mente

 Localização
  Inglês, Frances, Italiano, Alemão, Espanhol, ...
Dúvidas?
     José Antonio “jalf” Leal de Farias
    Microsoft Most Valuable Professional
            jalf@sharpgames.net
...
IntroduçãO Ao Xna  Campus Party
Upcoming SlideShare
Loading in …5
×

IntroduçãO Ao Xna Campus Party

2,399 views
2,315 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,399
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
99
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

IntroduçãO Ao Xna Campus Party

  1. 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. 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. 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. 4. O que é XNA?
  5. 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. 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. 7. Instalação .NET 3.0 Visual Studio 2008 (Qualquer Versão) XNA Framework XNA Game Studio
  8. 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. 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. 10. Extended Framework
  11. 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. 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. 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. 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. 15. Core Framework
  16. 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. 17. XNA Framework Effects
  18. 18. XNA Framework Effects
  19. 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. 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. 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. 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. 23. Criando Jogos para o Xbox 360
  24. 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. 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. 26. Criando um jogo
  27. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 38. Crescimento do Serviço
  39. 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. 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. 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. 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. 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. 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. 45. Presença de Mercado
  46. 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. 47. ‘Aba’ da Xbox Live Arcade
  48. 48. Como os jogos chegam a Arcade Desenvolvedor Publisher Arcade Publishing Microsoft Team 3PP Team Gerência do Portfólio
  49. 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. 50. Que tipo de games estamos procurando? Nós queremos jogos que …
  51. 51. … sejam atraentes “Baixar e jogar” “Divertido para toda a família” “Divertido para todas as idades” Jogos casuais
  52. 52. … suportem vários dispositivos Social em sua natureza Controladores mais atrativos Quebrar paradigmas
  53. 53. … inspirem Saúde física e mental Ensinem sobre o mundo real Faça você uma pessoa melhor Ajudar os outros
  54. 54. …unam as pessoas Jogos sociais Multiplayer Competitivo Cooperativo “Backseat driver” Party Games
  55. 55. … Jogos que funcionem entre plataformas
  56. 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. 57. Guia de Conceito Os 6 Pilares do que queremos em jogos Inovação Jogabilidade Visual Multiplayer & Social Plataformas Global
  58. 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. 59. Visual Este jogo merece estar no Xbox 360? Re-Design, não apenas um porte Exemplos: RoboBlitz Small Arms Jetpac Refuelled
  60. 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. 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. 62. Dúvidas? José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional jalf@sharpgames.net www.sharpgames.net Twitter: @sharpgames

×