apostila_xna by B898s5U

VIEWS: 16 PAGES: 26

									UNIVERSIDADE ESTÁCIO DE SÁ

  DESENVOLVIMENTO DE GAMES




       Rio de Janeiro, Dezembro de 2006
“Si vis pacem, pars bellum”
SUMÁRIO

Apresentação                                                                       4
Introdução                                                                         5


Capítulo I – Considerações Iniciais sobre resolução de problemas e revisão
                  dos requisitos básicos de aprendizagem
O Problema das Moedas (PDM)                                                    I–1
O Problema da Velha (TIC TAC TOE)                                              I–2
Instalação do Visual Studio 2005 (C#), do Framework .Net e do SDK DirectX      I–3
Criando seu Primeiro Projeto (Solution)                                        I–4
Revisão de Programação (C#) – Jogo da Velha                                    I–5


                  Capítulo II – Introdução ao Microsoft XNA
O XNA – Conceito do Negócio                                                    II – 1
Os Três Pilares                                                                II – 2
Instalação dos Programas e das Ferramentas do XNA                              II – 3
Criando seu Projeto (Solution) XNA no Visual Studio 2005                       II – 4
Estruturas Elementares de um jogo XNA                                          II – 5
Gerando o Jogo (Building)                                                      II – 6
Tratamento de Erros para o XNA                                                 II – 7


         Capítulo III – Personalização e Distribuição de jogos XNA
Formas de distribuição                                                        III – 1
Conectando e testando em um XBOX 360                                          III – 2


                                 ANEXOS


ANEXO I – Dinâmica de Grupo - BRAINSTORMING                                     A-1
ANEXO II – DirectX
Diferença entre DirectX e SDK DirectX                                         A-2.1
Ferramentas Úteis                                                             A-2.2
     XACT                                                                    A-2.2.1
     DirectX Texture Tool                                                    A-2.2.2
APRESENTAÇÃO

       Quando recebi o desafio de montar um curso e escrever sobre XNA, sinceramente
tremi. Ganhar um espaço para elaborar um curso de Microsoft XNA em uma instituição 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 versão 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 revisão dessa apostila, que,
após 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 ocasião particular muito difícil
– perdi minha avó neste fim de semana (09/12/2006) – fato que não me exime da
responsabilidade de começar a elaborar esse material. Com isso ocupo minha mente,
afinal de contas a mente vazia dos homens sempre causou problemas.

       Agradeço primeiramente a Deus, por permitir que eu esteja realizando obras como
essa na Terra, a minha avó Ernestina (“vóNestina” 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 mãe, ela se enquadra na categoria) e os meus irmãos Alanderson, Wislene e
Giselle, sempre presentes na minha vida.

        Não posso deixar de agradecer também ao Estudante Embaixador da Microsoft
Ricardo Guerra e aos professores Ricardo Portella e Cida Donato cujo apoio foi de grande
valia para a realização deste curso, e incluir o Fabiano, aluno do curso de Games da
instituição, que não mediu esforços (e contas de telefone para mandar e-mails) para a
consolidação do curso.

       Ainda não 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 Técnico em Processamento de
dados, sei alguma coisa sobre o fantástico mundo dos vídeo-games e você certamente
me encontra no e-mail portal@click21.com.br.
INTRODUÇÃO

       O Microsoft XNA é um novo conceito para desenvolvimento de jogos
independentemente de plataforma. Hoje, utilizando XNA é possível gerar jogos para
computadores com sistema operacional Windows e vídeo-game XBOX 360 *.
       Os jogos são cada vez mais complexos, exigindo músicas de alto padrão e arranjos
bem elaborados, gráficos e personagens com movimentos mais realistas e ação dos
jogos, sempre que possível tudo em três dimensões (3D), exigindo todo o “suco” das
máquinas que rodam esses games.
       A nova geração de computadores e consoles têm suportado esses avanços
tecnológicos, mediante grande esforço das empresas que fabricam o hardware para
esses equipamentos.

      Veja a tabela abaixo para evolução 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
      Gênesis (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 conclusões:

      1)     Programar nunca foi tarefa fácil. Estes consoles sempre tiveram suas
      peculiaridades.
      2)     Nem só de programação nasce um jogo. As equipes para criação dos
      recursos implementados nos games são cada vez maiores. Basta ver os créditos
      de qualquer jogo em 3D criado para os consoles, conta-se cada vez mais com
      profissionais distintos para cada tarefa:

            Artes:     Desenhistas,    modeladores,      animadores,    costume-designer,
            historytelleres, arranjadores, musicistas, roteiristas...

            Entretenimento Digital: Programadores, analistas de sistemas, técnicos em
            informática, web-designer, técnicos de rede, técnicos de animação...

            Administração do negócio do Game, Recursos Humanos, Logística,
            Contabilidade, Marketing, Jurídico, Comunicadores Sociais, Historiadores,
            Físicos, Químicos, Sociólogos, etc.

            Motivo: Os Jogos são cada vez mais reais.

      3)    Apesar de tudo, jogos continuam sendo uma grande Máquina de Estados.

      Então, qual é a grande sacada do Microsoft XNA?

        A proposta do Microsoft XNA é ser a ferramenta base que gerencia a máquina de
