GameDev

GameDev #5: Conhecendo o XNA – uma visão geral

Após conhecer as áreas de atuação, profissões e o processo produtivo da indústria de videogames, é chegada a hora de conhecer o leque de t... (por Jones Oliveira em 18/02/2013, via Xbox Blast)

GameDev #5: Conhecendo o XNA – uma visão geral
Após conhecer as áreas de atuação, profissões e o processo produtivo da indústria de videogames, é chegada a hora de conhecer o leque de tecnologias utilizadas pela maioria dos desenvolvedores indies de Xbox 360. A mais importante destas tecnologias é o XNA, cujo foco está sobre os desenvolvedores independentes e pequenas empresas de capital para investimento limitado, mas que não abrem mão de utilizar tecnologia de ponta.


Observando a indústria de videogames, percebe-se que as novidades surgem com uma frequência cada vez maior. Em média, a cada cinco anos surge uma nova geração de consoles, um novo jogo é lançado quase que diariamente, a cada hora surgem rumores sobre alguma nova plataforma ou jogo, cada vez mais empresas entram para o ramo… A indústria simplesmente não para!

Muitos podem pensar, erroneamente, que a evolução da indústria, e consequentemente dos jogos, está atrelada à facilidade cada vez maior de desenvolver jogos, de construir novas plataformas, quando na realidade toda essa produção não passa de uma questão mercadológica, de comércio e faturamento. Embalados pelos lucros e pelas vendas, os jogos estão cada dia mais complexos! Passamos rapidamente dos gráficos 2D para os 3D. Cada nova geração promove um salto artístico significativo: os gráficos são cada vez mais realistas, as trilhas sonoras e os efeitos sonoros fazem inveja a muitos filmes hollywoodianos e os enredos e narrativas, quando bem desenvolvidos, rendem cada vez mais sequências. É um fato que, com todo esse avanço e complexidade, os jogos estão mais difíceis e caros de serem produzidos.

Desconsiderando o grosso dos custos que envolvem o desenvolvimento de um jogo e trazendo as coisas para a realidade do gamer, caso ele queira desenvolver qualquer jogo, por mais bobo que ele seja, terá que desembolsar algo em torno de U$ 15.000,00 para a aquisição de equipamentos chamados de development kits (kits de desenvolvimento) para uma plataforma específica. Esse preço sobe, e muito, se o objetivo for desenvolver para um console que ainda está por vir – lá se vão algo em torno de U$ 80.000,00 do nosso bolso! Fica a pergunta: alguém tem esse dinheiro aí?


Há cerca de um ano um usuário tentou vender um kit de desenvolvimento para a próxima geração de Xbox, conhecida como Durango.
Há cerca de um ano um usuário de codinome "SuperDaE" anunciou no eBay um suposto kit de desenvolvimento para a próxima geração de Xbox, também conhecida como Durango. No entanto, ninguém pôde comprar o aparelho pois, segundo o SuperDaE, a venda foi barrada pela Microsoft.
Muitas pessoas que desejam começar na área de desenvolvimento de jogos sentem-se perdidas com a pergunta: “por onde devo começar?”. É fato que existem muitos cursos técnicos e, em alguns lugares do Brasil, até mesmo de graduação em desenvolvimento de jogos. Também existem várias ferramentas e linguagens de programação para você iniciar seus estudos sobre desenvolvimento de jogos – o que realmente pesa quando chegamos a esse ponto é: “tenho tempo e dinheiro o suficiente para investir em tecnologias que exigirão uma curva de aprendizagem muito grande?”.
Nos últimos cinco anos o governo brasileiro finalmente percebeu a importância dos videogames para a economia e incentivou a vinda de alguns estúdios internacionais para cá. Academicamente, a consequência disso foi o surgimento de mais cursos (técnicos e superiores) destinados à formação de profissionais para atuar nessa indústria. Apesar disso, a realidade ainda deixa a desejar, principalmente se compararmos com as dos cursos de instituições no exterior. Abaixo, uma breve lista de instituições que possuem cursos na área.

