Ponto V!

Home XNA XNA Conceitos e Instalação do XNA 4.0
Kléber de Oliveira Andrade
Conceitos e Instalação do XNA 4.0Imprimir
Escrito por Kleber Andrade

Olá leitores, se você esta lendo este artigo ou é porque já ouviu falar de XNA ou nem sabe o que é, então vamos conhecer um pouco deste framework. Neste tutorial você aprenderá o que é XNA, os requisitos necessários de sistema, o que instalar, como criar um novo projeto e se você deve escolher entre HiDef ou Reach.

O que é XNA?

O XNA (sigla em inglês que significa XNA’s Not Acronymed) é um framework gratuito e robusto com interface amigável desenvolvido pela Microsoft para criar jogos tanto para PC, console XBox 360 e Windows Phone 7. XNA foi projetado pensando nas pessoas que querem fazer seus próprios jogos e acham complicado trabalhar com DirectX, OpenGL e/ou outras APIs. Além disso, é possível encontrar muita coisa pronta feita por outros desenvolvedores para facilitar ainda mais a programação. Mas não pense que é tão fácil usar XNA assim. Então para começar vamos ver como instalar o framework.

Requisitos mínimos de sistema

  • Sistemas Operacionais com Suporte: Windows 7, Windows Vista, Windows XP;
  • Rodar os jogos: placa gráfica que suporte, no mínimo, Shader Model 1.1 e DirectX 9.0c (recomendamos placa gráfica com suporte à Shader Model 2.0, que é exigido por alguns exemplos e kits);
  • Para executar e depurar jogos para Windows Phone, você precisa de uma placa gráfica que suporte, no mínimo, DirectX 10, com suporte WDDM 1.1;
  • Para desenvolver jogos para Xbox 360, você precisa de um disco rígido instalado no seu console Xbox 360;
  • Alguma experiência com C# e programação orientada a objetos;
  • Uma boa idéia;
  • Outros requisitos de hardware para o XNA 4.0 são idênticos aos do Microsoft Visual Studio 2010.

Baixando e Instalando

Faça o download das ferramentas abaixo e instale-as na sequencia apresentada.

  1. XNA 4.0 (versão lançada em 16/09/2010)
  2. Desenvolver para Windows Phone 7 (Tool Kit, Update Janeiro de 2011, Tools Fix)

Criando um novo projeto

Após ter instalado todas as ferramenstas, chega a hora tão esperada, o desenvolvimento da primeira aplicação XNA.

  1. No Visual Studio, selecione File –> New –> Project;
  2. Selecione Installed Templates –> Visual C# –> XNA Game Studio 4.0;
  3. No painel a direita (lista de templates), selecione Windows Game (4.0)
  4. Informe um nome para o projeto, no meu caso deixarei o padrão WindowsGame1
  5. Informe a pasta onde deseja salvar seu projeto (a janela deverá e;star semelhante a figura abaixo);
  6. Clique em OK.

image

Com o projeto aberto, você deve agora compilar o mesmo para ver se a instalação esta funcionando corretamente. Para fazer isso abra o menu Debug -> Start Debugging ou tecle F5. Nesta hora, duas coisas podem acontecer, a primeira é, abri a tela abaixo.

image

Se isto acontecer, significa que esta tudo certo com o seu computador, e ele tem todos os requisitos necessários para você desenvolver jogos com alta definição (HiDef), caso contrário a seguinte janela de erro irá aparecer.

image

Se esta janela de erro aparecer, não se preocupe tanto, ainda temos uma opção, mudar a definição do seu jogo para Reach que é um pouco mais limitado, porém provavelmente irá funcionar em seu computador. Para fazer isso clique com o botão direito do mouse no nome do seu projeto que fica no Solution Explorer (a direita da área) e vá até propriedades. Este procedimento pode ser visto na imagem abaixo.

image