estados que é um jogo, independentemente de plataforma. É uma forma mais evoluída de
pensar uma engine, porque não fica atrelado a um tipo de jogo ou a uma modalidade
específica.
        A diferença do XNA é que “engines são criadas para programadores”, o XNA é
uma máquina de estados para os profissionais de games, que exige algum nível de
programação, mas exige apenas o suficiente para aplicação dos recursos necessários
para a criação do jogo. Nada mais.
        Resumindo: XNA é um Framework acoplado ao sistema operacional do dispositivo
corrente que interage com a biblioteca gráfica presente (DirectX9.0c), o Framework .Net
(2.0), o Sistema operacional Microsoft Windows e Atores do negócio de Games.
      CAPÍTULO I - Considerações Iniciais sobre resolução de problemas e revisão

                          dos requisitos básicos de aprendizagem



RESOLUÇÃO DE PROBLEMAS

      Para os sistemas de informação, resolver problemas é encontrar a via de uma

situação inicial a um fim desejado. Um simples exemplo é imaginar como chegar de nossa

casa a um teatro desconhecido na hora do espetáculo. Resolver problemas é uma

atividade mental. É aquilo que apresentamos como o “imaginar como”.

MECANIZAÇÃO DE JOGOS

      A idéia de construir máquinas capazes de enfrentar o homem na disputa de jogos

comuns como a dama e o xadrez não é nova, se bem que a sua realização seja

extremamente dificultada pela complexidade da análise sistemática do problema.

      Não serão abordados as questões sobre os jogos de azar, que são 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 créditos

      fim-enquanto



      A categoria que nos cabe são os chamados jogos de astúcia, cujas premissas

são: igualdade de condições entre os adversários no início da partida e igualdade de

oportunidades que ambos podem se valer. A única concessão que se costuma fazer
nesse tipo de jogo é quem dá o lance inicial, e esse privilégio não deve ser decisivo. Se

ambos os adversários forem nivelados, terá probabilidade melhor de vencer aquele que

tiver a melhor estratégia.

      Deve ser considerado também todas as qualidades que a máquina deve ter para

ser considerado um “bom jogador”. Engenho e astúcia são qualidades que a máquina

deve possuir de forma a se portar como um jogador e deve ser substituído pela

meticulosidade com que o equipamento deve analisar cada situação, comparando-a com

uma ou mais situações que já foram apresentadas, retidas em um repertório, filtrando-as

e utilizando para futuras decisões.

      Os jogos de salão como a dama, o xadrez e a velha são de natureza discreta e

podem ser descritos como “seqüências numéricas”, não havendo tanta dificuldade para

escolha de código mais adequado a essa conversão. Por exemplo, basta saber que o

jogo da velha é muito parecido com o “quadrado mágico” e uma das resoluções de

inteligência artificial para sua resolução baseia-se na soma para totalizar o número 15.

                                        2   9      4

                                        7   5      3

                                        6   1      8



ESTRATÉGIAS DE RESOLUÇÃO DE PROBLEMAS

      Há elementos comuns nas maneiras como as pessoas abordam situações

problemáticas. Primeiro geralmente tenta-se alguns movimentos sem muito planejamento,

apenas para familiarização do problema. Se a resolução for trivial evita-se qualquer

empenho sério para tentar analisá-lo.

      Relaxar uma restrição é outra estratégia comum. Quando nos encontramos sem

saída, recuamos a seqüência de jogadas ou fazemos o caminho de volta do labirinto para

ver se era mais fácil ou se resulta ser igualmente difícil. O pensamento humano acredita
que se for possível fazer o caminho inverso os problemas tornam-se de mais fácil

resolução. Procura-se também utilizar os “movimentos proibidos” para ver se é possível

chegar no final do problemas, sendo os mesmos depois substituídos por “movimentos

adequados equivalentes”.

         Após tudo, passamos a conceituar em termos simbólicos. Neste ponto, criamos um

“espaço de problema” no nosso cérebro, temos um modelo mental que poderá ser

