Gibt es Frameworks, mit denen ich Spiele in C # unter Linux schreiben kann? [geschlossen]

10

Ich suche nach einer Alternative zu XNA - es ist mir egal, ob es sich um eine 2D- oder 3D-Engine handelt. Es liegt nicht daran, dass ich Windows nicht mag oder gegen Microsoft bin. Das liegt daran, dass ich gerne Linux ausführe, vollständig in Linux codiere (für C # verwende ich natürlich Mono) und auf keinen Fall Hardware habe, um die Programmierung in XNA tatsächlich zu unterstützen, einfach weil meine Grafikkarte 6 Jahre alt ist. Ich habe auch keine Windows 7 / Vista-CD für DirectX 10.

Für die Spieleentwicklung stecke ich also in der Steinzeit fest. Dennoch mag ich C # sehr und würde es aus diesem Grund hassen, es als Sprache fallen zu lassen.

Kann ich irgendetwas tun?

Glücksfall
quelle
13
Ich hasse es, wenn eine Antwort so schnell ausgewählt wird. Es bleibt keine Zeit für tiefere oder detailliertere Antworten.
AttackingHobo
6
@AttackingHobo Wenn Sie eine detailliertere Antwort vorschlagen möchten, fahren Sie auf jeden Fall fort.
Jonathan Connell
1
@ Jonathan Das Problem ist, dass die erste Antwort nicht regelmäßig die beste ist. Tatsächlich kann es oft am wenigsten erforscht oder am wenigsten durchdacht sein. Es gibt einen Grund, warum wir ein silbernes Abzeichen haben, um zuerst zu antworten und Recht zu haben - es ist eine Leistung oder eine Belohnung für die Beantwortung einer toten Frage.
Doppelgreener
@ Jonathan Connell Ich habe schon seit über einer Woche etwas Ähnliches recherchiert. Ich habe ein paar verschiedene Kandidaten gefunden, aber ich möchte sie tatsächlich verwenden und sehen, welche tatsächlich realisierbar sind. Nur die Frage in Google einzugeben und einige der Links blind als Antwort zu veröffentlichen, ist nicht sehr hilfreich.
AttackingHobo
Hey @AttackingHobo, es wäre nett von Ihnen, Ihre Kandidaten zu posten, da ich seit etwa 5 Jahren nach etwas Ähnlichem aus passivem Interesse gesucht habe. Von all dieser Zeit an kann ich mich nur noch daran erinnern, dass der Irrlicht-Wrapper und der verwaltete Ogre-Wrapper korrekt funktionieren, und ich mag sie nicht: Irrlicht war fehlerhaft, aber vermutlich reparabel, und für verwalteten Ogre wäre es besser, NeoAxis zu wählen. Vielleicht hattest du das Glück, etwas Gutes zu finden, das ich verpasst habe. Ich bin doch nur ein Typ, also wäre es großartig, es zu teilen :)
EnoughTea

Antworten:

9

Ich befürchte, dass es in der Welt der plattformübergreifenden C # -basierten Frameworks keine vollständige Alternative zu XNA gibt. Monoxna ist längst tot, und nur sehr wenige andere plattformübergreifende Tools verwenden C # als Sprache ihrer Wahl.

Dieser baldige Port von XNA für iOS und Android sieht jedoch sehr vielversprechend aus: ExEn . Ich weiß jedoch nichts über Anforderungen.

Da Sie das Wort "Engine" verwendet haben, möchten Sie möglicherweise etwas Komplexeres. Ich kann mich nur an eine billige vollwertige C # -Engine erinnern, die unter Linux laufen kann und ziemlich fehlerverzeihende Hardwareanforderungen hat: NeoAxis .

Wenn Ihr primäres Ziel jedoch 2D-Spiele sind, können Sie sich diese kleine plattformübergreifende Spielbibliothek ansehen : AgateLib . Vor zwei Jahren war es schön, noch etwas fehlerhaft zu benutzen, vielleicht ist es jetzt besser.

Wenn etwas anderes fehlschlägt, können Sie OpenGL mit SDL jederzeit über OpenTK oder SDL.Net verwenden .

