Apostila de XNA - Estácio

download Apostila de XNA - Estácio

of 26

Transcript of Apostila de XNA - Estácio

UNIVERSIDADE ESTCIO DE SDESENVOLVIMENTO DE GAMES

Rio de Janeiro, Dezembro de 2006

Si vis pacem, pars bellum

SUMRIO Apresentao Introduo Captulo I Consideraes Iniciais sobre resoluo de problemas e reviso dos requisitos bsicos de aprendizagem O Problema das Moedas (PDM) O Problema da Velha (TIC TAC TOE) Instalao do Visual Studio 2005 (C#), do Framework .Net e do SDK DirectX Criando seu Primeiro Projeto (Solution) Reviso de Programao (C#) Jogo da Velha Captulo II Introduo ao Microsoft XNA O XNA Conceito do Negcio Os Trs Pilares Instalao dos Programas e das Ferramentas do XNA Criando seu Projeto (Solution) XNA no Visual Studio 2005 Estruturas Elementares de um jogo XNA Gerando o Jogo (Building) Tratamento de Erros para o XNA Captulo III Personalizao e Distribuio de jogos XNA Formas de distribuio Conectando e testando em um XBOX 360 ANEXOS ANEXO I Dinmica de Grupo - BRAINSTORMING ANEXO II DirectX Diferena entre DirectX e SDK DirectX Ferramentas teis XACT DirectX Texture Tool A-2.1 A-2.2 A-2.2.1 A-2.2.2 III 1 III 2 II 1 II 2 II 3 II 4 II 5 II 6 II 7 I1 I2 I3 I4 I5 4 5

A-1

APRESENTAOQuando recebi o desafio de montar um curso e escrever sobre XNA, sinceramente tremi. Ganhar um espao para elaborar um curso de Microsoft XNA em uma instituio de ensino como a UNESA enobrece qualquer pessoa que realmente se dedica aos jogos. Estou aprendendo muito sobre o Microsoft XNA, que est em sua verso 1. Este curso certamente possibilitar a troca que toda sala de aula pode permitir, os testes, que toda sala de aula exige, bem como os questionamentos sobre as reais necessidades que todo aluno vai fazer, e tudo isso provavelmente exigir uma reviso dessa apostila, que, aps o encerramento do curso invariavelmente dever ser revisada, por serem estes instruendos os alunos precursores de Microsoft XNA no Brasil. Infelizmente estou escrevendo esse material em uma ocasio particular muito difcil perdi minha av neste fim de semana (09/12/2006) fato que no me exime da responsabilidade de comear a elaborar esse material. Com isso ocupo minha mente, afinal de contas a mente vazia dos homens sempre causou problemas. Agradeo primeiramente a Deus, por permitir que eu esteja realizando obras como essa na Terra, a minha av Ernestina (vNestina como carinhosamente a chamava) mulher religiosa e batalhadora, que me ensinou muitas coisas, principalmente por meio de exemplos vivos como sua humildade e sabedoria, a minha Esposa - Ernestina que cuida muito bem de mim, aos meus pais Wilson e Marlene, bem como tia Maria (se existe segunda me, ela se enquadra na categoria) e os meus irmos Alanderson, Wislene e Giselle, sempre presentes na minha vida. No posso deixar de agradecer tambm ao Estudante Embaixador da Microsoft Ricardo Guerra e aos professores Ricardo Portella e Cida Donato cujo apoio foi de grande valia para a realizao deste curso, e incluir o Fabiano, aluno do curso de Games da instituio, que no mediu esforos (e contas de telefone para mandar e-mails) para a consolidao do curso. Ainda no ganho dinheiro com games, mas falta bem pouco... j consigo tomar um refrigerante e games fazem sobrar um qualquer para o cinema com minha esposa. Meu nome Anderson Ferreira, tenho 27 anos, sou Tcnico em Processamento de dados, sei alguma coisa sobre o fantstico mundo dos vdeo-games e voc certamente me encontra no e-mail [email protected].

INTRODUOO Microsoft XNA um novo conceito para desenvolvimento de jogos independentemente de plataforma. Hoje, utilizando XNA possvel gerar jogos para computadores com sistema operacional Windows e vdeo-game XBOX 360 *. Os jogos so cada vez mais complexos, exigindo msicas de alto padro e arranjos bem elaborados, grficos e personagens com movimentos mais realistas e ao dos jogos, sempre que possvel tudo em trs dimenses (3D), exigindo todo o suco das mquinas que rodam esses games. A nova gerao de computadores e consoles tm suportado esses avanos tecnolgicos, mediante grande esforo das empresas que fabricam o hardware para esses equipamentos. Veja a tabela abaixo para evoluo dos consoles: Atari 2600 processador Z80 intel 8 bits Nintendo Entertainment System Processador Z80 intel + PSG 8 bits Master System Processador Z80 intel 8 bits Gnesis (Mega Drive) Processador 68000 (motorola) + Z80 intel 16 bits Super Nintendo (Pesquisar qual o processador do SNES) 16 bits Sega Saturn 32 bits Sony Playstation 32 bits Sega DreamCast 64 bits Nintendo 64 64 bits Xbox (Microsoft) 64 bits Nintendo GameCube 128 bits Sony Playstation 2 128 bits PlayStation III 128 Bits Xbox 360 128 bits

Fig. 1 Microsoft Xbox 360 (Microsoft )

* (Mediante assinatura no XNA Creators Club)

A partir da, chegamos s concluses: 1) Programar nunca foi tarefa fcil. Estes consoles sempre tiveram suas peculiaridades. 2) Nem s de programao nasce um jogo. As equipes para criao dos recursos implementados nos games so cada vez maiores. Basta ver os crditos de qualquer jogo em 3D criado para os consoles, conta-se cada vez mais com profissionais distintos para cada tarefa: Artes: Desenhistas, modeladores, animadores, historytelleres, arranjadores, musicistas, roteiristas... costume-designer,