A aba de propriedades do projeto irá aparecer conforme a imagem abaixoe a unica coisa que você deve fazer é mudar o Game profile para Use Reash to acces a limited API set supported bu Windows Phone, Xbox 360, and Windows. Após fazer isso, você já poderá rodar seu programa com sucesso clicando em F5.

image

Escolhendo entre Reach e HiDef

Por padrão, games criados para Windows e XBox360 utilizam a configuração HiDef, enquanto games criados para Windows Phone 7 utilizam Reach. Projetos criados para Windows Phone 7 NÃO podem ser alterados para a configuração HiDef, devido a limitações do hardware dos dispositivos que executam o Windows Phone 7. Isso não quer dizer que você não possa criar jogos em 3D, ou que os jogos criados em Reach são piores graficamente que jogos criados em HiDef. Entretanto, você pode (e, na minha opinião, deve) alterar a configuração de jogos criados para Windows e XBox360 para Reach.

  • Reach como o próprio nome já diz, visa “alcançar” a grande maioria dos dispositivos atuais. Se a sua placa de vídeo for antiga, você provavelmente deve usar Reach.
  • HiDef significa High Definition, ou seja, alta definição. Este profile é para placas de vídeo mais novas.

Para não deixar a explicação muito superficial, segue uma tabela que indica as limitações de cada profile:

Reach

HiDef

Plataformas

Windows Phone 7, Xbox 360 e qualquer computador Windows com uma placa de vídeo com suporte ao DirectX 9 e no mínimo shader model 2.0.

Xbox 360 e qualquer computador Windows com uma placa de vídeo com suporte ao DirectX 10 (ou equivalente, veja abaixo)

Shader Model

2.0 (mas o Windows Phone não suporta shaders customizados)

3.0+ (o Xbox 360 suporta extensões de shader customizadas como vfetch, que não estão disponíveis para Windows)

Tamanho máximo de texturas

2048

4096

Tamanho máximo de cubmap

512

4096

Tamanho máximo de texturas de volume

Não suporta

256

Número máximo de primitivas desenhadas por chamada da função Draw

65535

1048575

Formato do Index Buffer

16 bits

16 e 32 bits

Formato do elemento de Vertex

Color, Byte4, Single, Vector2, Vector3, Vector4, Short2, Short4, NormalizedShort2 e NormalizedShort4

Todos os formatos do Reach mais HalfVector2 e HalfVector

Formato de texturas

Color, Bgr565, Bgra5551, Bgra4444, NormalizedByte2, NormalizedByte4, Dxt1, Dxt3 e Dxt5

odos os formatos do Reach mais Alpha8, Rg32, Rgba64, Rgba1010102, Single, Vector2, Vector4, HalfSingle, HalfVector2 e HalfVector4. Formatos de textura com ponto flutuante não suportam filtragem

Formato de texturas de Vertex

Texturas de vértice não são suportadas

Single, Vector2, Vector4, HalfSingle, HalfVector2 e HalfVector4

Render Targets multiplos

Não suporta

Até 4. Todas devem ter a mesma profundidade de bits. Suporta alpha blending e escrita independente de mascaras por render target

Queries de occlusion

Queries de occlusion

Sim

Blend com alpha separado (Separate alpha blend)

Não suporta

Sim

Blend.SourceAlphaSaturation

Apenas para SourceBlend, não para DestinationBlend

Sim

Número máximo de vertex streams

16

16

Tamanho máximo do stream stride

255

255

Se você estiver criando jogos simples, em 2D principalmente, e não utilizar nada muito complexo, provavelmente o seu jogo funciona em Reach. Defini-lo como HiDef apenas inviabilizaria muitos computadores de rodares o jogo, portanto sempre que criar um projeto jogo (Game ou Game library, de Windows ou XBox360) mude o profile para Reach. Se, durante o desenvolvimento, você receber uma exceção indicando que a funcionalidade X não funciona em Reach, ai sim você deve alterar o seu projeto para HiDef, obviamente somente em projetos Windows e XBox360.

