Quais bibliotecas C # podem ser usadas para dar suporte ao desenvolvimento de jogos? [fechadas]

58

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?

Michael Barth
fonte

Respostas:

63

Gráficos / Som

  • XNA Wrapper de alto nível no DirectX9. Permite que você comece a funcionar rapidamente. Suporta PC, Xbox360 e telefone windows 7. Suporta áudio Xact, além de sua própria API SoundEffect.
  • Invólucro de nível inferior SlimDX no DX9 / 10/11 . Se estiver no DX SDK, está incluído aqui.
  • Wrapper OpenTK no OpenGL / AL.
  • SDL.net Uma porta da thr popular SDL lib.

Motores

  • Arquitetura do mecanismo de jogo baseado no WaveEngine Component, C # api, mecanismo de física 2D e 3D, belos efeitos visuais, suporte para várias plataformas Android, Linux, Mac, iOS e Windows, sistema de layout avançado e muito mais.
  • NeoAxis Um mecanismo 3D com suporte ao mecanismo de física NVIDIA PhysX, ligações C #, suporta WPF e Windows Forms, rica seleção de ferramentas como editores de mapa, objeto, modelo, material, terreno, no navegador de jogos usando Chromium, Pathfinding with Navigation Mesh e muito mais.
  • TorqueX Um mecanismo 2D / 3D para XNA. Bom suporte do editor, os jogos de garagem foram reinvestidos recentemente no mecanismo após um período de negligência.
  • motor de jogo truevision 3d C ++ com ligações c #
  • Axioma Uma reescrita de Ogre em c #. Suporta várias APIs de renderização suportada.
  • Unity é um mecanismo de gráficos / jogos em C ++ que suporta scripts de jogabilidade em C #
  • AngelXNA Uma porta da estrutura de protótipo de ângulo aberto da EALA

Física

  • Farseer Um popular mecanismo de física 2D, suporta .net (desktop), compacto (xbox) e micro (silverlight).
  • Instale um mecanismo de física 3D relativamente novo, muito melhor que sua conclusão.
  • Box2Dx Uma porta direta do box2D
  • Box2D.XNA Outra porta do Box2D for XNA; mais recente que o Box2Dx
  • JigLib
  • BulletX Uma porta c # do Bullet parece abandonada.
Cubed2D
fonte
11
Ótima visão geral, esse era exatamente o tipo de resposta que eu estava procurando!
Michael Klement
2
Como o XNA é uma comunidade tão grande, eu gostaria de adicionar o Henge3D à física, o Sunburn ao Graphics e o sgMotion e XNAnimation ao Graphics (ou Animation).
ChrisRidenour
O TorqueX não é mais suportado por jogos de garagem.
Markus
3
Nos anos desde que essa resposta foi postada pela primeira vez, a Microsoft parou de oferecer suporte ao XNA. Essa biblioteca provavelmente não é mais uma boa ideia, use o MonoGame.
Jhocking 22/09/2013
10

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.

Quadro-chave
fonte
3
O SlimDX também tem o benefício de ser compatível com o suporte à interoperabilidade Direct3D do WPF, que (dependendo do tipo de jogo que você está desenvolvendo) pode ser muito útil. Não há suporte oficial para a interoperabilidade WPF / XNA e, embora eu acredite que algumas pessoas tenham conseguido reunir os dois, o processo foi hack-y e frágil.
Mike Strobel
Devo acrescentar que não é um esforço para obter XNA trabalho multi-plataforma com Mono (veja MonoXNA), que pode fator na decisão de qual estrutura para usar.
Mike Strobel
@ Mikw Strobel: +1, mas lembre-se de que um grande ponto de venda para o XNA é a capacidade de implantar / vender para o 360 e todo o material WPF / XNA que eu vi não funcionará no 360.
Steven Evers
4

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.

Spidey
fonte
O XNA é amigável para iniciantes, mas também está em um estado de fluxo (especialmente) no momento. A versão 4.0 apresentará diversas alterações e isso é irritante para acompanhar quando você estiver com os pés molhados.
Steven Evers
4

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:

  • É baseado em plugins . Você não escreve um novo aplicativo, mas um plug-in que contém todo o seu código.
  • Os plug-ins apresentam recarga de tempo de execução a partir do editor. Permite iteração rápida.
  • Código aberto , escrito inteiramente em C #, baseado em OpenTK / OpenGL / OpenAL
  • Relativamente novo (2 a 3 anos) e ainda em desenvolvimento - mas já utilizável .
  • Lida com renderização, áudio, entrada do usuário, física, serialização, gerenciamento de recursos e objetos
  • Muitas classes auxiliares e componentes padrão para você começar.

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.

Uma captura de tela do ambiente de edição.

Fetze
fonte
Geralmente, é melhor divulgar que você está envolvido no desenvolvimento de qualquer software recomendado.
Josh
@ JoshPetrie Você pode estar certo. Eu não tinha certeza se isso importava ou não nesse contexto específico - de qualquer forma, adicionei um aviso agora. :)
Adam
3

BulletX é uma porta 100% C # da Bullet Physics, que pode ser usada com o XNA.

Steven Evers
fonte
3

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.

Sander van Rossen
fonte
2

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.

David McGraw
fonte
2

O XNA é uma biblioteca bastante grande para PC / Xbox360, manipulando gráficos, som, entrada etc.

Bryan Denny
fonte
2

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.

Jason Down
fonte
1

Não é exatamente o que você pediu, mas o Unity é um mecanismo de jogo que suporta scripts em c #

hiena
fonte
0

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.

Andrew Brockert
fonte
0

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.

Xeon06
fonte