Professional Documents
Culture Documents
Esses dois fatos por si só, podem ser razão suficiente para que qualquer
um tenha interesse em aprender XNA e tornar-se um desenvolvedor de
jogos, tentando obter uma fatia do mercado que é mais promissor do
que a indústria de criação de filmes de Hollywood.
Após digerir esses fatos, se você ainda acha que trabalhar como
desenvolvedor de jogos pode ser interessante e valer a pena, então
continue nesse caminho. É provável que com o passar de pouco tempo,
a situação de quantidade de vagas e remuneração mude bastante,
sobretudo em nosso país. Mas é sempre bom pesar os riscos e os
retornos!
O que é XNA?
XNA é uma brincadeira de palavras. A sigla significa “isso não é uma
sigla”. O mundo Microsoft é tão cheio de siglas que eles decidiram
criar um nome que parecesse uma sigla, mas não é, só de
brincadeira.
Mas XNA é muito mais do que isso. O conceito inovador de trazer para o
desenvolvedor padrão o poder de criar seus próprios jogos para o Xbox
360 é uma grande inovação tecnológica, a qual traz muitos esforços da
Microsoft para estabelecer uma comunidade ativa para criadores de
jogos (unindo ambas as comunidades de programadores de jogos para
Windows e para Xbox 360) e também estabelecendo programas em
áreas acadêmicas para dar suporte a instituições que desejam criar
cursos usando consoles Xbox 360 como base.
O grande segredo por trás do sucesso do XNA é que ele é fácil – muito
mais fácil do que qualquer API para console, e também mais fácil do que
qualquer API para Windows, devido ao nível de abstração que ele provê
para detalhes que com os quais você tem que se preocupar em outras
APIs. XNA usa o mesmo ambiente de desenvolvimento integrado (IDE) –
XNA Game Studio Express – e o mesmo framework para
desenvolvimento de jogos tanto para Windows como para Xbox 360, o
que assegura um alto grau de compatibilidade. Contudo, há diferenças
em nas camadas mais baixas. O console Xbox 360 roda uma versão
compacta do Framework DotNet, então você deve ser cuidadoso: nem
todas as funções disponíveis para Windows irão funcionar no Xbox 360.
Vamos fazer uma jornada de volta aos dias do DOS no PC. Quando
programar jogos, demonstrações gráficas, e coisas do tipo no DOS, os
programadores tipicamente tinham que escrever código de baixo-nível
para conversar diretamente com a placa de som, placas gráficas e
dispositivos de entrada. Isso era tedioso e os códigos resultantes eram
candidatos a apresentarem erros porque os fabricantes diferentes
criavam seus hardwares de forma diferente como, interrupções de BIOS,
portas E/S, e bancos de memória – assim, o código poderia funcionar
em um sistema e não funcionar em outro.
Quando não havia hardware gráfico, os jogos ficavam lentos, mas ainda
assim bem flexíveis. Depois, quando a renderização por hardware
tornou-se proeminente, os jogos ficaram mais rápidos, mas eles não
eram mais tão flexíveis fazendo com que todos os jogos parecessem ter
“a mesma cara”. Agora com shaders, a velocidade dos hardwares foi
combinada com a flexibilidade para cada jogo de renderizar e iluminar
seu conteúdo 3D de forma diferente.
Planejando o jogo
Antes de pensar que tipo de jogo você irá criar, você deve escolher seu
público alvo, porque essa escolha definirá a direção para o seu total
esforço de desenvolvimento do jogo.
Embora você possa estar apto a desenvolver jogos por você mesmo, o
desenvolvimento de jogos é sempre mais do que simplesmente código.
Você precisará de: gráficos bonitos, efeitos de som; e você necessitará
criar os níveis do jogo, isso apenas para falar algumas poucas atividades
diferentes em um projeto de jogo. Em um projeto de desenvolvimento
de um grande jogo, e você necessitará de habilidades tais como as que
se seguem:
Antes que você possa codificar seus próprios jogos, você deve instalar
seu ambiente de desenvolvimento. O XNA Game Studio permite que
você crie seus próprios projetos de jogos usando um único ambiente.
Melhor do que isso, ele é completamente grátis.
Primeiramente você ter uma versão do Visual Studio 2005 ou 2008 que
permita que você possa desenvolver programas em C#. Isso é
necessário porque o XNA utiliza o C#.
O XNA requer que o último Service Pack para o Visual Studio esteja
instalado. Vá ao site da Microsoft onde você baixou o Visual C# Express
Edition, e procure pela seção de downloads de Service Packs para o
Visual Studio. Escolha o Service Pack mais atual faça download dele e o
instale no seu computador.
Uma vez feito o download, rode o arquivo de instalação do XNA. Ele fará
uma checagem para saber se você está com o Visual C# Express
instalado com o Service Pack mais atual.
Ao longo da instalação, pode ser que a apareça a janela do Firewall do
Windows. Não fique chateado, o Firewall só está fazendo o trabalho dele
de proteger o seu computador, e ele não tem como saber se o arquivo
que está rodando é um vírus, um cavalo de tróia ou o instalador do
XNA. Diga para ele que está tudo bem selecionando a opção “Yes, I wish
to select these rules to enable”, e marque as duas subopções. Pronto
agora o Firewall ficará mais tranqüilo.
Antes do XNA, essa estrutura de jogo tinha que ser codificada do zero,
então você tinha que se preocupar com muitos detalhes que não
estavam diretamente relacionados com o jogo. O XNA esconde a maioria
dessas complexidades de você. Quando você cria um novo projeto
Window Game, os dois arquivos criados funcionam criando um objeto da
classe Microsoft.Xna.Framework.Game (o objeto Game1), apresentando
o código com os métodos significativos dessa classe que você precisa
sobrescrever, e chamando o método Run, que de fato inicia o jogo.
using System;
namespace WindowsGame2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
}
}
Inicialização do jogo
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = “Content”;
}
}
Você não precisa modificar essas primeiras linhas, ou incluir código
adicional aqui – você pode simplesmente usá-las como estão. Nas
próximas seções veremos detalhes sobre o device e o Content Pipeline,
então você poderá ter uma idéia geral do que está acontecendo por traz
das cenas.
Por agora, tudo que você precisa saber é que criando o objeto graphics
da classe GraphicsDeviceManager, uma janela de jogo é criada para
você, e você utilizará o objeto graphics quando realizar qualquer
operação gráfica. Todas as complexidades sobre consulta e inicialização
de características da camada gráfica 2D e 3D são transparentes para
você.
• Formatos de arquivos 2D: BMP, DDS, DIB, HDR, JPG, PFM, PNG,
PPM e TGA
Por agora, tudo que você precisa saber é por que há duas rotinas de
inicialização; em momentos posteriores você verá em detalhes
exemplos para cada um destes métodos.
Finalização do Jogo
O projeto básico do jogo que você criou inclui uma sobrecarga para o
método UnloadContent. Esse é chamado toda vez que o jogo necessita
liberar algum recurso gráfico que você tenha carregado.
Loop do Jogo
Outro detalhe que merece ser mencionado sobre o método Update é que
ele vem com um código predefinido para terminar o jogo quando o
botão Back é pressionado no controlador do Xbox 360:
if (GamePad.GetState(PlayerIndex.One).Buttons.Back ==
ButtonState.Pressed)
this.Exit();
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
Distribuir um jogo XNA para outros PCs ainda é uma das tarefas que
requer mais atenção do time de desenvolvedores. Para que tudo dê
certo, você tem que instalar três pacotes separados, na máquina que
rodará o jogo, antes de você sentir-se seguro para rodar o executável
do jogo.