SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
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
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
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
O que é XNA?
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
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
Instalação
 .NET 3.0
 Visual Studio 2008 (Qualquer Versão)
 XNA Framework
 XNA Game Studio
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
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
Extended Framework
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
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
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
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 =
Core Framework
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
XNA Framework Effects
XNA Framework Effects
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
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)
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
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
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 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
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
Criando um jogo
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
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
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) {
     }
 }
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
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");
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();
}
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();
}
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
}
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);
}
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
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)
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 homens-ano




Mais de 170,000,000 de partidas



Mais de 45,000,000 de Achievements obtidos



Mais de 550,000,000 em Gamerscore
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
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.
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
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
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
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 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
‘Aba’ da Xbox Live Arcade
Como os jogos chegam a Arcade
                 Desenvolvedor



     Publisher
                                  Arcade
                                 Publishing
     Microsoft                     Team
     3PP Team


                 Gerência do
                  Portfólio
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
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
  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
Guia de Conceito
Os 6 Pilares do que queremos em jogos
 Inovação
 Jogabilidade
 Visual
 Multiplayer & Social
 Plataformas
 Global
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
Visual
Este jogo merece estar no Xbox 360?


Re-Design, não apenas um porte

Exemplos:
 RoboBlitz
 Small Arms
 Jetpac Refuelled
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
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).
Dúvidas?
     José Antonio “jalf” Leal de Farias
    Microsoft Most Valuable Professional
            jalf@sharpgames.net
           www.sharpgames.net
           Twitter: @sharpgames

Más contenido relacionado

Similar a IntroduçãO Ao Xna Campus Party

Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Luciano Condé
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16Gabriel Lima
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight Luciano Condé
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Julian Correa
 
Sistemas de Informações Gerenciais - Aula4
Sistemas de Informações Gerenciais - Aula4Sistemas de Informações Gerenciais - Aula4
Sistemas de Informações Gerenciais - Aula4Leandro Rezende
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
Overview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesOverview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesLuciano Condé
 
.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio
.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio
.NET Core 3.x e ASP.NET Core 3.x - Coders in RioRenato Groff
 
Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus PartyJosé Farias
 
Windows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsWindows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsMarkus Christen
 
Comparativo entre as versões do Enterprise Architect - Sparx Systems
Comparativo entre as versões do Enterprise Architect - Sparx SystemsComparativo entre as versões do Enterprise Architect - Sparx Systems
Comparativo entre as versões do Enterprise Architect - Sparx SystemsSaldit Software
 

Similar a IntroduçãO Ao Xna Campus Party (20)

XNA Framework
XNA FrameworkXNA Framework
XNA Framework
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1
 
Introducao ao .Net
Introducao ao .NetIntroducao ao .Net
Introducao ao .Net
 
Python for Maemo
Python for MaemoPython for Maemo
Python for Maemo
 
ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01
 
Sistemas de Informações Gerenciais - Aula4
Sistemas de Informações Gerenciais - Aula4Sistemas de Informações Gerenciais - Aula4
Sistemas de Informações Gerenciais - Aula4
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
.NET Micro Framework
.NET Micro Framework.NET Micro Framework
.NET Micro Framework
 
Overview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesOverview do Windows Phone 7 Series
Overview do Windows Phone 7 Series
 
.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio
.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio
.NET Core 3.x e ASP.NET Core 3.x - Coders in Rio
 
Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus Party
 
Xamarin plataform
Xamarin plataformXamarin plataform
Xamarin plataform
 
.NET Open Source 2009
.NET Open Source 2009.NET Open Source 2009
.NET Open Source 2009
 
Windows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsWindows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-Pros
 
Comparativo entre as versões do Enterprise Architect - Sparx Systems
Comparativo entre as versões do Enterprise Architect - Sparx SystemsComparativo entre as versões do Enterprise Architect - Sparx Systems
Comparativo entre as versões do Enterprise Architect - Sparx Systems
 

Más de Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

Más de Campus Party Brasil (20)

Wordpress
WordpressWordpress
Wordpress
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 

IntroduçãO Ao Xna Campus Party

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