Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

As games are based on many different subsystems things like graphics (DirectX, OpenGL, ...), sound (OpenAL, Ogg Vorbis, ...) or physics (collisions, ...), what libraries do you know that are useful for game development in C# and what benefits do they offer?

share|improve this question

closed as off-topic by Josh Petrie Sep 22 '13 at 16:56

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions that are about "which tech to use" are outside the scope of the site. For more information, see this meta post" – Josh Petrie
If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

13 Answers 13

up vote 56 down vote accepted

Graphics/Sound

  • XNA High level wrapper on DirectX9. Allows you to get up and running quickly. Supports PC, Xbox360 and windows phone 7. Support Xact audio aswell as its own SoundEffect API.
  • SlimDX Lower level wrapper on DX9/10/11. If its in the DX SDK, its wrapped here.
  • OpenTK Wrapper on OpenGL/AL.
  • SDL.net A port of thr popular SDL lib.

Engines

  • TorqueX A 2D/3D engine for XNA. Good editor suppport, garage games have recently reinvested in the engine after a period of neglect.
  • truevision 3d C++ game engine with c# bindings
  • Axiom A rewrite of Ogre in c#. Supports numerous backed rendering APIs.
  • Unity is a C++ graphics/game engine that supports gameplay scripting in C#
  • AngelXNA A port of EALA's open source angle protoypeing framework

Physics

  • Farseer A popular 2D physics engine, supports .net(desktop), compact(xbox) and micro(silverlight).
  • Jitter a relatively new 3D physics engine, Much better than its completion.
  • Box2Dx A direct port of box2D
  • Box2D.XNA Another port of Box2D for XNA; more recent than Box2Dx
  • JigLib
  • BulletX A c# port of Bullet, seems to be abandoned.
share|improve this answer
1  
Great overview, that was exactly the kind of answer I was looking for! –  Michael Barth Jul 15 '10 at 6:59
2  
Because XNA is such a large community I would like to add Henge3D to physics, Sunburn to Graphics, and sgMotion and XNAnimation to Graphics (or Animation). –  Chris Ridenour Jul 15 '10 at 17:04
    
+1 for Unity, great engine! –  Michael La Voie Aug 11 '10 at 0:56
    
TorqueX is not longer supported by garage games. –  Markus Jul 21 '12 at 22:02
1  
In the years since this answer was first posted, Microsoft has stopped supporting XNA. That library is probably not a good idea to use anymore, use MonoGame instead. –  jhocking Sep 22 '13 at 16:29
add comment

Obviously there is XNA from microsoft itself: http://creators.xna.com/en-US/ Games made with XNA work on Windows and (via Creators club) on Xbox360. I think this is perfect to get one's feet wet in rapid game development. I haven't got my feet wet in XNA properly yet, so I can't judge it yet. But, looking from sidelines it looks like best thing since sliced bread. Sure, you can't do everythign with it. But you can make fast prototypes and working games of indie quality and beyond.

Other library is SlimDX - http://slimdx.org/ which some might say is closer to metal/reality if you don't want to work with XNA. Thus, great for doing fast prototyping - especially if your primary game development is C or C++. Also, great for doing tools.

share|improve this answer
3  
SlimDX also has the benefit of being compatible with WPF's Direct3D interop support, which (depending on the type of game you're developing) could be very useful. There is no official support for WPF/XNA interop, and while I believe some people have managed to get the two working together, the process was hack-y and fragile. –  Mike Strobel Jul 14 '10 at 20:20
    
I should add that there is an effort to get XNA working cross-platform with Mono (see MonoXNA), which might factor into the decision of which framework to use. –  Mike Strobel Jul 14 '10 at 20:27
    
@Mikw Strobel: +1, but remember that a big selling point for XNA is the ability to deploy/sell to the 360 and all of the WPF/XNA stuff I've seen won't run on the 360. –  SnOrfus Jul 15 '10 at 5:34
add comment

There's also a port of the C Library SDL to .NET, SDL.NET. I personally would use XNA in C# because it's just a well put together library, very customizable and also beginner friendly.

share|improve this answer
    
XNA is beginner friendly, but it's also in a state of flux (especially) right now. 4.0 will have a number of breaking changes and that's annoying to keep up with when you're getting your feet wet. –  SnOrfus Jul 15 '10 at 5:36
add comment

Disclaimer: The following recommendation may or may not be biased due to my personal involvement in the development of this engine.

Duality is an extensible 2D game engine that comes with a WYSIWYG editor system. Quick overview:

  • It's plugin-based. You don't write a new application, but a plugin that contains all your code.
  • Plugins feature runtime reload from the editor. Allows fast iteration.
  • Open Source, written entirely in C#, based on OpenTK / OpenGL / OpenAL
  • Relatively new (2 - 3 years) and still in development - but already usable.
  • Handles Rendering, Audio, User Input, Physics, Serialization, Resource and Object Management
  • Lots of helper classes and default Components to get you started.

In case you want to give it a go, you can either directly download the latest binary release or compile it yourself using the source code from GitHub. To get some more information, a visit to the info website and the community forums might pay off. Just follow the links from the info website I've included above.

A screenshot of the editing environment.

share|improve this answer
    
It's usually best to disclose that you are involved in the development of any software that you recommend. –  Josh Petrie Sep 22 '13 at 16:55
    
@JoshPetrie You may be right. I was unsure whether or not it mattered in this particular context - anyway, I've added a disclaimer now. :) –  Fetze Sep 23 '13 at 6:24
add comment

BulletX is a 100% C# port of Bullet Physics, which is usable with XNA.

share|improve this answer
add comment

On the tools side an incredible useful library is the "Managed Extensibility Framework", which is now actually part of .Net 4.0. It allows you to create plug-ins or automatic discovery of instances of classes ridiculously easily, which is -very- useful for your tools.

share|improve this answer
add comment

The biggest one (and most proven) to this day is the XNA framework. You can even take advantage of XNA to build your tool sets. The benefit is you have a framework that includes the libraries you need (physics, sound, graphics) wrapped in one package and the huge plus is that if you do something really well you can try and pump it into XBLA.

share|improve this answer
add comment

XNA is a pretty big library for PC/Xbox360, handling your graphics, sound, input, etc.

share|improve this answer
add comment

Not exactly what you asked but Unity is a game engine that supports scripting in c#

share|improve this answer
add comment

The Tao Framework (used in this book that I've found pretty useful: C# Game Programming For Serious Game Creation), which wraps OpenGL and many other useful game programming features (accessible via C#) is worth a look. However, it has been superceded by the Open Toolkit Library (OpenTK), which was mentioned in another answer. I find it odd that the book uses the Tao Framework instead of OpenTK, considering Tao has been inactive for about 2 years (and the book is brand new). Still, a useful framework that is worth checking out.

share|improve this answer
add comment

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) is a nice prototype-oriented library/engine built on XNA, if you're looking for something more high-level.

share|improve this answer
add comment

I find SFML.Net to be a great choice, and it is what I personally use. Beware though, do not use the binaries provided on the site, but instead get the latest from the SVN. The site version is highly outdated.

share|improve this answer
add comment

Take a look at the Ploobs Engine - right now it supports XNA 4, its open source and has a lot of cool features:

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.