Welche C # -Bibliotheken können zur Unterstützung der Spieleentwicklung verwendet werden? [geschlossen]

58

Da Spiele auf vielen verschiedenen Subsystemen basieren, wie Grafiken (DirectX, OpenGL, ...), Sound (OpenAL, Ogg Vorbis, ...) oder Physik (Kollisionen, ...), welche Bibliotheken sind für Sie hilfreich? für die Spieleentwicklung in C # und welche Vorteile bieten sie?

Michael Barth
quelle

Antworten:

63

Grafik / Sound

  • XNA High-Level-Wrapper unter DirectX9. Ermöglicht ein schnelles Starten. Unterstützt PC, Xbox360 und Windows Phone 7. Unterstützt Xact Audio sowie seine eigene SoundEffect API.
  • SlimDX Lower Level Wrapper auf DX9 / 10/11. Wenn es im DX SDK ist, ist es hier eingeschlossen.
  • OpenTK Wrapper unter OpenGL / AL.
  • SDL.net Eine Portierung der beliebten SDL-Bibliothek.

Motoren

  • WaveEngine Component-basierte Game-Engine-Architektur, C # -API-, 2D- und 3D-Physik-Engine, wunderschöne visuelle Effekte, plattformübergreifende Unterstützung für Android, Linux, Mac, iOS und Windows, erweitertes Layout-System und vieles mehr.
  • NeoAxis Eine 3D-Engine mit Unterstützung für die NVIDIA PhysX-Physik-Engine, C # -Bindungen, unterstützt WPF- und Windows Forms, eine große Auswahl an Werkzeugen wie Karten-, Objekt-, Modell-, Material- und Terrain-Editoren sowie Spielebrowser mit Chromium, Pfadfindung mit Navigationsnetz und mehr.
  • TorqueX Eine 2D / 3D-Engine für XNA. Gute Editor-Unterstützung, Garage Games haben kürzlich nach einer Zeit der Vernachlässigung wieder in die Engine investiert.
  • Truevision 3d C ++ Game Engine mit C # -Bindungen
  • Axiom Eine Neufassung von Ogre in c #. Unterstützt zahlreiche unterstützte Rendering-APIs.
  • Unity ist eine C ++ - Grafik- / Game-Engine, die Gameplay-Skripte in C # unterstützt.
  • AngelXNA Ein Port von EALAs Open-Source-Winkelprototyping-Framework

Physik

  • Farseer Eine beliebte 2D-Physik-Engine, die .NET (Desktop), Compact (Xbox) und Micro (Silverlight) unterstützt.
  • Jitter eine relativ neue 3D-Physik-Engine, viel besser als ihre Fertigstellung.
  • Box2Dx Ein direkter Port von Box2D
  • Box2D.XNA Ein weiterer Port von Box2D für XNA; neuer als Box2Dx
  • JigLib
  • BulletX Ein C # -Port von Bullet, scheint aufgegeben zu sein.
Cubed2D
quelle
1
Toller Überblick, das war genau die Antwort, nach der ich gesucht habe!
Michael Klement
2
Da XNA eine so große Community ist, möchte ich Henge3D zur Physik, Sunburn zur Grafik und sgMotion und XNAnimation zur Grafik (oder Animation) hinzufügen.
Chris Ridenour
TorqueX wird von Garagenspielen nicht mehr unterstützt.
Markus
3
In den Jahren, seitdem diese Antwort erstmals veröffentlicht wurde, hat Microsoft die Unterstützung von XNA eingestellt. Diese Bibliothek ist wahrscheinlich keine gute Idee mehr, sondern MonoGame.
jhocking
10

Offensichtlich gibt es XNA von Microsoft selbst: http://creators.xna.com/en-US/ Mit XNA erstellte Spiele funktionieren unter Windows und (über den Creators Club) auf Xbox360. Ich denke, das ist perfekt, um in der rasanten Spieleentwicklung die Füße nass zu machen. Ich habe meine Füße in XNA noch nicht richtig nass bekommen, also kann ich es noch nicht beurteilen. Aber von der Seitenlinie aus betrachtet sieht es nach dem besten aus, was es seit geschnittenem Brot gibt. Klar, man kann nicht alles damit machen. Sie können jedoch schnelle Prototypen und funktionierende Spiele in Indie-Qualität und darüber hinaus erstellen.

Eine andere Bibliothek ist SlimDX - http://slimdx.org/, von der manche behaupten, dass sie näher an Metal / Reality ist, wenn Sie nicht mit XNA arbeiten möchten. Ideal für schnelles Prototyping - besonders, wenn Sie hauptsächlich mit C oder C ++ arbeiten. Ideal auch für Werkzeuge.

Keyframe
quelle
3
SlimDX bietet außerdem den Vorteil, dass es mit der Direct3D-Interop-Unterstützung von WPF kompatibel ist, was (abhängig von der Art des von Ihnen entwickelten Spiels) sehr nützlich sein kann. Es gibt keine offizielle Unterstützung für WPF / XNA-Interop, und obwohl ich glaube, dass einige Leute es geschafft haben, die beiden zusammenzubringen, war der Prozess hacky und fragil.
Mike Strobel
Ich sollte hinzufügen , dass es ist ein Versuch , XNA Arbeits Cross-Plattform mit Mono zu bekommen (siehe MonoXNA), die in den Entscheidungsfaktor könnte von dem Rahmen zu verwenden.
Mike Strobel
@Mikw Strobel: +1, aber denken Sie daran, dass ein großes Verkaufsargument für XNA die Fähigkeit ist, die 360 ​​und alle WPF / XNA-Produkte, die ich gesehen habe, bereitzustellen / zu verkaufen, die auf der 360 nicht ausgeführt werden.
Steven Evers
4