Genug Tee
quelle
3
Nur eine Anmerkung - ExEn wird von unserem eigenen Andrew Russel gepflegt !
BlueRaja - Danny Pflughoeft
1
-1. Während ExEn nützlich und interessant erscheint, ist es keine Linux-kompatible Alternative zu XNA. "2D- oder 3D-Engine" scheint sich auf die Grafik-Engine zu beziehen.
AttackingHobo
MonoGame war mehrere Jahre in der Entwicklung und die Fortschritte sehen in letzter Zeit gut aus, aber wenn ich mich an meine Erfahrungen mit diesem Frühjahr erinnere, habe ich mehr Vertrauen in ExEn. Wenn es eine gute Architektur hat, ist es sehr gut möglich, MonoMac durch OpenTk zu ersetzen.
EnoughTea
Für 2D kann sogar GTK # in Betracht gezogen werden.
George Edison
20

Warum nach einer Alternative suchen, wenn Sie einen Port verwenden können?

"MonoGame ist eine kostenlose OpenGL-Implementierung des XNA 4.0 Framework. Es basiert auf der hervorragenden Auswahl an Mono-Compilern und ist kompatibel mit MonoTouch (iOS), Mono für Android (Android), MonoMac (Mac OS X), Mono für Windows und jetzt Linux!

Unser Ziel ist es, XNA-Entwicklern unter Windows und Windows Phone 7 die Portierung ihrer Spiele auf iOS / Android / Mac OS X / Windows / Linux und umgekehrt mit minimalem Aufwand zu ermöglichen. "

http://monogame.codeplex.com

https://github.com/mono/MonoGame

Den
quelle
2

2 Bibliotheken gut für Software-Rendering:

  1. SDL (C / C ++) oder SDL.NET, da sie für ALTE Hardware entwickelt wurden und optional OpenGL verwenden können, wenn Sie Ihre Hardware später aktualisieren möchten. SDL ist völlig plattformübergreifend für Desktop-Systeme.
  2. Allegro ist eine weitere Bibliothek der alten Schule, mit der Pixel einzeln verschoben werden können, ohne dass spezielle Grafikhardware erforderlich ist.

Ich halte Allegro vom Standpunkt der Pixelverschiebung aus für leistungsfähiger, aber ich glaube nicht, dass es das gleiche Aktivitätsniveau wie SDL aufweist, und während SDL vom Autor auf dem neuesten Stand gehalten wird, denke ich, dass dies bei Allegro viel weniger der Fall ist.

Ingenieur
quelle
-1: Allegro Version 5 ist dieses Jahr erschienen und wird regelmäßig aktualisiert. Also ... ich habe keine Ahnung, wovon du sprichst. Warum auch keine Erwähnung von SFML?
Nicol Bolas
Meine Erfahrung war übrigens mit Allegro 4. "Auch warum keine Erwähnung von SFML?" - Bin ich verpflichtet, jede Bibliothek da draußen zu erwähnen, einschließlich derer, an denen ich kein Interesse / keine Erfahrung habe? Warum haben Den oder Vigil auch SFML nicht erwähnt? Vielleicht, weil sie es nicht wollten? Sie müssen nicht versuchen, Ihre -1 weiter zu rechtfertigen.
Ingenieur
1

Vielleicht möchten Sie ANX ausprobieren:

Das ANX.Framework ist ein Framework, das mit dem XNA Framework 4.0 von Microsoft quellkompatibel ist. Quellkompatibilität bedeutet, dass Sie ein XNA-Spielprojekt in ein ANX-Spielprojekt "übersetzen" können, indem Sie einfach alle Namespaces von Microsoft.XNA.Framework in ANX.Framework ersetzen. Der Vorteil von ANX ist einfach, dass Sie das RenderSystem, das InputSystem und das AudioSystem austauschen können. Durch den Austausch dieser Systeme können Sie Ihr Spiel nicht mehr mit DirectX9 ausführen, das XNA verwendet. ANX wird standardmäßig mit einem DirectX10-RenderSystem geliefert. Ein DirectX 11, DirectX 11.1 und ein OpenGL 3 RenderSystem befinden sich derzeit in der Entwicklung. Auf diese Weise können Sie Ihre Spiele unter Linux und anderen von OpenGL usw. unterstützten Plattformen ausführen, indem Sie einfach die Namespaces austauschen.

~ Codeplex-Site: http://anxframework.codeplex.com/

Es befindet sich noch in der Entwicklung, aber die meisten grundlegenden XNA-Funktionen sind implementiert.

floAr
quelle