Plattformübergreifende 2D-Grafik-Engines [geschlossen]

57

Ich bin auf der Suche nach einer 2D-Grafik-Engine, mit der ich auf Windows, Mac und iPhone zugreifen kann, ähnlich wie Unity es für 3D tut.

Gibt es eine gute Engine, die dies tut und spezifisch für 2D ist?

Kevin Laity
quelle
Wenn Sie sich abenteuerlustig fühlen, können Sie immer eines der offenen 2D-Spiele wie Aquaria, Gish und den Rest des Humble Indie Bundles ausprobieren.
MarkovCh1
6
Du hast Linux vergessen, keine Liebe für diese Jungs?
Derek

Antworten:

37

Es gibt immer den alten Standby, SDL . Es ist ziemlich niedrig, aber diese Einfachheit erlaubt es, es auf Millionen von Plattformen zu portieren (einschließlich Windows, Linux, Mac, Nintendo DS, Wii usw. usw.). Es gibt einen iPhone-Port , den ich nicht benutzt habe, der aber ausgereift genug scheint.

U / min davr
quelle
Es scheint nicht, dass sie eine Version 1.3 "stable" haben, welche die Version ist, die Sie für die iPhone-Unterstützung benötigen. Sie werden wahrscheinlich die 1.3-Version aus ihrem HG-Repo nehmen und selbst bauen müssen.
Casey
22

Es gibt wirklich keinen Grund, warum Sie Unity3D nicht zum Erstellen von "2D" -Spielen verwenden können. Sie können strukturierte Quads und eine orthografische Kamera verwenden und sich selbst ein 2D-Spiel erstellen. Es gibt sogar einige einzigartige Lösungen wie die Verwendung eines Skelett-Animationssystems und das Aufsetzen von Sprites auf verschiedene Gelenke oder die Verwendung einer sehr engen Perspektivkamera, um eine kostengünstige Parallaxierung zu erzielen.

Es gibt sogar Middleware-Anbieter für Unity, die bessere Sprite-Management-Lösungen anbieten. Wie Sprite Manager 2 .

Tetrade
quelle
2
Ich habe das tatsächlich getan. Ich finde, dass der 3D-Aspekt der Einheit in Bezug auf die Benutzeroberfläche eher stört. Außerdem ende ich immer damit, eine Dummy-Szene zu machen, die nichts als eine Kamera mit meinem angehängten Root-Skript enthält. Ich schaue mir den Link an, den du erwähnt hast!
Kevin
20

