¿Qué bibliotecas de C # se pueden usar para apoyar el desarrollo de juegos? [cerrado]

58

Como los juegos se basan en muchos subsistemas diferentes, como gráficos (DirectX, OpenGL, ...), sonido (OpenAL, Ogg Vorbis, ...) o física (colisiones, ...), ¿qué bibliotecas sabes que son útiles? para el desarrollo de juegos en C # y qué beneficios ofrecen?

Michael Barth
fuente

Respuestas:

63

Gráficos / Sonido

  • Contenedor de alto nivel XNA en DirectX9. Le permite ponerse en marcha rápidamente. Admite PC, Xbox360 y Windows Phone 7. También admite audio Xact como su propia API SoundEffect.
  • SlimDX Envoltura de nivel inferior en DX9 / 10/11 . Si está en el DX SDK, está envuelto aquí.
  • OpenTK Wrapper en OpenGL / AL.
  • SDL.net Un puerto de la popular lib SDL.

Motores

  • Arquitectura de motor de juego basada en componentes WaveEngine , API C #, motor de física 2d y 3d, hermosos efectos visuales, soporte multiplataforma para Android, Linux, Mac, iOS y Windows, sistema de diseño avanzado y mucho más.
  • NeoAxis Un motor 3D con soporte para el motor de física NVIDIA PhysX, enlaces C #, admite WPF y Windows Forms, una amplia selección de herramientas como mapas, objetos, modelos, materiales, editores de terreno, en el navegador del juego usando Chromium, Pathfinding con Navigation Mesh y más.
  • TorqueX Un motor 2D / 3D para XNA. Buen soporte de editor, los juegos de garaje han reinvertido recientemente en el motor después de un período de abandono.
  • motor de juego truevision 3d C ++ con enlaces c #
  • Axioma A reescritura de Ogre en c #. Admite numerosas API de representación respaldadas.
  • Unity es un motor de gráficos / juegos C ++ que admite secuencias de comandos de juego en C #
  • AngelXNA Un puerto del marco de prototipo de ángulo abierto de código abierto de EALA

Física

  • Farseer Un popular motor de física 2D, compatible con .net (escritorio), compacto (xbox) y micro (silverlight).
  • Jitter es un motor de física 3D relativamente nuevo, mucho mejor que su finalización.
  • Box2Dx Un puerto directo de box2D
  • Box2D.XNA Otro puerto de Box2D para XNA; más reciente que Box2Dx
  • JigLib
  • BulletX Un puerto c # de Bullet, parece estar abandonado.
Cubed2D
fuente
1
Excelente resumen, ¡ese fue exactamente el tipo de respuesta que estaba buscando!
Michael Klement
2
Debido a que XNA es una comunidad tan grande, me gustaría agregar Henge3D a la física, Sunburn a los gráficos y sgMotion y XNAnimation a los gráficos (o animación).
Chris Ridenour
TorqueX ya no es compatible con los juegos de garaje.
Markus
3
En los años transcurridos desde que esta respuesta se publicó por primera vez, Microsoft ha dejado de admitir XNA. Probablemente esa biblioteca ya no sea una buena idea, use MonoGame en su lugar.
jhocking
10

Obviamente, hay XNA de Microsoft: http://creators.xna.com/en-US/ Los juegos hechos con XNA funcionan en Windows y (a través del club de creadores) en Xbox360. Creo que esto es perfecto para mojarse los pies en el desarrollo rápido del juego. Todavía no tengo los pies mojados en XNA correctamente, por lo que aún no puedo juzgarlo. Pero, mirando desde el costado, parece lo mejor desde el pan rebanado. Claro, no puedes hacer todo con él. Pero puedes hacer prototipos rápidos y juegos de trabajo de calidad independiente y más.

Otra biblioteca es SlimDX - http://slimdx.org/ que algunos podrían decir que está más cerca del metal / realidad si no quieres trabajar con XNA. Por lo tanto, es excelente para crear prototipos rápidamente, especialmente si el desarrollo principal de tu juego es C o C ++. Además, excelente para hacer herramientas.

Fotograma clave
fuente
3
SlimDX también tiene la ventaja de ser compatible con el soporte de interoperabilidad Direct3D de WPF, que (según el tipo de juego que esté desarrollando) podría ser muy útil. No hay soporte oficial para la interoperabilidad WPF / XNA, y aunque creo que algunas personas han logrado que los dos trabajen juntos, el proceso fue hack-y y frágil.
Mike Strobel
Debo añadir que no es un esfuerzo para conseguir XNA de trabajo multiplataforma con Mono (ver MonoXNA), lo que podría tener en cuenta en la decisión de qué marco de su uso.
Mike Strobel
@Mikw Strobel: +1, pero recuerda que un gran punto de venta para XNA es la capacidad de desplegar / vender en 360 y todas las cosas de WPF / XNA que he visto no se ejecutarán en 360.
Steven Evers
4

