|
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.
- XNA 4.0 (versão lançada em 16/09/2010)
Criando um novo projeto
Após ter instalado todas as ferramenstas, chega a hora tão esperada, o desenvolvimento da primeira aplicação XNA.
- No Visual Studio, selecione File –> New –> Project;
- Selecione Installed Templates –> Visual C# –> XNA Game Studio 4.0;
- No painel a direita (lista de templates), selecione Windows Game (4.0)
- Informe um nome para o projeto, no meu caso deixarei o padrão WindowsGame1
- Informe a pasta onde deseja salvar seu projeto (a janela deverá e;star semelhante a figura abaixo);
- Clique em OK.
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.
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.
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.
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.
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
-
12/05/2011 16:00:17 | Vinícius Godoy de Mendonça

Nesse caso, só vendo o que o projeto mono faz:
http://www.monoxna.org/
-
12/05/2011 18:06:01 | Kleber Andrade

Temos outras vantagens também, como a comunidade Microsoft que é muito forte, além da competição Imagine Cup.
-
23/06/2011 11:24:37 |189.13.0.xxx| Christian - XNA Xbox Live Indie Games

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.
-
23/06/2011 11:30:21 | Kleber Andrade

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.
-
02/07/2011 20:37:22 |189.71.196.xxx| Washington

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?
-
02/07/2011 21:35:15 | Bruno Crivelari Sanches

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+
-
03/07/2011 00:55:32 |189.71.196.xxx| washington

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











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.