SFML ist eine schöne moderne, objektorientierte, plattformübergreifende Grafik-Engine. Es ist hardwarebeschleunigt (basierend auf OpenGL) und hat Bindungen für

  • C ++
  • C
  • .Net (C #, VB.Net, C ++ / CLI, ...)
  • Python
  • D
  • Rubin
  • Ocaml
a_m0d
quelle
4
+1 für SFML. Es ist großartig, aber das einzige Problem ist das Fehlen eines iPhone-Anschlusses.
Die kommunistische Ente
12

SDL, Allegro, OpenGL
SDL und Allegro sind nicht nur Grafikbibliotheken, sondern ganze Spielentwicklungsbibliotheken.
Ein Nachteil von SDL ist, dass es main () übernimmt und neu definiert, sodass es schwierig ist, es mit anderen Bibliotheken zu kombinieren. (QT nach meiner Erfahrung)
Eine andere schlechte Sache ist, dass SDL nur ein Fenster zulässt (dies ist die stabile Version 1.2, die Entwicklungsversion 1.3, aber sie wird noch nicht vollständig unterstützt oder dokumentiert).
Ich kann die Schwachstellen von SDL nennen, weil ich es am besten kenne und hat damit gearbeitet, aber trotzdem ist es sehr mächtig, viele Emulatoren, einschließlich einer Portierung von Mame und ScummVM, sowie Spiele benutzen es.
OpenGL ist trotz seiner weit verbreiteten 3D-Verwendung eine grafische Bibliothek und ermöglicht als solche auch 2D-Grafiken durch Manipulation auf Pixelebene und nutzt die Hardwarebeschleunigung umfassend sowohl in 3D als auch in 2D.

Petruza
quelle
In Allegro erstelle ich ständig Spiele. Liebte es.
Tone
Qt übernimmt main jedoch nicht, auch nicht mit einer Ereignisschleife in QCoreApplication. Sie können qApp-> processEvents in jeder gewünschten Schleife aufrufen und Qt wird glücklich sein.
Mircea Chirea
1
Muss SDL jedoch Ihre Hauptschleife übernehmen? Ich dachte, Sie könnten das vermeiden, indem Sie SDLmain.h nicht einbeziehen und vorsichtig sein, die Dinge selbst zu tun ...
Ricket
2
SDL übernimmt nicht Ihre Hauptspielschleife. Normalerweise erstellen Sie Ihre eigenen und rufen SDL_PollEvent innerhalb dieses Aufrufs auf, um alle Ereignisse abzurufen, die SDL kennt (Tastatureingabe, Mausbewegung usw.).
dcarrigg
6

Sie können sich Troll2D ansehen

Box2D wird für viele Plattformen verwendet. Einschließlich des iPhone. Sie müssen jedoch einen Weg finden, um diese Objekte anzuzeigen. Da Box2D nur 2D-Physiksimulationen abwickelt.

Ólafur Waage
quelle
Olafur - Ich würde sagen, Troll2D war Ihre Antwort, also sollten Sie damit beginnen. Box2d sollte der nachträgliche Einfall sein.
Iain
5

LÖVE ist eine 2D-Engine, die die einfache und schnelle Entwicklung von Spielen in der Sprache Lua ermöglicht .

Es läuft auf Mac (PPC und Intel), Windows und Linux (32 und 64 Bit) und die Spiele können problemlos als One-File-Runs-on-All-Platforms ".love" -Dateien verteilt werden.

Es handelt sich im Grunde genommen um eine Zip-Version Ihres Spiels, deren Zip- Erweiterung in Love umbenannt wurde .

Leider gibt es (bisher) keinen iPhone-Port.

Linus
quelle
5

Cocos2D wurde unter Mac / Windows in Python entwickelt und ist unter dem iPhone in der Version Objective-C erhältlich . Es ist beliebt in der 2D-iPhone-Spieleentwicklung. Ray Wenderlich hat einige große Cocos2D Tutorials für das iPhone .

Da sie von Python zu Objective-C gewechselt sind, werden Sie vermutlich nicht mehr in der Lage sein, alle Plattformen auf derselben Codebasis zu kompilieren.

Joost Schuur
quelle
Richtig, es gibt viele cocos2d-Ports, aber alle verwenden ihre eigene Sprache. Objective-C für iPhone, Java für Android, Javascript für Web, Python für die ursprüngliche PC-Version und C ++ für den neuen Windows-Port, der möglicherweise Windows Mobile unterstützt oder nicht (darüber ist unklar). Anders als Name und Designphilosophie sind sie in keiner Weise austauschbar.
LearnCocos2D
Ich denke, Cocos2d-x ist jetzt ziemlich stabil und plattformübergreifend mit einer einzigen Implementierungssprache: C ++ (schließt auch das iPhone ein).
legends2k
4

Wenn Sie sich keine Sorgen um das iPhone machen, wird Flash immer als AIR-Paket angeboten. Sie verlieren das iPhone, erhalten jedoch Linux und die Webbereitstellung. Sie können dann Spiel- / Physik- / Rendering-Engines auswählen, die zu Ihrem Projekt passen, z. FlashPunk, Flixel, Box2d.

Iain
quelle
Sie erhalten auch Android-Telefonsupport (mindestens neuere) und wahrscheinlich auch Palm- / Blackberry- / Windows Mobile-Support.
Davr
iOS wird jetzt unterstützt, Linux nicht.
Danik,
4

Sie könnten die Angel Engine ausprobieren . Es basiert auf C ++, OpenGL, Box2D und verwendet Python für die Skripterstellung. Es ist hauptsächlich für das Prototyping gedacht, aber die jüngsten Versionen scheinen sich darauf zu konzentrieren, vollständige Spiele zu entwickeln.

Carnby
quelle
3

Torque2D unterstützt PC und Mac aus der Box. Der iTorque2D unterstützt die Bereitstellung auf dem iPhone. Es ist auch möglich, eine Konsolenbereitstellung zu erhalten.

Cubed2D
quelle
2

PlayN unterstützt HTML5, Android, iOS, Flash und Desktop Java.

Sie schreiben Ihren Code in Java und er konvertiert Ihren Java-Code in JavaScript (über GWT) für HTML, in ARM-Assembly (über IKVM von Java-Bytecode zu CLR-Bytecode, dann MonoTouch zum Kompilieren von CLR-Bytecode zu einer nativen iOS-App). zu ActionScript über ein benutzerdefiniertes GWT-Backend, das ActionScript anstelle von JavaScript generiert, und zu Android und Desktop-Java ohne Konvertierungen.

samskivert
quelle
2

Moai SDK ist ein Framework, das auf diesen Plattformen ausgeführt werden kann. Es ist Open Source, also schauen Sie sich das Github-Repo an .

Moai kann auch in Google Chrome und Android veröffentlicht werden.

* Ich glaube nicht, dass das Veröffentlichen auf einem Mac oder unter Windows (z. B. als .app oder .exe) möglich ist, aber hinzugefügt werden kann.

user14992
quelle
1

Haxe + NME unterstützt HTML5, Flash, Android, iOS, Blackberry, Windows, Mac, Linux und WebOS. Es unterstützt 2D-Grafiken (Bitmap-Sprites, Vektorzeichnungen sowie Effekte wie Schlagschatten und Unschärfe).

amitp
quelle
0

Ich habe in letzter Zeit viel über MonoTouch gehört, vor allem für Leute, die sich mit der Entwicklung von iPhone und iPod touch beschäftigen. Das Framework basiert auf Mono, das bereits plattformübergreifend kompatibel ist.

mikeschuld
quelle
Schade, dass dies gegen die iTunes Store-Vereinbarung verstößt, da Sie in etwas schreiben, das nicht C / C ++ / ObjC ist, und eine Übersetzungsebene verwenden. Du wirst vielleicht noch genehmigt, aber sie könnten dich in Zukunft ziehen. Persönlich würde ich es nicht riskieren.
Davr
@davr monotouch verstößt nicht gegen die Bestimmungen der Vereinbarung ab einem Jahr.
dodgy_coder
@dodgy_coder Ja, ich erinnere mich, als Apple endlich diese verzögerten Regeln herausnahm (die meines Erachtens ausschließlich darauf abzielten, Adobe Schaden zuzufügen). Mein ursprünglicher Kommentar war wahr, als ich ihn veröffentlichte :)
davr
-1

Unity3d ist das beste Entwicklungswerkzeug und die beste Engine für 2D-Spiele. alternativ Monogame. HTML5 und Flash sind für dieses Thema nicht geeignet. Blitz ist schon tot.

zihnibabuz
quelle