Informações Adicionais

Segue uma lista dos formatos que o XNA suporta:

  • Formatos 2D: DDS, BMP, JPG, PNG e TGA
  • Formatos de Áudio: XAP (projeto de áudio gerado pelo XACT Tool), WAV, MP3 e WMA
  • Formatos 3D: X (DirectX) e FBX (Formato da Autodesk, mas já é suportado por alguns softwares free e pela maioria dos softwares de modelagem comercial)
  • Fontes: SpriteFont (Arquivo XML usado pelo XNA onde você pode descrever as características da fonte usada, como: tamanho etc.
  • XML: Suporta arquivos. XML que podem ser usados para armazenar dados do jogo
  • Shaders: Suporta arquivos .FX que são usados para descrever efeitos na renderização de modelos 3D ou 2D.

Conclusão

Espero que tenham gostado deste tutorial básico, logo viram outros tutoriais no qual iremos desenvolver alguns jogos do início ao fim. Abraços, e até a próxima.

Referências

http://blogs.msdn.com/b/shawnhar/archive/2010/03/12/reach-vs-hidef.aspx

http://blogs.msdn.com/b/shawnhar/archive/2010/07/19/selecting-reach-vs-hidef.aspx


Comentários (10)
  • rafaelguarapa  - Muito bom
    avatar

    Ficou muito bem explicado o artigo e bastante interativo com imagens, ate então não sabia o que era XNA, Microsoft.Net e que c# foi criado pela Microsoft.

    A vantagem dessas ferramentas da Microsoft é que são gratuitas, mas o ruim é que não tem o Download para outros Sistemas Operacionais como Mac e Linux.

  • Vinícius Godoy de Mendonça
    avatar

    Nesse caso, só vendo o que o projeto mono faz:
    http://www.monoxna.org/

  • Kleber Andrade
    avatar

    Temos outras vantagens também, como a comunidade Microsoft que é muito forte, além da competição Imagine Cup.

  • Christian  - XNA Xbox Live Indie Games
    avatar

    Seu portal é bem informativo.
    Há muitos assuntos aqui que são difíceis de encontrar em português e bem explicado.

    Acho que um artigo que faria toda a diferença para comunidade XNA seria algo explicando o passo a passo ou funcionamento da aprovação e venda na XBox Live Indie Games para desenvolvedores brasileiros agora que tem live no Brasil, afinal as informações aqui: http://forums.create.msdn.com/forums/t/28044.aspx?PageIndex=1 são bem interessantes.
    Pequenos jogos bem feitos vender centenas em dias atrás da facilidade da distribuição online pode animar muito as comunidades.

  • Kleber Andrade
    avatar

    Olá Crhistian, realmente é algo interessante em se comentar no portal. Iremos pensar em um artigo para a comunidade logo sobre este assunto, obrigado pela dica.
    Abraços.

  • Washington
    avatar

    Estou começando em XNA e tenho uma grande duvida ainda não sei programar em nada devo aprender primeiro C# ou logo C++?
    Dizem que C++ e mais poderoso só que é mais dificil e que livro de C#/C++ posso comprar?

  • Bruno Crivelari Sanches
    avatar

    Se quer usar XNA, estude então C#.

    Mas se esta aprendendo a programar, não se preocupe tanto com XNA e similares, foque em entender os conceitos básicos, como algoritmos, estruturas de dados, etc.

    T+

  • washington
    avatar

    Pretendo usa XNA para começar talvez depois um Directx é acho que vou começar com C# mesmo. Obrigado pelos posts

  • Juarez
    avatar

    Alguém sabe como funciona a questão da licença do XNA para que eu possa fazer a comercialização de um jogo independente da plataforma (PC/LIVE/WP7) ?

    Obrigado.

  • Anônimo
    avatar

    Eu fiz essas mudanças de grafico e mesmo assim o projeto não roda

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter