Desenvolvimento de Jogos com Microsoft XNA
Sempre fui muito fã de games ainda mais para o PC com isso surgiu a curiosidade de entender como funciona nos bastidores o seu funcionamento.
Aqui irei passar um pouco sobre a plataforma de desenvolvimento de games da Microsoft que é utilizada tanto PC quanto para X360.
O que é XNA?
Microsoft XNA é uma Framework, que serve tanto para criar jogos para PCs com Windows, como para o console Xbox 360. Ele vem ser um substituto ao Managed DirectX. A sigla XNA significa XNA's Not Acronymed.
Descrição:
O XNA, por ser uma plataforma de desenvolvimento, é formada por alguns componentes descritos à seguir:
XNA Game Studio: IDE de desenvolvimento, baseado no Visual C# Studio. Assim, até o momento, só é possível desenvolver jogos usando a linguagem orientada à objetos C#. Existem duas versões:
XNA Game Studio Express: versão gratuita e baseada no Visual C# 2005 Express. Ele foi desenvolvido para ser usado por estudantes, desenvolvedores hobbistas e pequenos grupos de desenvolvimento (indie developers), com o intuito de permitir que os usuários desenvolvessem seus próprios videogames;
XNA Game Studio Professional: sem preço definido e data para lançamento ainda;
XNA Framework: conjunto de classes necessárias para se execução de um jogo XNA. Funciona sobre o .NET Framework 2.0 (games para PCs) ou do .NET Compact Framework for Xbox 360 (games para Xbox 360);
XNA Content Pipeline: componente de gerência de conteúdo 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 aplicação em tempo de execução. O Content Pipeline é extensível e permite que o desenvolvedor escreva um conversor para um formato especial ou desconhecido com flexibilidade;
XACT (Audio Authoring Tool): ferramenta para audio designers organizarem seus arquivos de aúdio e efeitos sonoros.
Somente são suportados os formatos WAV e AIF.
Métodos Principais
Como sua plataforma de desenvolvimento funciona sobre a plataforma .NET com C#, não será difícil de quem programa em .NET entender seus pricipais métodos.
Método Initialize()
O método Initialize() é chamado quando o jogo é carregado.
protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); }
Método LoadContent()
O método LoadContent() é chamado sempre que é necessário carregar recursos gráficos.
protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here }
Método UnloadContent()
O método UnloadContent() é chamado sempre que é necessário descarregar os recursos gráficos.
protected override void UnloadContent() { // TODO: Unload any non ContentManager content here }
Método Update(GameTime gameTime)
O método Update(GameTime gameTime) é onde se coloca a lógica do jogo que precisa ser processada, como cálculos.
O objeto gameTime mostra o tempo que passou desde a última chamada para atualização.
protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here base.Update(gameTime) }
Método Draw(GameTime gameTime)
O método Draw(GameTime gameTime) é onde se coloca as rotinas para renderizar, como texturas, fontes e etc.
O objeto gameTime mostra o tempo que passou desde a última chamada para renderização.
O método quando um novo jogo é criado:
protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here base.Draw(gameTime) }
Livros:
Consulte o preço dos livros abaixo:
Fonte:
Wikipédia
Microsoft
Bruno Evangelista
Brismond

