Como os jogos são baseados em muitos subsistemas diferentes, como gráficos (DirectX, OpenGL, ...), som (OpenAL, Ogg Vorbis, ...) ou física (colisões, ...), quais bibliotecas você sabe que são úteis para desenvolvimento de jogos em C # e quais benefícios eles oferecem?
58
Obviamente, existe o XNA da própria Microsoft: http://creators.xna.com/pt-BR/ Os jogos feitos com o XNA funcionam no Windows e (via clube dos criadores) no Xbox360. Eu acho que isso é perfeito para se molhar no desenvolvimento rápido de jogos. Ainda não estou com os pés molhados no XNA, por isso ainda não posso julgá-lo. Mas, olhando de fora, parece a melhor coisa desde o pão fatiado. Claro, você não pode fazer tudo com isso. Mas você pode criar protótipos rápidos e jogos de qualidade indie e além.
Outra biblioteca é o SlimDX - http://slimdx.org/, que alguns podem dizer que é mais próxima do metal / realidade, se você não quiser trabalhar com o XNA. Portanto, ótimo para fazer prototipagem rápida - especialmente se o seu desenvolvimento principal de jogos for C ou C ++. Além disso, ótimo para fazer ferramentas.
fonte
Há também uma porta do SDL da biblioteca C para .NET, SDL.NET . Pessoalmente, eu usaria o XNA em C # porque é apenas uma biblioteca bem organizada, muito personalizável e também para iniciantes.
fonte
Isenção de responsabilidade: A recomendação a seguir pode ou não ser tendenciosa devido ao meu envolvimento pessoal no desenvolvimento deste mecanismo.
Duality é um mecanismo de jogo 2D extensível que vem com um sistema de edição WYSIWYG. Visão geral rápida:
Caso queira experimentar, você pode baixar diretamente a versão binária mais recente ou compilá-la usando o código-fonte do GitHub . Para obter mais informações, uma visita ao site de informações e aos fóruns da comunidade pode valer a pena. Basta seguir os links do site de informações que incluí acima.
fonte
BulletX é uma porta 100% C # da Bullet Physics, que pode ser usada com o XNA.
fonte
No lado das ferramentas, uma biblioteca útil incrível é o " Managed Extensibility Framework ", que agora faz parte do .NET 4.0. Ele permite que você crie plug-ins ou a descoberta automática de instâncias de classes facilmente, ridiculamente, o que é muito útil para suas ferramentas.
fonte
O maior (e mais comprovado) até hoje é o framework XNA. Você pode até tirar proveito do XNA para criar seus conjuntos de ferramentas. O benefício é que você possui uma estrutura que inclui as bibliotecas que você precisa (física, som, gráficos) agrupadas em um pacote e a grande vantagem é que, se você fizer algo realmente bom, poderá tentar bombear para o XBLA.
fonte
O XNA é uma biblioteca bastante grande para PC / Xbox360, manipulando gráficos, som, entrada etc.
fonte
O Tao Framework (usado neste livro que achei bastante útil: programação de jogos em C # para criação de jogos sérios ), que envolve o OpenGL e muitos outros recursos úteis de programação de jogos (acessíveis via C #), vale uma olhada. No entanto, ele foi substituído pela Open Toolkit Library (OpenTK), mencionada em outra resposta. Acho estranho que o livro use o Tao Framework em vez do OpenTK, considerando que o Tao está inativo há cerca de 2 anos (e o livro é novo em folha). Ainda assim, uma estrutura útil que vale a pena conferir.
fonte
Não é exatamente o que você pediu, mas o Unity é um mecanismo de jogo que suporta scripts em c #
fonte
O AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) é uma boa biblioteca / mecanismo orientado a protótipo, construído no XNA, se você estiver procurando por algo mais de alto nível.
fonte
Considero o SFML.Net uma ótima opção e é o que eu pessoalmente uso. Cuidado, porém, não use os binários fornecidos no site, mas obtenha as informações mais recentes no SVN. A versão do site está altamente desatualizada.
fonte
Dê uma olhada no Ploobs Engine - agora ele suporta o XNA 4, seu código aberto e possui muitos recursos interessantes:
fonte