Game engine: FlatRedBall (XNA)
FlatRedBall é um framework gratuito feito em C# e XNA para desenvolvimento de jogos para PC, XBLA (Xbox Live Arcade), Silverlight e Windows Phone 7. Além disso, a FlatRedBall possui um conjunto de softwares chamado Glue, que tem como objetivo abstrair o usuário da programação do framework oferecendo ferramentas visuais.
Eu usei o framework da FlatRedBall no meu** TCC da pós-graduação**, o Oniro, e no geral foi uma experiência ótima! Eles possuem um fórum com um pessoal que sempre ajuda nas dúvidas, principalmente o criador da FlatRedBall. Eu escolhi utilizar apenas o framework ao invés do Glue, pois se usasse o Glue teria que aprender como utilizar seus softwares, e com a minha experiência prévia de C# e XNA apenas o framework foi suficiente.
Existem muitas features legais no framework da FlatRedBall, com destaque para o sistema de gerenciamento de screens (telas) que é muito fácil de usar e funciona bem. Só esse sistema de screens já fez valer a pena utilizar a FlatRedBall, pois reduziu muito o trabalho de programar coisas básicas (porém úteis). Outros destaques são as classes de Sprites e Animação, que também são muito completas e permitem a criação e controle de animações utilizando conceitos similares ao Flash, e a classe de Física, que só deixou um pouco a desejar por que senti falta de coisas como detecção de colisão por pixel, por exemplo, que ainda estavam em desenvolvimento.
Há um ano atrás, quando usei a FlatRedBall, a sua documentação já era muito boa e objetiva, hoje sua wiki está mais completa. E, se precisar de exemplos e demos, existe o GlueVault, site dedicado a códigos feitos utilizando o framework e o Glue.
A limitação de usar XNA/C# e publicar jogos apenas para plataformas da Microsoft não é tão ruim. Acho que o mais importante que aprendi utilizando a FlatRedBall foi como sua arquitetura funciona, principalmente o gerenciamento de screens. Este tipo de conhecimento pode ser aplicado em outros projetos, inclusive feitos com outras tecnologias e linguagens.
É importante entender que a FlatRedBall utiliza os recursos do XNA como base, então é como seu seu framework complementasse o framework do XNA, tornando a vida do programador mais fácil. Existem outros frameworks que podem ser utilizados com o XNA, e também há a possibilidade de fazer o jogo inteiro apenas com o XNA, você apenas terá mais trabalho para programar coisas básicas, como efeitos relacionados à Física ou Animações, por exemplo.
A FlatRedBall é um framework bem fácil de utilizar, mesmo para quem nunca programou em C# e usou XNA. Sua arquitetura e conceitos são bem fáceis de entender e usar. Outro ponto legal é que se você fizer um jogo com a FlatRedBall, ele pode ser incluído no site oficial da engine, o único requisto é ter uma splas no início do jogo com o logo da FlatRedBall. O Oniro está lá no site deles, entre os jogos para PC.