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?
|
|
|||
We're looking for long answers that provide some explanation and context. Don't just give a one-line answer: please explain why you're recommending it as a solution. Answers that don't explain anything will be deleted. See Good Subjective, Bad Subjective for more information. |
|||
|
Graphics/Sound
Engines
Physics
|
|||||||||||||
|
|
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. |
|||||||||
|
|
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. |
||||
|
|
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. |
||||
|
|
|
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. |
||||
|
|
|
XNA is a pretty big library for PC/Xbox360, handling your graphics, sound, input, etc. |
||||
|
|
|
Not exactly what you asked but Unity is a game engine that supports scripting in c# |
||||
|
|
|
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. |
||||
|
|
|
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. |
||||
|
|
|
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. |
||||
|
|
|
Take a look at the Ploobs Engine - right now it supports XNA 4, its open source and has a lot of cool features: |
||||
|
|
