projeto tcc xna artigo

Download Projeto TCC XNA Artigo

If you can't read please download the document

Upload: jefersonbruno

Post on 02-Jul-2015

453 views

Category:

Documents


0 download

DESCRIPTION

Hewerson Gomes, Marcos Alberto Lopes da Silva

TRANSCRIPT

XNA Framework para desenvolvimento de jogosHewerson Gomes, Marcos Alberto Lopes da Silva Sistemas de Informao Centro Universitrio do Tringulo (UNITRI) Av. Nicomedes Alves dos Santos 4545 38411-106 Uberlndia MG Brasil{hewerson, malopes21}@gmail.com

Abstract. The Framework XNA was officially announced by Microsoft in November of 2006, however, it is known that worked in this project since 2004, the Microsoft XNA Framework in this version 3.1 and this allows us to develop games for Windows (PC), Xbox 360 (Video Game) and Zune (Portable Media Player). The ease of developing games using this framework draws attention and one of the main benefits is the ability to use familiar tools such as Microsoft Visual C # 2005 Express Edition (Free) and MS Visual Studio 2005 or 2008. Resumo. O Framework XNA foi oficialmente anunciado pela Microsoft em Novembro de 2006, porm, sabido que ela trabalhava neste projeto deste 2004, o Microsoft XNA Framework esta na verso 3.1 e nos permite desenvolver jogos para Windows (PC), Xbox 360 (Video Game) e Zune (Media Player Porttil). A facilidade de desenvolver jogos utilizando este framework chama a ateno e um dos principais benefcios a possibilidade de utilizar ferramentas conhecidas tais como, Microsoft Visual C# 2005 Express Edition (gratuita) e MS Visual Studio 2005 ou 2008.

1. IntroduoO objetivo deste artigo despertar nos amantes de jogos a curiosidade de aprofundar seus conhecimentos na construo e na facilidade de desenvolver pequenos projetos, que seja por hobby ou profissionalmente. Existem vrias ferramentas que possibilitam a criao de jogos, escolhi o Framework XNA por ser divertido e estar mais prximo das ferramentas utilizadas para desenvolver programas comerciais. Microsoft XNA um framework desenvolvido pela Microsoft para auxiliar os desenvolvedores no processo de criao de jogos tanto para Windows (PC), Xbox 360 (Video game) e Zune (Media Player Porttil). A primeira verso lanada foi o XNA 1.0 e se deu por volta de novembro de 2006, mesmo no sendo popular entre a comunidade de desenvolvedores o framework j ajudava bastante o programador a criar seus jogos para Windows sem se necessidade de conhecimentos tcnicos sobre DirectX (Interface de Programao de Aplicativos Graficos). Com o passar do tempo a Microsoft fez modificaes considerveis no XNA Framework principalmente no que diz respeito a conexes em rede que antes no existiam na verso 1.0. Atualmente o framework esta na verso 3.1, porm, neste artigo ser trabalhado a verso 3.0. O XNA possui uma rica API (Interface de Programao de Aplicativos) para criao de jogos 3D assim como jogos 2D, alm de permitir a manipulao de som e entrada de dados como teclado, mouse e joystick (XBox 360). Com o framework a interao com recursos grficos, teclado e outros perifricos

ficam mais fceis, ou seja, sem a necessidade de utilizar funes diretas e DLLs (Bibliotecas de Ligaes Dinmicas) do DirectX, a incorporao destes recursos pelo XNA facilita a manipulao de texturas, o que antes devia ser programado com cdigos complexos, agora passa a ser apenas uma linha de cdigo utilizada para que possamos carregar uma imagem sem nos preocuparmos em saber qual a extenso ou como iremos tratar o arquivo. Outro benefcio do framework a compatibilidade do cdigo desenvolvido para ser usado no Windows, Xbox 360 e Zune. As ferramentas para trabalhar com desenvolvimento para PC so distribudas gratuitamente pela Microsoft, basta apenas realizar o download e instal-la em sua maquina. O desenvolvedor pode utilizar tambm de ferramentas profissionais, porm pagas. J o desenvolvimento para Xbox necessrio uma assinatura (licena) junto ao XNA Creators Club anual ou parcial por 04 (quatro) meses para a publicao dos jogos na rede. A iniciativa da Microsoft para facilitar ao mximo o desenvolvimento de jogos vem de encontro a necessidade de entusiastas e at mesmo a outros tipos de desenvolvedores como os profissionais, que buscam a praticidade na criao de seus jogos.