Es gibt auch einen Port der C Library SDL zu .NET, SDL.NET . Ich persönlich würde XNA in C # verwenden, weil es nur eine gut zusammengestellte Bibliothek ist, die sehr anpassbar und auch für Anfänger geeignet ist.

Spidey
quelle
XNA ist anfängerfreundlich, befindet sich aber auch (gerade) im Wandel. 4.0 wird eine Reihe grundlegender Änderungen haben, und es ist ärgerlich, mitzuhalten, wenn Sie nasse Füße haben.
Steven Evers
4

Haftungsausschluss: Die folgende Empfehlung kann aufgrund meiner persönlichen Beteiligung an der Entwicklung dieses Motors voreingenommen sein oder auch nicht.

Duality ist eine erweiterbare 2D-Game-Engine, die mit einem WYSIWYG-Editor ausgestattet ist. Schneller Überblick:

  • Es ist Plugin-basiert . Sie schreiben keine neue Anwendung, sondern ein Plugin, das Ihren gesamten Code enthält.
  • Plugins können zur Laufzeit über den Editor neu geladen werden . Ermöglicht eine schnelle Iteration.
  • Open Source , vollständig in C # geschrieben, basierend auf OpenTK / OpenGL / OpenAL
  • Relativ neu (2 - 3 Jahre) und noch in der Entwicklung - aber bereits verwendbar .
  • Behandelt Rendering, Audio, Benutzereingaben, Physik, Serialisierung, Ressourcen- und Objektverwaltung
  • Viele Hilfsklassen und Standardkomponenten für den Einstieg.

Wenn Sie es ausprobieren möchten, können Sie entweder die neueste Binärversion direkt herunterladen oder sie selbst mit dem Quellcode von GitHub kompilieren . Weitere Informationen erhalten Sie, wenn Sie die Info-Website und die Community-Foren besuchen. Folgen Sie einfach den Links von der Info-Website, die ich oben angegeben habe.

Ein Screenshot der Bearbeitungsumgebung.

Fetze
quelle
In der Regel ist es am besten, anzugeben, dass Sie an der Entwicklung der von Ihnen empfohlenen Software beteiligt sind.
Josh
@ JoshPetrie Sie können richtig sein. Ich war mir nicht sicher, ob es in diesem speziellen Kontext wichtig war oder nicht - trotzdem habe ich jetzt einen Haftungsausschluss hinzugefügt. :)
Adam
3

Auf der Toolseite ist das " Managed Extensibility Framework " eine unglaublich nützliche Bibliothek , das nun tatsächlich Teil von .Net 4.0 ist. Sie können damit auf lächerliche Weise Plug-Ins erstellen oder Instanzen von Klassen automatisch erkennen, was für Ihre Tools sehr nützlich ist.

Sander van Rossen
quelle
2

Das größte (und bewährteste) ist bis heute das XNA-Framework. Sie können sogar XNA nutzen, um Ihre Werkzeugsätze zu erstellen. Der Vorteil ist, dass Sie ein Framework haben, das die benötigten Bibliotheken (Physik, Sound, Grafik) in einem Paket vereint. Das große Plus ist, dass Sie, wenn Sie etwas wirklich gut machen, versuchen können, es in XBLA zu pumpen.

David McGraw
quelle
2

XNA ist eine ziemlich große Bibliothek für PC / Xbox360, die Ihre Grafiken, Sounds, Eingaben usw. verwaltet.

Bryan Denny
quelle
2

Das Tao Framework (in diesem Buch verwendet, das ich als sehr nützlich empfunden habe: C # -Spielprogrammierung für die Erstellung ernsthafter Spiele ), das OpenGL und viele andere nützliche Spielprogrammierungsfunktionen (über C # zugänglich) umfasst, ist einen Blick wert. Es wurde jedoch von der Open Toolkit Library (OpenTK) abgelöst, die in einer anderen Antwort erwähnt wurde. Ich finde es seltsam, dass das Buch das Tao Framework anstelle von OpenTK verwendet, wenn man bedenkt, dass Tao seit ungefähr 2 Jahren inaktiv ist (und das Buch ist brandneu). Ein nützliches Framework, das es wert ist, überprüft zu werden.

Jason Down
quelle
1

Nicht genau das, wonach Sie gefragt haben, aber Unity ist eine Spiele-Engine, die Skripte in c # unterstützt.

hiena
quelle
0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) ist eine nette prototypenorientierte Bibliothek / Engine, die auf XNA basiert, wenn Sie nach etwas Höherem suchen.

Andrew Brockert
quelle
0

Ich finde, dass SFML.Net eine großartige Wahl ist, und ich persönlich benutze es. Beachten Sie jedoch, dass Sie nicht die auf der Site bereitgestellten Binärdateien verwenden, sondern die neuesten vom SVN abrufen. Die Site-Version ist stark veraltet.

Xeon06
quelle