Graduação
  • PUC/MG - Tecnologia em Jogos Digitais: http://www.pucminas.br
  • UNICAP/PE - Jogos Digitais: http://www.unicap.br
  • PUC/SP - Tecnologia em Jogos Digitais: http://www3.pucsp.br
  • Senac/SP - Tecnologia em Jogos Digitais: http://www.sp.senac.br
  • Universidade Anhembi Morumbi/SP - Design de Games: http://portal.anhembi.br
  • Universidade Cruzeiro do Sul/SP - Jogos Digitais: http://www.cruzeirodosul.edu.br
  • Estácio de Sá/RJ - Jogos Digitais: http://portal.estacio.br
  • Feevale/RS - Tecnologia em Jogos Digitais: http://www.feevale.br
  • Unisinos/RS - Jogos Digitais: http://www.unisinos.br
Pós-graduação
  • SENAI/PR - Especialização em Jogos Digitais: http://www.pr.senai.br
  • Senac/SP - Games: produção e programação: http://www.sp.senac.br
  • Faculdade CCAA/RJ - Arte 3D para Jogos Digitais: http://www.faculdadeccaa.com.br
  • Faculdade CCAA/RJ - Design e Programação de Jogos Digitais: http://www.faculdadeccaa.com.br
  • Faculdade CCAA/RJ - Game Level Design: http://www.faculdadeccaa.com.br
  • Unisinos/RS - Especialização em Jogos Digitais: http://www.unisinos.br

Em cima desses dois questionamentos, a Microsoft desenvolveu uma iniciativa muito interessante, chamada XNA, que compreende um framework e componentes específicos para o desenvolvimento de jogos para Xbox 360 e PC. Os grandes trunfos do XNA são sua baixa curva de aprendizagem, a facilidade oferecida para desenhar na tela do dispositivo que se está trabalhando e, principalmente, ser totalmente gratuito.

Entendendo o que é o XNA

Visando a disponibilizar as tecnologias de desenvolvimento que antes eram praticamente monopolizadas pelas grandes softhouses da indústria e também atrair pequenas empresas, desenvolvedores independentes e entusiastas, a Microsoft resolveu lançar o XNA em 2006 como uma iniciativa para facilitar e popularizar o desenvolvimento de jogos digitais, quer eles sejam para PC, quer sejam para Xbox 360 ou Windows Phone.
O grande trunfo do XNA é oferecer aos desenvolvedores um ambiente rico e poderoso a um custo baixíssimo.
O grande trunfo do XNA é oferecer aos desenvolvedores um ambiente rico e poderoso a um custo baixíssimo. Esses fatores contribuem para a criação de jogos inovativos e de boa qualidade que são vendidos por valores abaixo da média. Na imagem, Explosionade, vendido a 80MSP.
Algumas das principais características do XNA são oferecer um ambiente de desenvolvimento rico, de fácil aprendizagem e que funciona totalmente em ambiente de execução gerenciado.

Quando falamos de um ambiente de desenvolvimento rico, estamos falando que o XNA nos oferece, por meio do XNA Game Studio integrado ao Visual Studio, um ambiente integrado de desenvolvimento, não havendo a necessidade de utilizar várias ferramentas para executar tarefas que poderiam ser feitas em um lugar só – no caso, o Visual Studio.

O Xbox LIVE Indie Games é o principal hub de distribuição de conhecimento e informações a respeito do XNA para desenvolvedores indie
É de fácil aprendizagem por utilizar a linguagem de programação C#, a qual tem como principal característica a sua similaridade com as linguagens de programação C/C++ e Java, o que diminui bastante a curva de aprendizado para desenvolvedores dessas linguagens. Até para quem nunca programou, C# é extremamente amigável e conta com uma vasta biblioteca que contém todos os pormenores da linguagem, além de uma forte comunidade presente no MSDN – o portal de desenvolvedores da Microsoft. Assim como C#, o XNA conta com uma forte comunidade de estudantes e profissionais, a Xbox LIVE Indie Games – o que facilita mais ainda o aprendizado dessa tecnologia.