Entretenimento Digital: Programadores, analistas de sistemas, tcnicos em informtica, web-designer, tcnicos de rede, tcnicos de animao... Administrao do negcio do Game, Recursos Humanos, Logstica, Contabilidade, Marketing, Jurdico, Comunicadores Sociais, Historiadores, Fsicos, Qumicos, Socilogos, etc. Motivo: Os Jogos so cada vez mais reais. 3) Apesar de tudo, jogos continuam sendo uma grande Mquina de Estados.

Ento, qual a grande sacada do Microsoft XNA? A proposta do Microsoft XNA ser a ferramenta base que gerencia a mquina de estados que um jogo, independentemente de plataforma. uma forma mais evoluda de pensar uma engine, porque no fica atrelado a um tipo de jogo ou a uma modalidade especfica. A diferena do XNA que engines so criadas para programadores, o XNA uma mquina de estados para os profissionais de games, que exige algum nvel de programao, mas exige apenas o suficiente para aplicao dos recursos necessrios para a criao do jogo. Nada mais. Resumindo: XNA um Framework acoplado ao sistema operacional do dispositivo corrente que interage com a biblioteca grfica presente (DirectX9.0c), o Framework .Net (2.0), o Sistema operacional Microsoft Windows e Atores do negcio de Games.

CAPTULO I - Consideraes Iniciais sobre resoluo de problemas e reviso dos requisitos bsicos de aprendizagem

RESOLUO DE PROBLEMAS Para os sistemas de informao, resolver problemas encontrar a via de uma situao inicial a um fim desejado. Um simples exemplo imaginar como chegar de nossa casa a um teatro desconhecido na hora do espetculo. Resolver problemas uma atividade mental. aquilo que apresentamos como o imaginar como. MECANIZAO DE JOGOS A idia de construir mquinas capazes de enfrentar o homem na disputa de jogos comuns como a dama e o xadrez no nova, se bem que a sua realizao seja extremamente dificultada pela complexidade da anlise sistemtica do problema. No sero abordados as questes sobre os jogos de azar, que so PROIBIDOS no Brasil, pelo fato dos mesmos basearem-se no algoritmo de rolagem de dados e independentemente da vontade ou discernimento do jogador, conforme algoritmo abaixo:

int dado; currency credito; enquanto (usuario quer jogar o dado? && credito > 0) dado=integer((random * seed) * 6); pague ao dono do jogo para mais crditos fim-enquanto

A categoria que nos cabe so os chamados jogos de astcia, cujas premissas so: igualdade de condies entre os adversrios no incio da partida e igualdade de oportunidades que ambos podem se valer. A nica concesso que se costuma fazer

nesse tipo de jogo quem d o lance inicial, e esse privilgio no deve ser decisivo. Se ambos os adversrios forem nivelados, ter probabilidade melhor de vencer aquele que tiver a melhor estratgia. Deve ser considerado tambm todas as qualidades que a mquina deve ter para ser considerado um bom jogador. Engenho e astcia so qualidades que a mquina deve possuir de forma a se portar como um jogador e deve ser substitudo pela meticulosidade com que o equipamento deve analisar cada situao, comparando-a com uma ou mais situaes que j foram apresentadas, retidas em um repertrio, filtrando-as e utilizando para futuras decises. Os jogos de salo como a dama, o xadrez e a velha so de natureza discreta e podem ser descritos como seqncias numricas, no havendo tanta dificuldade para escolha de cdigo mais adequado a essa converso. Por exemplo, basta saber que o jogo da velha muito parecido com o quadrado mgico e uma das resolues de inteligncia artificial para sua resoluo baseia-se na soma para totalizar o nmero 15. 2 7 6 9 5 1 4 3 8

ESTRATGIAS DE RESOLUO DE PROBLEMAS H elementos comuns nas maneiras como as pessoas abordam situaes problemticas. Primeiro geralmente tenta-se alguns movimentos sem muito planejamento, apenas para familiarizao do problema. Se a resoluo for trivial evita-se qualquer empenho srio para tentar analis-lo. Relaxar uma restrio outra estratgia comum. Quando nos encontramos sem sada, recuamos a seqncia de jogadas ou fazemos o caminho de volta do labirinto para ver se era mais fcil ou se resulta ser igualmente difcil. O pensamento humano acredita

que se for possvel fazer o caminho inverso os problemas tornam-se de mais fcil resoluo. Procura-se tambm utilizar os movimentos proibidos para ver se possvel chegar no final do problemas, sendo os mesmos depois substitudos por movimentos adequados equivalentes. Aps tudo, passamos a conceituar em termos simblicos. Neste ponto, criamos um espao de problema no nosso crebro, temos um modelo mental que poder ser convertido para um algoritmo ou Diagrama de Fluxo de Dados e ento transformado em uma soluo (ou sugesto de soluo) para um problema proposto em Sistemas de Informao, mais precisamente jogos computadorizados.

O PROBLEMA DAS MOEDAS (PDM) Considere dois pares de moedas, de cinco e dez centavos. Trace uma coluna com um espao no meio. O problema trata-se de trocar a posio das moedas de cinco e dez centavos usando dois movimentos simples e seguindo as regras indicadas.

Regras: Movimentos Permitidos: Deslize: N Salto: N N

1) as moedas de cinco andam para a direita; 2) as moedas de dez andam para a esquerda; Restries: 1) no permitido andar para trs.

Resoluo do Problema das Moedas (PDM) Monte a rvore lgica de resoluo do problema, obtendo-se o seguinte espao completo para resoluo do problema das moedas (PDM)

Classe para resoluo

O PROBLEMA DA VELHA (TIC TAC TOE)

INSTALAO DO VISUAL STUDIO 2005, DO FRAMEWORK .NET E SDK DIRECTX 9c A instalao do Visual Studio 2005 Express compreende a instalao do MS Installer 3, do Framework.NET 2.0, e somente ento a instalao do Visual Studio C# propriamente dita. Passo 0) Insira o CD do Visual Studio 2005 Express ou Baixe os Arquivos do Site de Download em www.microsoft.com Passo 1) Instale o Microsoft Installer 3

Passo 2) Instale o Framework .NET 2