2. O Mundo dos JogosPara as pessoas que gostam de jogos, e mais ainda, gostam de constru-los, ento o momento que o Brasil se encontra est facilitando unir o til ao agradvel. A construo de jogos pode ser agradvel e ao mesmo tempo remunerado, a todo o momento aparecem mais ferramentas que facilitam a construo, em alguns casos sem custos e totalmente de desenvolvimento visual facilitando a auto-aprendizagem. A Abragames (Associao Brasileira das Desenvolvedoras de Jogos Eletrnicos) publicou artigo dia 30/05/2008 sobre a nova poltica para desenvolvimento de jogos no Brasil apresentada pelo Governo Federal: O Brasil tenta desde a dcada de 80 entrar no mercado de jogos eletrnicos e foi em 1992 a inaugurao de duas empresas com foco em games, em 1997 houve aumento expressivo na comercializao fazendo com que em 1999 o recorde de fundao de empresas fosse batido com 21%. Em 2005 os Estados Unidos faturaram US$ 10 bilhes no mercado de jogos. Foi publicado tambm pela Abragames uma pesquisa sobre o mapeamento de crescimento do setor desenvolvimento de jogos nos ltimos 4 (quatro) anos, nesta pesquisa foi enfatizada o crescimento do setor nos ltimos 2 (dois) anos mesmo tendo o mercado interno oprimido pela pirataria, ainda assim podemos ver que os nmeros agradam (Figura 1). O principal vilo no a pirataria, como muitos pensam, e sim os impostos cobrados pelo governo, um exemplo o estado de SP que em 2006 aumentou o ICMS de 7% para 18% em servios de desenvolvimento. Com novas demandas de cursos para este fim as faculdades foram criando especializaes e graduaes, a primeira foi UNICENP em Curitiba, e depois diversas faculdades de SP e RJ. Com isso aumentaram a publicidade vinculando os games a outros produtos, e at dentro dos games.

Figura 1. Abragames Pesquisa 2008

Alguns eventos nacionais so criados especificamente para incentivar o comercio de jogos nacionais, dentre eles: Concurso de jogos eletrnicos Brasileiros com premiao para os ganhadores, Mundo dos Games com workshops, palestras, campeonatos e oficinas. Outros eventos marcantes foram a Conferncia de GD RIO 2005 e a Eletronic Entertainment Expo (E3) que ocorreu em Los Angeles-US recebendo empresas de todo o mundo, inclusive esta feira ocorre todos os anos at hoje. O mercado promissor e dele foi criado nova profisso, o desenvolvedor de jogos ou Design de games, este profissional a cada dia ganha mais espao no mercado nacional e maior reconhecimento no mercado internacional. Aps toda essa anlise para comprovar que criar jogos pode compensar, ser apresentado neste artigo uma ferramenta (Framework XNA) capaz de fazer com que esta criao possa ser divertida e mais simples do que parece.

3. Conhecendo o Framework XNAO Framework XNA um conjunto de classes, ou seja, uma biblioteca com recursos prontos para serem utilizados por cdigo projetado para o desenvolvimento de jogos. Desenvolvido pela Microsoft com o intuito de facilitar a construo e gerenciamento, reduzindo os custos e esforos no desenvolvimento de jogos. Grande parte do cdigo escrito funciona tanto no Windows como no Xbox 360 e o Zune. 3.1. Conceitos O XNA, por ser uma plataforma de desenvolvimento, formada por alguns componentes descritos a seguir: XNA Game Studio: IDE de desenvolvimento, baseado no Visual C# Studio, verso gratuita e baseada no Visual C# 2005 Express. Ele foi desenvolvido para ser usado por estudantes, desenvolvedores hobbistas e pequenos grupos de desenvolvimento com o intuito de permitir que os usurios desenvolvessem seus

