Kannst du eine gute C # -Spiel-Engine für die plattformübergreifende Entwicklung empfehlen (Win / Mac / Linux, ich interessiere mich nicht für Konsolen)?
Ich habe einige Erfahrungen mit Raw OpenGL und habe mit Java-Bindungen und der JMonkeyEngine rumgespielt. Ich bin jedoch etwas enttäuscht von diesen Lösungen und habe Ogre3D ausprobiert, was sehr vielversprechend schien, aber ich möchte lieber nicht mit dem PITA entwickeln, das C ++ ist.
Ich habe mir diese Liste angesehen, aber sie ist ziemlich überwältigend. Ich bin nicht auf der Suche nach einer All-in-One-Lösung, dh ich benötige nicht wirklich Unterstützung für Networking, Audio und den ganzen Jazz, aber es würde nicht schaden, wenn es unterstützt wird.
Vielleicht gibt es auch eine großartige Java-Lösung, von der ich nichts weiß?
quelle
Antworten:
Unity verwendet Mono im Backend. Obwohl viele seiner Skript-Tutorials JavaScript verwenden, können Sie Unity tatsächlich vollständig in C # / Mono programmieren.
quelle
JMonkeyEngine ist die am meisten empfohlene 3D-Engine für Java. Xith3D wird manchmal als Alternative empfohlen, da es sich auch um eine Grafik-Engine im Scenegraph-Stil handelt.
Sie könnten mit LWJGL oder JOGL arbeiten, aber das sind weniger Engines als Bibliotheken, und Sie würden rohes OpenGL schreiben.
Ich empfehle Java3D jedoch nicht , ich denke, es ist alles andere als aufgegeben.
Ich denke, LWJGL ist das Beste, was Sie bekommen werden, aber es ist wieder eine Spielbibliothek, keine Grafik-Engine. OGRE ist eine Scenegraph-Grafik-Engine wie JMonkeyEngine. LWJGL ist für Java das, was SDL für C ++ ist. Es bietet Funktionen für OpenGL, Audio und Eingabe, und es wird erwartet, dass Sie damit arbeiten. Ich persönlich mag diese Art von Macht.
quelle
Ich würde mir Ardor3D anschauen und noch einmal JMonkeyEngine anschauen.
Ardor3D
Erstellt von den ursprünglichen JMonkeyEngine-Entwicklern, die entschieden haben, dass eine saubere Pause erforderlich ist, damit sie von vorne beginnen und die gesammelten Erfahrungen bei der Entwicklung nutzen können, um eine bessere API und Plattform zu erstellen.
Die Leute, die ich kenne, um Ardor3D verwendet zu haben, haben sehr positive Dinge über sein Design und API zu sagen. Es befindet sich in aktiver Entwicklung und verfügt über eine gute Community sowie eine gute API-Dokumentation. Allerdings sind die Tutorials ein wenig knapp und im Allgemeinen müssen Sie mit 3D-Programmierkonzepten vertraut sein, um es zu erlernen.
JMonkeyEngine
Die Übernahme der von der Community geführten JMonkeyEngine, die die Ardor3D-Entwickler zurückgelassen haben, hat seit der Veröffentlichung von JME3, die eine Reihe von Mängeln im Design von JME2 behebt, an Stärke gewonnen.
Es gibt reichlich Dokumentation, einschließlich Tutorials und viele Projekte, die damit arbeiten. Wenn Sie Probleme mit JMonkeyEngine 2 oder früher hatten, lohnt sich ein weiterer Blick auf Version 3.
Andere
quelle
Die Axiom 3D Engine basiert auf einem C # -Port von Ogre. Es verfügt über DirectX-, OpenGL- und XNA-Renderer, ist also sehr portabel, obwohl einige Plattformen nicht sehr aktiv gewartet werden.
quelle
Schauen Sie sich Ploobs Engine an , es unterstützt momentan XNA 4, ist Open Source und hat viele coole Features:
quelle
Schauen Sie sich http://www.devmaster.net/engines/search.php an und sehen Sie sich auch das XNA-Framework an.
quelle
SDL und der .NET Wrapper ?
quelle
OpenTK wird für MonoGame verwendet . MonoGame unterstützt derzeit leider nur die 2D-API von XNA, aber Sie haben bereits erwähnt, dass Sie OpenGL-Erfahrung haben, sodass Sie den OpenTK-Wrapper für 3D-Grafiken verwenden können. Möglicherweise finden Sie auch einige Szenendiagrammbibliotheken, die in C # oder in C ++ mit C # -Hüllkurven implementiert sind.
Für Audio bricht OpenTK OpenAL ein, oder wenn Sie etwas Robusteres wollen und vorhaben, das Spiel als Freeware zu veröffentlichen, dann kostet FMOD nichts in der Verwendung. Es wird teuer, wenn Sie für Ihr Spiel berechnen möchten. Eine billigere Alternative wäre BASS .
quelle