convertido para um algoritmo ou Diagrama de Fluxo de Dados e então transformado em

uma solução (ou sugestão de solução) para um problema proposto em Sistemas de

Informação, mais precisamente jogos computadorizados.



O PROBLEMA DAS MOEDAS (PDM)

         Considere dois pares de moedas, de cinco e dez centavos. Trace uma coluna com

um espaço no meio. O problema trata-se de trocar a posição 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;

Restrições:

1) não é permitido andar para trás.



Resolução do Problema das Moedas (PDM)

Monte a árvore lógica de resolução do problema, obtendo-se o seguinte “espaço completo

para resolução do problema das moedas (PDM)”
Classe para resolução
O PROBLEMA DA VELHA (TIC TAC TOE)
INSTALAÇÃO DO VISUAL STUDIO 2005, DO FRAMEWORK .NET E SDK DIRECTX 9c


      A instalação do Visual Studio 2005 Express compreende a instalação do MS
Installer 3, do Framework.NET 2.0, e somente então a instalação 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 aplicações estão incluídas dentro da pasta do Visual Studio 2005 Web.


      Passo 3) Instale o Visual Studio C# 2005 Express


      * Instalação completa, sempre.


Siga o protocolo padrão de instalação da Microsoft, o NNNF (Next, Next, Next... Finish).
Após a instalação, 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:
                                                     Após abrir uma sessão 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. Serão criados os
                                                     arquivos em disco.




                                                     Então você será conduzido à tela de
                                                     código principal do XNA Game
                                                     Studio Express, onde você poderá
                                                     trabalhar o Código Fonte do seu
                                                     jogo.
REVISÃO DE PROGRAMAÇÃO C#


namespace – Define um nome de espaço para o programa atual. Contém classes.




region – diretiva para “separar uma região de código”




Comentários - /* ... */ e //




using – alguém lembra do #include... para o C# mudou e ficou assim
Classes e métodos




Variáveis




Vetores (array)
Ler e escrever a partir da entrada padrão:




Se (condição)




Senão (else)




Fluxo de programa

for(inicio, condição, incremento)




while(condição)
Foreach (para cada)




Listas



Enumerações




Regiões de Código-fonte
Region, expandido




Tratamento de erros
Tratar então com try, catch e finally:
      ANEXO I – Dinâmica de Grupo - BRAINSTORMING



      Objetivo:



      O Brainstorming ou tempestade cerebral, mais que uma técnica de dinâmica de

grupo é uma atividade desenvolvida para explorar a potencialidade criativa do indivíduo,

colocando-a a serviço de seus objetivos.



      Dinâmica para o curso de XNA:



      Pergunta Base:



             “Para que serve um clips, além de juntar burocracia?”




      Colocando um desses problemas, cabe ao monitor, mais ou menos com um leilão,

incentivar os participantes a apresentarem, em poucas palavras, as sua idéias e,

eventualmente, associá-las a outras até que praticamente se esgote o manancial. Com

inúmeras idéias expostas a registradas, deve então o monitor, com auxílio do grupo ir

eliminando umas, aprimorando outras e assim chegar a um resultado prático.
      ANEXO II – DIRECTX

      1) DIFERENÇA ENTRE O DIRECTX E O DIRECTX SDK

      2) FERRAMENTAS ÚTEIS

      2.1) Microsoft Cross-Platform Audio Creation Tool (XACT)

      Uma das principais alterações para a versão 1.0 do XNA GAME STUDIO foi a
inclusão do XACT na instalação do GSE. Até a versão beta do XNA era necessário fazer
o download do DirectX SDK para trabalhar os sons para o seu game.
      Para a execução de todos os Sons do seu game é necessário que o
Programa/Serviço “XACT Auditioning Utility” esteja em execução.




Figura X – Tela Principal do XACT
Fig. XX, Tela do XACT Auditioning Utility (Programa/Serviço) em execução.


      Seqüência para criação de pacote musical:




                                                       `
      Depois,




      2.2) MICROSOFT TEXTURE TOOL

      O Texture tool ainda não vem incluído no XNA GSE 1.0, acompanha o Microsoft
DirectX SDK.
     BIBLIOGRAFIA

       Livros
       1 - PERÚCIA, Alexandre S. DESENVOLVIMENTO DE JOGOS ELETRÔNICOS –
TEORIA E PRÁTICA, Editora Novatec ISBN 85.7522-068 3
       2 - AZEVEDO, Eduardo. DESENVOLVIMENTO DE JOGOS 3D E APLICAÇÕES,
Editora Elsevier / Campus ISBN 85.352-1569-7
       3 - Computadores Analógicos 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

								
To top