prprios jogos; XNA Framework: conjunto de classes necessrias para se execuo do jogo. Funciona sobre o .NET (Dot Net) Framework 2.0 ou mais novo (PCs) ou do .NET Compact Framework for Xbox 360 (Xbox 360); XNA Content Pipeline: componente de gerncia de contedo e artefatos do projeto, tais como imagens (JPG, PNG, BMP, etc), modelos 3D (X, FBX, etc), sonoros (WAV, etc) e dados (XML, etc). Ele transforma os arquivos automaticamente no momento do build em um formato que ser entendido pela aplicao em tempo de execuo. O Content Pipeline extensvel e permite que o desenvolvedor escreva um conversor para um formato especial ou desconhecido com flexibilidade; XACT (Audio Authoring Tool): ferramenta para udio designers organizarem seus arquivos de udio e efeitos sonoros. 3.2. Fluxos e Camadas O fluxo de funcionamento para criao da tela grfica dos jogos representado conforme Figura 2, a forma de interao entre o desenvolvedor e a tela para o jogador.

Figura 2. Fluxo de Inicializao Grfica

Os mtodos Draw e Update podem ser executados at 60x/segundo, cada execuo tratada como um ciclo, aos olhos humanos perceptvel o objeto que est em movimento, porm, durante os ciclos toda a tela refeita, e os tratamentos so efetuados. O desenvolvimento do projeto de jogo pode utilizar as seguintes camadas: Plataforma: Direct3D Controla os Grficos 3D; XACT Controla o udio e possibilita a criao de sons; XINPUT Suporte a dispositivos de entrada (Teclado, Mouse e outros); XContent Suporte a contedo de imagens, vdeos, sprites. Core Framework: Acesso bsico a inicializao de Grficos, udio, Entrada de Dados, Matemtica (lgica) e Armazenamento; Framework Dot.NET 2.0 ou mais atual. Extended Framework: Modelo de Aplicao Comportamento do jogo (inteligncia);

Jogos:

Content Pipeline Gerencia contedos, loadings de texturas, som e matemtica. Starter Kits Modelos com a inicializao bsica dos componentes; Code Cdigo de desenvolvimento; Content Contedo (imagens, sons...); Components Elementos feitos pela comunidade, disponvel para download.

4. Desenvolvendo um JogoO objetivo apresentar, de forma simples, como criar um jogo com as funcionalidades bsicas j disponibilizadas pelo Framework XNA 3.0, j disponvel para download. Enredo: O jogador Heroi deve recuperar todas as jias da rainha sem ser pego pelos adversrios Mmias espalhados pelo mapa utilizando os recursos de movimentao (direita / esquerda / pulo) acionados pelas setas ou joystick, e o efeito de fogo e fumaa (espao) gerando invencibilidade temporria ao Heroi, modelo conforme Figura 3.

Figura 3. Enredo

4.1. Ferramentas para Desenvolvimento Para implementao do projeto apresentado neste artigo necessrio a instalao das ferramentas listadas abaixo: Visual Studio 2008: Projeto pode ser desenvolvido tambm no Visual C#Studio; XNA Framework 3.0: Pode ser baixado no site de downloads da Microsoft, basta pesquisar por XNA e ser apresentado a lista das verses (http://www.microsoft.com/downloads); Starter Kit Plataform: Disponvel juntamente com o XNA Framework 3.0; Framework .NET 3.5: Pode ser baixado no site de downloads da Microsoft. 4.2. Projeto de Jogo Aps instalao das ferramentas deve-se criar o projeto para desenvolvimento do exemplo prtico e simples, utilizando os recursos nativos do framework e entendo os