O fato de todo o código escrito para os jogos em XNA ser executado em ambiente de execução gerenciado é um dos pontos altos da facilidade de se desenvolver com essa tecnologia. Por utilizar o .NET Framework através do XNA Framework, o desenvolvedor está livre de ter que se preocupar com tarefas “bizonhas” que não fazem parte da ideia, da concepção do seu jogo. Por exemplo, quando se desenvolve jogos sem o apoio de um framework com linguagens de programação como C/C++, muitas vezes o desenvolvedor tem que se preocupar e desenvolver técnicas de otimização de desempenho, de gerenciamento de memória, processamento de gráficos e coisas do tipo, que simplesmente não fazem parte do projeto em si.

A utilização de um framework faz com que o desenvolvedor foque na sua solução, no seu jogo. Essa parte “chata” de escrever linhas de código que serão executadas em níveis muito próximos da máquina fica por conta do framework que, em linhas gerais e de forma bastante simples, pode ser visto como uma biblioteca de instruções pré-estabelecidas e testadas que visam a simplificar o desenvolvimento de um software. Mesmo assim, isso não quer dizer que às vezes você não precise escrever códigos para ajustar ou melhorar alguma coisa, mas isso é extremamente raro, principalmente em pequenos projetos. [Saiba mais sobre frameworks]

Dessa forma, o XNA é uma alternativa bastante atraente para quem está procurando iniciar em desenvolvimento de jogos. Ele oferece todas as ferramentas necessárias, há uma comunidade que oferece suporte à tecnologia e o conhecimento técnico exigido para se iniciar é mínimo e de fácil aprendizado.

Visão geral do XNA

Ao contrário do que acontece num estúdio de desenvolvimento de jogos, em que há a necessidade de programas específicos para desenvolvimento, de máquinas específicas para executar esses códigos e tudo o mais que vem nos kits de desenvolvimento, basicamente o que é necessário para desenvolver em XNA é um computador rodando Windows, o Visual C# Express Edition (gratuito) e o XNA (gratuito) instalados – só isso.

Em linhas gerais, o XNA se organiza da seguinte forma:


XNA Framework

É o principal responsável por simplificar o desenvolvimento de jogos, tanto para Windows, como para o Xbox 360 e para o Windows Phone. A utilização de um framework é que confere um ambiente gerenciado do código escrito em XNA.

No caso do XNA Framework, as instruções foram baseadas no .NET Framework e atendem especificamente às principais rotinas de desenvolvimento de jogos, possuindo várias camadas específicas, as quais discutiremos no próximo artigo.

Para o desenvolvimento de jogos para PCs com Windows, o XNA se baseia na versão comum do .NET Framework. Já para o Xbox 360 e Windows Phone, devido às suas particularidades de arquitetura, a versão compacta, chamada .NET Compact Framework, é utilizada.

Visual Studio

O Visual Studio é o ambiente de desenvolvimento para programar seus jogos com XNA.
Quando se desenvolve alguma coisa em alguma linguagem de programação, pode-se optar por utilizar quaisquer coisas para escrever o seu código – desde um papel e caneta, até o bloco de notas ou um ambiente de desenvolvimento (também conhecidos como IDEs) completo. A grande diferença entre essas formas de desenvolver são as facilidades oferecidas pelos ambientes de desenvolvimento.

O Visual Studio é a principal IDE para desenvolvimento de soluções com tecnologias Microsoft, e o XNA, integrado ao Visual Studio por intermédio do XNA Game Studio, utiliza-se de suas facilidades para deixar o desenvolvimento de jogos mais simples ainda. No Visual Studio, o desenvolvedor é capaz de gerenciar todo o seu projeto, desde os arquivos de códigos até os arquivos de mídia, modelos 3D, engines, além de executar os jogos em busca de erros de programação (debbuging) – que é praticamente o que os kits de desenvolvimento mencionados no início do artigo fazem.

Considerações finais

