O post tem como objetivo apresentar alguns conceitos teóricos sobre o XNA e o MonoGame possibilitando que os interessados em desenvolvimento de jogos conheçam um pouco mais essas poderosas ferramentas de desenvolvimento.
Introdução ao XNA e ao MonoGame – Conceitos teóricos
XNA (Xna Não é um Acrônimo) é uma plataforma de desenvolvimento (Framework) baseada em .NET que tem como objetivo simplificar o desenvolvimento multi-plataforma (Xbox 360 / Windows / Zune / Windows Phone) permitindo que estudantes, amadores, estúdios e editoras desenvolvam jogos melhores e com maior eficiência utilizando a linguagem C#.
O framework do XNA é subdividido nas camadas de jogos, extensões, núcleo e plataforma. No qual os itens em verde são os itens providos pelo XNA, os itens em amarelo são os que você cria e o item em azul é fornecido pela comunidade de desenvolvedores. Veja uma descrição mais detalhada de alguns itens.
- Camada de jogos: o XNA disponibiliza mini-jogos e aplicações prontos para uso/extensão que podem ser usados como destino final (estudo) ou ponto de partida (serem estendidos).
- Camada do Framework (Modelo de aplicação): Faz o serviço chato e trabalhoso para você criando e gerenciamento as janelas, inicia o DirectX (3D, Audio, Input, etc) para uso, gerencia o loop (ciclo) principal de execução e tudo aquilo que você perdia horas fazendo para criar a estrutura inicial para o desenvolvimento de jogos.
- Camada do Framework (Content Pipeline): disponibiliza ferramentas para processar e importar os conteúdos (Texturas, modelos 3D, definições de som, etc) que serão utilizados no jogo.
- Camada do Framework (Graphics): construído em cima do Direct3D, o graphics fornece recursos de renderização de baixo nível, tais como, model, Mesh, Bones, texturas, efeitos e shaders.
- Camada do Framework (Audio): fornece classes para a procura e reprodução de arquivos de sons e vídeos.
- Camada do Framework (Input): torna o tratamento da entrada de dados do usuário mais fácil, disponibilizando suporte para keyboard, mouse, Xbox 360 controller (Gamepad), guitarra, tambores, volantes, pedais, manches, etc
- Camada do Framework (Math e Storage): Disponibiliza bibliotecas matemáticas e de storage visando facilitar a execução dos cálculos e o armazenamento de dados.
- Camada do Framework (Network): fornece meios para efetuar a conexão entre Xbox e PC, conexão local e via Live (Todos os recursos presentes na Live relacionados com conexão)
MonoGame
MonoGame é um framework de criação de jogos multiplataforma (mobile e console) e Open Source desenvolvido por Jose Antonio, baseado no XNA da Microsoft. Desde meados de 2013, o quadro começou a ser estendido para além do XNA versão 4.0 com a adição de novos recursos como RenderTarget3D, o suporte para vários GameWindows e uma nova ferramenta de plataforma cruzada da linha de comandos de construção de conteúdo.
Vídeo explicativo disponibilizado pelo Channel 9
Links interessantes