principais conceitos. 4.2.1. Criando o Projeto Como qualquer aplicao comercial, a criao do projeto segue o mesmo fluxo, aps a inicializao do Visual Studio, selecione a opo para criar novo projeto, e conforme Figura 4., selecione o tipo de projeto (Visual C#), clique em XNA Game Studio 3.0 para aparecer na lista de templates (modelos) o Starter Kit chamado Platformer Starter Kit e selecione o local onde seu projeto ser gravado. Lembrando que este template somente estar disponvel aps instalao do XNA Framework 3.0.

Figura 4. Criando o Projeto

Altere o nome do projeto para RecuperaJoia, ou se desejar utilize o nome que achar mais conveniente. Clique em OK para continuar. Neste ponto o Visual Studio j criou uma Soluo com 3 (trs) projetos: RecuperaJoia: contendo todo o contedo para publicao em PCs; Xbox 360 Copy of RecuperaJoia: para publicao no Xbox 360; Zune Copy of RecuperaJoia: para publicao no Zune.

Os arquivos gerados so compartilhados nos projetos, qualquer alterao j estar publicada para as 3 verses, somente em casos de utilizao de recursos mais complexos o desenvolvimento deve ser especfico. Neste ponto o jogo j pode ser executado, isso mesmo, o Starter Kit fornece toda a estrutura para inicializao grfica, controle das teclas, som e regras de coliso. Durante os prximos passos sero apresentados alguns recursos a fim de exemplificar a facilidade de se criar a sua prpria histria. 4.2.2. Definindo as Classes e Contedos O projeto composto por classes contendo a inteligncia e contedos, sejam grficos ou sons, estes artefatos so utilizados durante execuo do jogo (Figura 5). Alguns artefatos foram criados e podem ser baixados junto com os fontes do projeto em estudo neste artigo, pela link na Internet disponibilizado no item 4.3. (ExplosionParticleSystem, Particle, ParticleSystem ,SmokePlumeParticleSystem).

Figura 5. Classes e Contedos

A seguir ser apresentado a funcionalidade dos artefatos envolvidos no projeto: Program.cs: responsvel pela inicializao do jogo, a primeira linha de cdigo a ser executado est associado nesta classe, a instncia criada da classe PlatformerGame (herana da classe Game) responsvel por todo o controle do jogo, a classe Game faz parte do framework e possui o mtodo Run. PlatformerGame.cs: responsvel pela inicializao grfica, carga de contedos pblicos e desenho da tela grfica. Em destaque os principais mtodos: PlatformerGame: construtor da classe, responsvel pela inicializao da tela grfica (GraphicsDeviceManager), definio de acesso ao contedo (imagens e sons) e ajuste do tempo de atualizao da tela (Frame Rate = 30 para Zune e 60 para PC e XBox360); LoadContent: carrega contedos de uso geral, objetos grficos, sons, fonte para escrita em tela (Figura 6). Neste mtodo inicializado a msica de fundo e as imagens utilizadas na carga do mapa.

//carrega conteudo principal para utilizar durante o jogo protected override void LoadContent() { //cria objeto para desenhar imagens na tela (texturas) spriteBatch = new SpriteBatch(GraphicsDevice); //carrega fonte de texto hudFont = Content.Load("Fonts/Hud"); //carrega imagens winOverlay = Content.Load("Overlays/you_win"); ...

Figura 6. LoadContent

Update: este mtodo sobreposto pela classe Game (Figura 7), ou seja, aps a primeira execuo ele chamado continuamente.

//loop para ler o teclado e executar rotinas programadas no mapa protected override void Update(GameTime gameTime) { HandleInput(); level.Update(gameTime); base.Update(gameTime); }

Figura 7. Update

HandleInput: mtodo responsvel pelo controle das teclas pressionadas e pela interao com o Joystick, neste mtodo foi inserido manualmente o cdigo para aceitar a tecla ESC para sair e a tecla UP para continuar o jogo (Figura 8).

//responsavel por capturar os eventos do teclado ou joystick private void HandleInput() { KeyboardState keyboardState = Keyboard.GetState(); GamePadState gamepadState = GamePad.GetState(PlayerIndex.One); //sai do jogo quando pressionado Back no joystick ou tecla ESC if ((gamepadState.Buttons.Back == ButtonState.Pressed) || (keyboardState.IsKeyDown(Keys.Escape))) Exit(); bool continuePressed = keyboardState.IsKeyDown(Keys.Up) || gamepadState.IsButtonDown(ContinueButton); ...

Figura 8. HandleInput

LoadNextLevel: mtodo responsvel por identificar e carregar os mapas que esto criados na pasta de contedo dos mapas (HighResolutionContent\Levels), isso torna o desenvolvimento dinmico pois este mtodo tem a inteligncia de identificar qual o prximo mapa e, se no encontrar, finaliza (Figura 9).

//metodo para carregar o conteudo do mapa, e descarrega anterior private void LoadNextLevel() { ... //loop para buscar mapas while (true) { //busca o proximo, conforme sequencia numerica dos mapas .TXT levelPath = String.Format("Levels/{0}.txt", ++levelIndex); levelPath = Path.Combine(StorageContainer.TitleLocation, "Content/" + levelPath); if (File.Exists(levelPath)) break; //verifica se existe pelo menos um mapa if (levelIndex == 0) throw new Exception("Nenhum mapa encontrado."); //se no encontrar proximo mapa inicia novamente no 0 //levelIndex = -1; throw new Exception("Jogo acabou."); } ...

Figura 9. LoadNextLevel

Draw: mtodo sobreposto pela classe Game, ou seja, aps a primeira execuo ele chamado continuamente (Figura 10), responsvel por gerar imagens na tela executado 60 frames/segundo para PC, XBox360 e 30 frames/segundo Zune.

//metodo para desenhar a tela protected override void Draw(GameTime gameTime) { //limpa a tela virtual graphics.GraphicsDevice.Clear(Color.CornflowerBlue); //inicializa metodo de impressao da imagem na tela virtual spriteBatch.Begin(); //desenha a imagem na tela virtual level.Draw(gameTime, spriteBatch); //desenha os textos na tela virtual DrawHud(); spriteBatch.End(); //transfere a tela virtual de uma vez para a tela do usuario base.Draw(gameTime); }

Figura 10. Draw

DrawHud: o conceito deste mtodo conhecido, Draw significa desenha e HUD (Heads-Up Display) significa informaes a frente da tela. O objetivo imprimir na tela sobre demais objetos as informaes de tempo, pontuao e mensagens. Neste mtodo foi includo logo abaixo da mensagem Pontos o seguinte cdigo: spriteBatch.DrawString ( hudFont, "Pressione ESC para sair", hudLocation + new Vector2(0.0f, timeHeight * 2.4f), Color.Blue).

Tile.cs: responsvel pela definio da coliso dos blocos utilizados como base para o movimento do Heroie das Mmias pelo cho, trs tipos definidos: Slido, no possvel atravessar por dentro do bloco; Inslido, pode atravessar por dentro e no permite ao Heroi andar por cima; Plataforma, pode atravessar por dentro e permite ao Heroi andar por cima. RectangleExtensions.cs: responsvel pela validao de retngulos e coliso de transposio entre os objetos criados. Player.cs: responsvel pelas definies e caractersticas do Heroi, nesta classe criado os objetos de animaes e sons para os eventos de quando ele est em movimento, parado, pulando, celebrando e morte. ajustada tambm a velocidade de todas as animaes, a textura (imagem conforme Figura 11) e os udios so carregados dos Contents, classes de contedos geradas no projeto. Outro ponto importante gerado nesta classe a fsica posta sobre o personagem, quando acionado o pulo em movimento ou parado, o mtodo ApplyPhysics responsvel por esta dinmica, calcula a acelerao e se est no ar ou no cho. Os mtodos Draw e Update so utilizados nesta classe com o mesmo conceito utilizado na classe PlatformerGame, no mtodo GetInput responsvel pela interao com o usurio foi alterado a tecla SPACE de pulo para fogo. E por ultimo a cada ciclo executado pelo Update chamado o mtodo GetInput, ApplyPhysics e HandleCollisions para tratar as colises dos objetos. Mesmo alterando a imagem do Heroi que esta associada aos contedos, esta alterao no afeta a relao com os demais recursos.

Figura 11. Alterando o Heroi

Level.cs: responsvel por montar o mapa com as imagens de fundo, os blocos, os personagens e seus atributos (em movimento, parado, etc), as jias, registro dos pontos coletados, tempo de jogo e as colises entre os objetos. A distribuio dos objetos feita conforme design do mapa (Figura 12), a definio feita em arquivos texto (TXT), facilitando a criao e manipulao dos objetos. Os objetos so dispostos conforme legenda abaixo: [ . ]: espao em vazio; [ X ]: sada do mapa; [ G ]: Jia; [ - ]: bloco plataforma; [ # ]: bloco slido ; [ A D]: Mumias; [ 1 ]: posio de inicio do Heroi;

.................... .................... ..........X......... .......######....... ..G..............G.. ####..G.G.G.G....### .......G.G.GCG...... ......--------...... ....-...........-... .................... .G.G............G.G. ####............#### .................... .1.................. #################### Figura 12. Mapa level 2

Gem.cs: responsvel por controlar e desenhar as Jias distribudas no mapa (Figura 13), quando o Heroicolide com a jia executando o mtodo OnGemCollected dentro do Level.cs que por sua vez retira o objeto da tela e chama o mtodo OnCollected desta classe para executar o som. O efeito de onda criado por clculos matemticos no mtodo Update, durante a sequncia de montagem das imagens na tela o sistema cria cada objeto com seus atributos especficos inclusive a posio na tela.//atualiza posio do objeto public void Update(GameTime gameTime) { //variaveis de controle - altura, variao e sincronismo const float BounceHeight = 0.18f; const float BounceRate = 3.0f; const float BounceSync = -0.75f; //matematica logica para criar o efeito de onda //altera a coordena X das joias em sequencia com a prxima double t = gameTime.TotalGameTime.TotalSeconds * BounceRate + Position.X * BounceSync; bounce = (float)Math.Sin(t) * BounceHeight * texture.Height; }

Figura 13. Update Gem

Enemy.cs: responsvel pelas definies e caractersticas dos Inimigos possui caractersticas parecidas com a classe do Heroi, nesta classe criado os objetos de animaes de quando est em movimento ou parado. A textura (imagem conforme Figura 14) para as animaes so carregadas dos Contents, classes de contedos geradas no projeto. Os mtodos Draw e Update so utilizados nesta classe com o mesmo conceito utilizado na classe PlatformerGame. A inteligncia dos movimentos dos inimigos, pelo mapa, est codificado no mtodo Update, verificado se est em movimento calculando, se houve a finalizao dos blocos do cho, se houve coliso com outros blocos ou fim do mapa.

Figura 14. Content Enemy Run

RectangleExtensions.cs: responsvel pela validao de objetos em crculos e coliso de transposio entre os objetos criados. AnimationPlayer.cs: controla as animaes criadas para o Heroi, esteja ele em movimento, parado, pulando, celebrando ou morrendo. A cada ciclo executado (60frames/segundo) mtodos so executados para calcular qual imagem deve ser apresentada conforme a animao definida, a velocidade de apresentao destas imagens muito rpida a ponto de ser imperceptvel pelo olho humano o efeito de apagar a imagem anterior e atualizar para a nova. Pode-se dizer que toda a tela visvel pelo usurio refeita 60 vezes por segundo. Animation.cs: esta classe responsvel por manter em objeto a imagem recuperada no Content guardando qual frame foi o ultimo frame apresentado. Content HighResolutionContent: possui todo o contedo referente a apresentao grfica, para o projeto foi definido da seguinte forma: Backgrounds: contm imagens utilizadas para montar o fundo do jogo; Fonts: contm a configurao da fonte utilizado na apresentao de texto; Levels: definio do layout dos mapas, podendo ser criado novos mapas simplesmente adicionando novos arquivos TXT; Overlays: so imagens com objetivo de apresentar mensagens e de interao com o jogador (voc morreu, voc perdeu, voc ganhou) ; Sprites: contm as imagens para criar os movimentos do Heroi, dos Inimigos e das jias, so arquivos PNG que possibilitam utilizar a transparncia de fundo, facilitando sobreposio de imagem; Tiles: contm as imagens da placa de sada e dos blocos utilizados para montar o mapa, a Level.cs utiliza os blocos aleatoriamente para misturar as cores. Content SharedContent: guarda todo o contedo referente aos sons, para o projeto foi criado pasta nica (Sounds), possui efeitos sonoros como msica de fundo, som de final de mapa, coleta da jia, quando o jogador cai, quando o jogador pula, quando o jogador morre, os contedos so acessados pelas classes detalhadas anteriormente. Os Contents podem ter a nomenclatura definida pelo desenvolver, os nomes apresentados foram gerados automaticamente pelo framework. Particle.cs e ParticleSystem.cs: possui classes responsveis por criar objetos com base em texturas selecionadas, possibilitando gerar movimentos utilizando frmulas matemticas para simular a fsica, a posio, velocidade e rotao so atributos especficos para gerar os efeitos. Estes objetos so sincronizados com o mtodo Update para que durante todo o ciclo de montagem da tela os efeitos sejam gerados. ExplosionParticleSystem.cs: responsvel por gerar as caractersticas especificas para o efeito gerado, nesta classe definido o valor dos atributos especficos para gerar o fogo. SmokePlumeParticleSystem.cs: igual ao item anterior, porm, responsvel pela definio dos atributos especficos para gerar a fumaa. 4.3. Artefatos de instalao Para executar o jogo na mquina do usurio, deve-se garantir que tenha instalado na mquina o Dot Net 3.5 e o XNA Framework 3.0, o Visual Studio 2008 possibilita ao desenvolvedor gerar o pacote de instalao incluindo todas suas dependncias.

O projeto apresentado neste artigo pode ser baixado (48mb) pelo link: Google Code http://code.google.com/p/xnaplataforma/downloads

5. Consideraes FinaisO desenvolvimento de jogos no Brasil est em ascendncia e as faculdades j esto incluindo formao especifica para esta rea, a tecnologia est disponvel para qualquer pessoa que deseja criar jogos, seja por hobby ou profissionalmente. A facilidade de utilizao do Microsoft XNA Framework vem de encontro com as necessidades de termos tecnologias padronizadas, de fcil utilizao e com baixo custo. Com esta ferramenta possvel construir projetos profissionais com qualidade de nvel internacional, vrias empresas esto investindo, proporcionando cursos e campeonatos nacionais com altas premiaes. O volume de informaes disponveis sobre o assunto ajuda na especializao, porm, ainda existe dificuldade em encontrar materiais para estudo em portugus. Outro dificultador a pouca disponibilidade de livros nacionais sobre o assunto, a demora de entrega quando importado, gera insatisfao e at mesmo o desinteresse do iniciante ao mundo dos jogos. Referncias Bibliogrficas Carter, Chad (2007) Microsoft XNA Essentials - Graphics and Game Programming for Xbox 360 and Win, SAMS, 1 edio Cawood, Stephen (2007) Microsoft XNA Game Studio Express Greators Guide, OSBORNE - MCGRAW-HIL, 1 edio Jos, Luciano (2008) Ganhando Desempenho em jogos com XNA, em Portugus. Disponvel em : http://www.sharpgames.net/Artigos/tabid/54/Default.aspx Lobo, Alexandre S.(2008) Beginning XNA 2.0 Game Programming, aulas XNA, em portugus. Disponvel em: http://www.alexandrelobao.com/Jogos/Alexandre_LobaoPalestras_Jogos.aspPenha, Andr Gustavo G. (2008) A Indstria Brasileira de Jogos Eletrnicos, em portugus. Disponvel em: http://www.abragames.org/docs/Abragames-Pesquisa2008.pdf Aguilar, Daniel (2007) Microsoft XNA Framework post, em portugus. Disponvel em: http://farraposdispersos.blogspot.com/2007/11/microsoft-xna-framework.html Katayama, Fernando (2008) Gerente da Microsoft mostra como o XNA fcil, em portugus. Disponvel em: http://games.terra.com.br/interna/0,,OI3198011-EI1702,00Gerente+da+Microsoft+mostra+como+o+XNA+e+facil.html Amaral, Bruno (2008) Introduo ao Microsoft XNA - Desenvolvendo Jogos em casa, em portugus. Disponvel em: http://brunoamaral.wordpress.com/2008/06/03/desenvolvendojogos-com-xna-microsoft-parte-1/ Jos, Luciano (2009) Entrevista com as 3 equipes vencedoras do 3 XNA Challenge Brasil, em portugus. Disponvel em: http://www.sharpgames.net/Home/tabid/36/Default.aspx