También hay un puerto de C Library SDL a .NET, SDL.NET . Yo personalmente usaría XNA en C # porque es una biblioteca bien organizada, muy personalizable y también amigable para principiantes.

Araña
fuente
XNA es amigable para principiantes, pero también está en un estado de cambio (especialmente) en este momento. 4.0 tendrá una serie de cambios importantes y es molesto mantenerse al día cuando te mojas los pies.
Steven Evers
4

Descargo de responsabilidad: la siguiente recomendación puede o no estar sesgada debido a mi participación personal en el desarrollo de este motor.

Duality es un motor de juego 2D extensible que viene con un sistema editor WYSIWYG. Vista rápida:

  • Está basado en complementos . No escribe una nueva aplicación, sino un complemento que contiene todo su código.
  • Los complementos cuentan con recarga en tiempo de ejecución desde el editor. Permite una iteración rápida.
  • Código abierto , escrito completamente en C #, basado en OpenTK / OpenGL / OpenAL
  • Relativamente nuevo (2 a 3 años) y todavía en desarrollo, pero ya utilizable .
  • Maneja renderizado, audio, entrada de usuario, física, serialización, gestión de recursos y objetos
  • Muchas clases auxiliares y componentes predeterminados para comenzar.

En caso de que desee probarlo, puede descargar directamente la última versión binaria o compilarlo usted mismo utilizando el código fuente de GitHub . Para obtener más información, una visita al sitio web de información y a los foros de la comunidad podría ser rentable. Simplemente siga los enlaces del sitio web de información que he incluido anteriormente.

Una captura de pantalla del entorno de edición.

revés Fetze
fuente
Por lo general, es mejor revelar que está involucrado en el desarrollo de cualquier software que recomiende.
Josh
@JoshPetrie Puede que tengas razón. No estaba seguro de si importaba o no en este contexto en particular; de todos modos, he agregado un descargo de responsabilidad ahora. :)
Adam
3

BulletX es un puerto 100% C # de Bullet Physics, que se puede usar con XNA.

Steven Evers
fuente
3

Del lado de las herramientas, una biblioteca increíblemente útil es el " Marco de Extensibilidad Administrada ", que ahora forma parte de .Net 4.0. Le permite crear complementos o el descubrimiento automático de instancias de clases ridículamente fácil, lo cual es muy útil para sus herramientas.

Sander van Rossen
fuente
2

El más grande (y más probado) hasta el día de hoy es el marco XNA. Incluso puede aprovechar XNA para construir sus conjuntos de herramientas. La ventaja es que tiene un marco que incluye las bibliotecas que necesita (física, sonido, gráficos) en un solo paquete y la gran ventaja es que si hace algo realmente bien, puede intentar bombearlo a XBLA.

David McGraw
fuente
2

XNA es una biblioteca bastante grande para PC / Xbox360, que maneja sus gráficos, sonido, entrada, etc.

Bryan Denny
fuente
2

El Tao Framework (utilizado en este libro que he encontrado muy útil: Programación C # Juego para la creación de juego serio ), que envuelve OpenGL y muchas otras características de programación de juegos de utilidad (accesible a través de C #) es digno de una mirada. Sin embargo, ha sido reemplazado por la Open Toolkit Library (OpenTK), que se mencionó en otra respuesta. Me resulta extraño que el libro use el Marco Tao en lugar de OpenTK, teniendo en cuenta que Tao ha estado inactivo durante aproximadamente 2 años (y el libro es completamente nuevo). Aún así, un marco útil que vale la pena echarle un vistazo.

Jason Down
fuente
1

No es exactamente lo que pediste, pero Unity es un motor de juego que admite secuencias de comandos en C #

hiena
fuente
0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) es una buena biblioteca / motor orientado a prototipos construido en XNA, si está buscando algo más de alto nivel.

Andrew Brockert
fuente
0

Considero que SFML.Net es una excelente opción, y es lo que yo personalmente uso. Sin embargo, tenga cuidado, no use los archivos binarios proporcionados en el sitio, sino que obtenga lo último de SVN. La versión del sitio está muy desactualizada.

Xeon06
fuente