* As duas aplicaes esto includas dentro da pasta do Visual Studio 2005 Web. Passo 3) Instale o Visual Studio C# 2005 Express * Instalao completa, sempre. Siga o protocolo padro de instalao da Microsoft, o NNNF (Next, Next, Next... Finish). Aps a instalao, para abrir o XNA Game Studio Express (Visual Studio C# camuflado):

Fig. Tela Inicial do XNA Game Studio Express (Visual C# Express).

CRIANDO SEU PRIMEIRO PROJETO(SOLUTION) NO VISUALSTUDIO 2005 EXPRESS Para criar o seu primeiro projeto siga os passos abaixo: Aps abrir uma sesso do XNA Game Studio Express, escolha file, new project.

Na tela new project, clique no windows game ou XBox 360 game, de acordo com o seu projeto. D o nome ao seu jogo. Clique em Ok. Sero criados os arquivos em disco.

Ento voc ser conduzido tela de cdigo principal do XNA Game Studio Express, onde voc poder trabalhar o Cdigo Fonte do seu jogo.

REVISO DE PROGRAMAO C# namespace Define um nome de espao para o programa atual. Contm classes.

region diretiva para separar uma regio de cdigo

Comentrios - /* ... */ e //

using algum lembra do #include... para o C# mudou e ficou assim

Classes e mtodos

Variveis

Vetores (array)

Ler e escrever a partir da entrada padro:

Se (condio)

Seno (else)

Fluxo de programa for(inicio, condio, incremento)

while(condio)

Foreach (para cada)

Listas

Enumeraes

Regies de Cdigo-fonte

Region, expandido

Tratamento de erros

Tratar ento com try, catch e finally:

ANEXO I Dinmica de Grupo - BRAINSTORMING

Objetivo:

O Brainstorming ou tempestade cerebral, mais que uma tcnica de dinmica de grupo uma atividade desenvolvida para explorar a potencialidade criativa do indivduo, colocando-a a servio de seus objetivos.

Dinmica para o curso de XNA:

Pergunta Base:

Para que serve um clips, alm de juntar burocracia?

Colocando um desses problemas, cabe ao monitor, mais ou menos com um leilo, incentivar os participantes a apresentarem, em poucas palavras, as sua idias e, eventualmente, associ-las a outras at que praticamente se esgote o manancial. Com inmeras idias expostas a registradas, deve ento o monitor, com auxlio do grupo ir eliminando umas, aprimorando outras e assim chegar a um resultado prtico.

ANEXO II DIRECTX 1) DIFERENA ENTRE O DIRECTX E O DIRECTX SDK 2) FERRAMENTAS TEIS 2.1) Microsoft Cross-Platform Audio Creation Tool (XACT) Uma das principais alteraes para a verso 1.0 do XNA GAME STUDIO foi a incluso do XACT na instalao do GSE. At a verso beta do XNA era necessrio fazer o download do DirectX SDK para trabalhar os sons para o seu game. Para a execuo de todos os Sons do seu game necessrio que o Programa/Servio XACT Auditioning Utility esteja em execuo.

Figura X Tela Principal do XACT

Fig. XX, Tela do XACT Auditioning Utility (Programa/Servio) em execuo. Seqncia para criao de pacote musical:

`

Depois,

2.2) MICROSOFT TEXTURE TOOL O Texture tool ainda no vem includo no XNA GSE 1.0, acompanha o Microsoft DirectX SDK.

BIBLIOGRAFIA Livros 1 - PERCIA, Alexandre S. DESENVOLVIMENTO DE JOGOS ELETRNICOS TEORIA E PRTICA, Editora Novatec ISBN 85.7522-068 3 2 - AZEVEDO, Eduardo. DESENVOLVIMENTO DE JOGOS 3D E APLICAES, Editora Elsevier / Campus ISBN 85.352-1569-7 3 - Computadores Analgicos e Digitais 1970. 4 - HARMON, KING. REALIDADE VIRTUAL. Sites HTML da Web 1 www.microsoft.com 2 www.xnaresources.com 3 www.learnxna.com 4 www.sharpgames.net