O XNA é uma excelente alternativa para quem está iniciando em desenvolvimento de jogos. Claro que ele não é a única alternativa gratuita que existe por aí – existem iniciativas com Java, C/C++, Objective C e várias outras linguagens de programação – mas é a mais didática e prática existente justamente por se utilizar de um framework exclusivo para isso e tornar as coisas mais simples de serem entendidas. Para se ter uma ideia, XNA é a principal tecnologia utilizada em cursos de ensino superior em desenvolvimento de jogos nos EUA, ganhando espaço e notoriedade cada vez maiores em instituições brasileiras também.

Ao contrário do que muita gente pode pensar, não são apenas jogos em 2D, simples e bobos, que podem ser desenvolvidos em XNA – pelo contrário. Nele você pode desenvolver jogos totalmente em 3D, com módulos multiplayer online e tudo o mais – tudo isso feito “às custas” do framework! Quem desejar dar uma olhada nas possibilidades de desenvolvimento com XNA pode dar uma olhada nos Starter Kits disponíveis na Xbox LIVE Indie Games.

Bastion

Fez

Skulls of the Shogun

Dust: An Elysian Tail
Você sabia que Bastion, Fez, Skulls of the Shogun e Dust: An Elysian Tail foram todos desenvolvidos em XNA?

Tim Sweeney, fundador da Epic Games, defende o uso de ferramentas que favoreçam a produtividade da equipe.
Algumas pessoas que já programam e/ou desenvolvem alguma solução de software podem apontar que, por ser executado em um ambiente gerenciado, o XNA perde em desempenho para jogos desenvolvidos em linguagens como C/C++. Bem, isso seria verdade há algum tempo, mas deixou de ser um problema com o XNA, que tem todo o seu processamento de baixo nível executado pelas bibliotecas do DirectX! E mesmo que isso fosse um problema, grandes desenvolvedores, como Tim Sweeney (fundador da Epic Games), dizem que “produtividade é tão importante quanto performance” e “nós sacrificaríamos com prazer 10% de nossa performance por 10% de alta produtividade”.

Para você que é curioso, está ansioso para pôr as mãos na massa e já deseja arriscar seus primeiros passos em XNA, poderá encontrar, gratuitamente, todas as ferramentas necessárias para começar os seus estudos na sessão de downloads do Xbox LIVE Indie Games.

É importante perceber que você poderá desenvolver para o seu Xbox 360 gratuitamente também, caso tenha um com disco rígido. Porém, para distribuir/vender seus jogos para outros “caixistas”, é necessário ter uma assinatura da LIVE Indie Games, no valor de US$ 99,00. Como desenvolvedor independente, ou pequena empresa, a Microsoft repassará uma porcentagem de vendas do seu jogo para você, bem como é feito pela Apple com aplicações para o iPhone, por exemplo. Contudo, o objetivo desta coluna não é a de desenvolver jogos para distribuição/venda deles na LIVE, mas sim introduzi-los às tecnologias de desenvolvimento de jogos utilizando o XNA.

Com o artigo de hoje foi possível ter uma visão geral da plataforma que será utilizada para aprender a como desenvolver jogos para PC, Xbox 360 e Windows Phone. No próximo encontro, exploraremos as camadas do XNA Framework para entendermos como ele funciona e quais facilidades nos são proporcionadas por ele na hora do desenvolvimento do jogo. Até a próxima!

Confira a 4ª edição da coluna GameDev
Confira a 6ª edição da coluna GameDev
Revisão: Vitor Tibério 

Escreve para o Xbox Blast sob a licença Creative Commons BY-SA 3.0. Você pode usar e compartilhar este conteúdo desde que credite o autor e veículo original do mesmo.

Comentários

Google
Disqus
Facebook


  1. Galera, recentemente o xna foi descontinuado, naõ usem em ele em novos projetos! Usem a unity que também aceita c#.

    ResponderExcluir
  2. Na realidade o XNA não foi descontinuado, a Microsoft apenas informou que não tem planos de lançar uma nova versão no próximo ciclo de softwares da empresa. O XNA continua valendo e ainda possui suporte - tanto da empresa, quanto da comunidade. É tanto que o XNA está presente no último release do Visual Studio nativamente.

    Além do mais, o propósito da utilização do XNA aqui é apenas didático e ele foi escolhido pela facilidade de aprendizagem.

    ResponderExcluir