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


84

Ich habe einige Zeit mit Corona SDK gearbeitet und finde es toll, wie schnell und einfach ich mit Lua leistungsstarke Apps erstellen kann. Es kann jedoch nur für iOS und Android kompiliert werden, was sich jetzt zu wenig anfühlt.

Mein Hauptinteresse ist es, dass es auf Desktop AND Mobile kompiliert werden kann. Zumindest für Folgendes:

  • Windows + Mac für den Desktop als eigenständige Anwendung.
  • iOS + Android für Handys.

Ich würde es vorziehen, mich mehr auf Lua-Skripte als auf ActionScript zu konzentrieren, aber Sie können gerne alles posten, mit dem Sie gearbeitet haben und das Sie lieben.

Ich habe bisher folgende Motoren gefunden:

  • Marmalade Quick - Nach eingehender Prüfung kann Marmalade Quick nur für Mobilgeräte erstellt werden!
  • IwGame - Funktioniert auf Marmelade und kann mit Lua auf Desktop- und Mobilgeräten bereitgestellt werden. Jede Information wird sehr geschätzt
  • sio2 - Sagt "SIO2 ist eine OpenGLES-basierte plattformübergreifende 2D- und 3D-Spiele-Engine für iOS, Android, MacOS und Windows" und "Mit der Engine können Sie Ihr Spiel auch im Mac Store und unter Windows portieren." und der Web-Titel lautet "Game Engine für mobile Geräte". Ich kann keine Informationen darüber finden, ob es auf Desktop-Plattformen bereitgestellt werden kann. Alle Informationen werden erneut sehr geschätzt.
  • Loom Engine - Loom ähnelt Haxe + OpenFL (versucht, Flash-Entwickler anzulocken), da es AS3-ähnliches ECMAScript verwendet, aber keinen nativen Code daraus erstellt. Es wird jedoch Cocos2D zum Rendern verwendet, sodass es theoretisch so schnell wie Cocos2D sein sollte. - Danke an Bojan.
  • SDL - Ich habe an mehreren Stellen gelesen, dass SDL auf nahezu jeder Plattform oder jedem Gerät bereitgestellt werden kann und eine Lua-Bindung aufweist. Aber ich kann nicht herausfinden, wie das funktioniert, da es kein Motor ist. Jeder, der erklären kann, wie es funktioniert und ob es möglich ist, wird erneut sehr geschätzt.
  • SFML - "Windows, Linux, Mac OS X und bald auch Android & iOS." Verwendet Lua nicht, kann aber auch andere Sprachen wie Java und Python usw. verwenden. Hat jemand Informationen dazu?
  • Torgue2D - "Torque 2D wurde unter Berücksichtigung von OS X-, Windows- und iOS-Geräten entwickelt und funktioniert auf allen Plattformen gleich gut." verwendet TorgueScript und kein Android = (
  • Sencha - Scheint auf allen Plattformen zu kompilieren, verwendet auch Javascript, das ich kenne. Aber würde dies auch mit V8 JS im Vergleich zu anderen Optionen leistungsmäßig gut funktionieren?
  • GameMaker - eigene Skriptsprache GML und ich erinnere mich tatsächlich an diese als Tool für Nicht-Programmierer. Ist es tatsächlich zu einem echten Motor geworden, meine ich für eine ernsthafte Entwicklung?
  • Construct2 - Gleiche Frage wie Gamemaker
  • Corona - Lua, aber nur für Mobilgeräte (nur für Android und iOS)
  • Cocos2D - Scheint, als hätte es viele Optionen, ist sich aber nicht sicher mit derselben Sprache? Scheint, als müssten Sie Ihren gesamten Code neu schreiben. Alle Informationen, ob cocos2D mit fast demselben Code auf Desktop + Mobile bereitgestellt werden kann, sind sehr willkommen.
  • Angel2D - Sagt, dass es für alles außer Android bereitgestellt werden kann und Lua verwendet, hat jemand dieses jemals zuvor verwendet?
  • libgdx --- Ich habe nur gute Dinge darüber gesehen. Hier ist ein Benchmark-Test für libgdx, bei dem ich gesehen habe, dass er 40.000 Sprites mit 60 fps erreicht. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Es scheint, dass libgdx tatsächlich kaum über 30.000 geht. Aber scheint immer noch erstaunlich. Dies ist für mich auf dem gleichen Niveau wie Qt, fast perfekt, außer dass ich mir keine Sorgen um die Leistung mache. libgdx kann so ziemlich alles bauen.
  • XNA + MonoGame --- Die Leistung von MonoGame scheint nur geringfügig niedriger zu sein als die von libgdx und kann auf den meisten Plattformen erstellt werden. Allerdings weiß ich nicht viel über XNA und ich habe gehört, dass es keine zukünftigen Updates erhalten wird, aber ziemlich stabil ist? Weitere Informationen sind willkommen.
  • Citrus --- Ich habe auch nicht viele Informationen über Citrus. AS3-Game-Engine für iOS, Android, Windows, Mac und mehr.
  • Haxe + OpenFL --- OpenFL (Haxe) ist auf vielen Plattformen nativ, nicht nur auf Flash. Windows, Mac, Linux und Android erhalten alle eine optionale native Bereitstellung oder OpenFL-Laufzeit namens Neko, die theoretisch schneller als Flash ist, und SDL 2.0 wird die iOS-Bereitstellung bald ermöglichen (ish). - Danke an Bojan.
  • Qt-Projekt --- Nur das Qt-Projekt hier zu verlinken, kann für alles bauen und hat eine ziemlich große Community mit vielen Bibliotheken von Drittanbietern, die Ihnen noch weiter helfen.
  • Moai --- Die einzige mir bekannte Lua-Engine, die für Desktop und Mobile gebaut werden kann. Der einzige Nachteil ist, dass die Community nicht so groß ist und die Dokumentation nicht die beste ist. Aber wenn Sie diese bestehen können, ist dies eine großartige Lösung und die, die ich derzeit verwende.
  • Adobe --- Ich kann nicht vergessen, Adobe hier hinzuzufügen, da es auf alles aufbauen kann, was Flash unterstützt.
  • Unity3D --- Die kürzlich angekündigte 2D-Integration sieht sehr vielversprechend aus und sollte im dritten bis vierten Quartal 2013 veröffentlicht werden.
  • Cocos2d-x --- Eine Open Source Engine. Unterstützt JS, Lua, C ++ und mehrere Plattformen.
  • HTML5 --- Die mobilen HTML5-Apps scheinen stark betont zu werden. Hier sind nur einige Tools, mit denen ich Ihr HTML5-Projekt auf eine Plattform portieren kann:

    1. Chrom eingebettet

    2. Sencha

    3. Phonegap

    4. Appcelerator / Titan

    5. Icenium

Ich würde mich freuen, wenn Sie Ihre Erfahrungen mit Motoren kommentieren und vorschlagen könnten, welche Sie empfehlen würden. Danke für Ihre Hilfe!

BEARBEITEN: Da dieses Thema immer beliebter wird, werde ich weitere Optionen hinzufügen, die ich im Laufe der Zeit gefunden habe. Ich schlage vor, Sie wählen das, was Ihnen am vertrautesten und am besten für Ihre Projektanforderungen geeignet ist.


1
OpenFL (Haxe) wird auf vielen Plattformen nativ erstellt, nicht nur auf Flash. Windows, Mac, Linux und Android erhalten alle eine optionale native Bereitstellung oder OpenFL-Laufzeit namens Neko, die theoretisch schneller als Flash ist, und SDL 2.0 wird die iOS-Bereitstellung bald ermöglichen (ish). Loom ist insofern ähnlich (versucht, Flash-Entwickler anzulocken), als es AS3-ähnliches ECMAScript verwendet, aber keinen nativen Code daraus erstellt. Es verwendet jedoch Cocos2D zum Rendern, so dass es theoretisch so schnell sein sollte wie Cocos2D
Bojan Markovic

2
Sie sollten Cocos2d-X wirklich zur Liste hinzufügen
Clay

Sie sollten UDK by Epic Games unbedingt ausprobieren. Es handelt sich tatsächlich um eine vollständige AAA-Engine, die sich an Moder und Indie-Entwickler richtet. Leider wird Android derzeit nicht unterstützt, obwohl die vollständige UE4-Lizenzierung wesentlich verfügbarer ist, was Android unterstützt. Beachten Sie, dass UE4 gerade veröffentlicht wurde und UDK eine ziemlich entwickelte Plattform ist.
Igor Čordaš

Auch wenn Sie etwas Open Source und portables (basierend auf Java) möchten, siehe jMonkeyEngine.
Igor Čordaš

Antworten:


9

Ich würde V-Play (v-play.net) empfehlen - es ist eine plattformübergreifende Spiel-Engine, die auf Qt für iOS, Android, Symbian, MeeGo, Blackberry10 basiert und auch für native Desktop-Anwendungen für Windows, Mac und Linux exportiert werden kann.

Es basiert auf C ++, bietet jedoch eine übersichtliche Skriptunterstützung für QML und JavaScript . QML ist ein Kinderspiel und kann Ihre Produktivität steigern, da weniger Code benötigt wird. Sehen Sie sich einfach den Vergleich mit cocos2d-x (60% weniger Loc) oder Corona (15% weniger LoC) an, um dieselben Spiele zu vergleichen.

(Haftungsausschluss: Ich bin einer der Jungs hinter V-Play)


1
Obwohl ich sicher bin, dass V-Play ein großartiges Produkt ist, sollten Sie einen Haftungsausschluss machen, dass Sie der Mitbegründer sind. Siehe: meta.stackexchange.com/a/59302
Nepoxx

1
Sicher - ich habe es gerade hinzugefügt
Christian Feldbacher

7

Wenn Sie Python verwenden möchten, ist Kivy heutzutage eine großartige Lösung. Es wird auf allen Plattformen kompiliert, nach denen Sie fragen:

Kivy läuft unter Linux, Windows, MacOSX, Android und IOS. Sie können auf allen unterstützten Plattformen denselben Code ausführen. Es kann nativ die meisten Eingabeprotokolle und Geräte wie WM_Touch, WM_Pen, Mac OS X Trackpad und Magic Mouse, Mtdev, Linux Kernel HID, TUIO verwenden. Ein Multitouch-Maussimulator ist enthalten.

Kivy verwendet viel optimierten Code für das Rendern von Grafiken (über Cython), so dass es auch schnell geht.

Hier ist ein Lautsprecherdeck , das Ihnen Hintergrundinformationen und einen Überblick gibt (androidspezifisch).


Während kivy für Spieleentwickler verwendet werden kann, ist es keine exakte Spiel-Engine. Kivyent (kivent.org) ist jedoch eine auf kivy basierende Spiel-Engine, die möglicherweise besser geeignet ist, es sei denn, Ihr Spiel ist sehr einfach und nicht erfordern die zusätzliche Komplexität.
Tshirtman


5

Hier ist mein Spiel-Framework Oxygine . Es ist ein Open Source modernes hardwarebeschleunigtes 2D C ++ Framework für mobile und PC-Plattformen. Funktionen: OpenGL (ES) 2, komprimierte Texturen, Atlanten, komplexe Animationen / Tweens / Sprites, Szenendiagramme, Schriftarten, Ereignisbehandlung, Build-Tools und andere. Kann auf SDL2 oder Marmalade SDK aufgebaut werden.

Auf der Basis der Engine befindet sich ein Szenendiagramm, das dem von Flash ähnelt. Um es kurz zu machen, Sie können dies als Flash für C ++ bezeichnen, aber komfortabler und viel schneller. Ursprünglich wurde es für mobile Plattformen (iOS, Android) entwickelt, kann aber auch für PC-Spiele verwendet werden.

Geben Sie hier die Bildbeschreibung ein


Ich habe es versucht (und tatsächlich ein fertiges Spielprodukt veröffentlicht), funktioniert sehr gut!
Juster

4

Das App Game Kit (AGK) wird hier nicht erwähnt. Lassen Sie mich also die Lücke füllen. Es handelt sich hauptsächlich um ein plattformübergreifendes 2D-SDK, mit dem Sie entweder in C ++ oder in der eigenen "Basic" -Sprache einmal codieren können. Version 2 hat gerade über 400% Finanzierung für Kickstarter erhalten und wird volle 3D-Unterstützung, Wirbelsäulenunterstützung (für 2D-animierte Charaktere), Kugelphysik und eine ganze Reihe weiterer neuer Funktionen bieten.

Es hat bereits Facebook, Twitter, eine Reihe von Ultrabook-Sensorbefehlen, Box2D und mehr. Ich habe es von Anfang an benutzt und liebe es (kannst du sagen?). Nein, ich arbeite nicht für The Game Creators (die Firma, die es erstellt hat), obwohl ich zugebe, dass ich einige Apps gemacht habe.

Eine der aus meiner Sicht besten Funktionen ist, dass Sie sie unter Windows entwickeln und von der IDE über Wi-Fi an jedes unterstützte Gerät senden können. Während ich codiere, kann ich meinen Code (innerhalb von Sekunden) auf iPad, Android, testen. Windows, Mac oder Blackberry Playbook.


4

Wenn Sie C # -Hintergrund haben. Schauen Sie sich Duality an.

Duality ist ein flexibles 2D-Spiel-Framework, das vollständig in C # geschrieben wurde - und das Ihnen die Arbeit ein wenig erleichtern soll. Es bietet sowohl eine erweiterbare Spiel-Engine als auch einen passenden visuellen Editor. Es ist kein Level-Editor, keine Testumgebung oder kein Content Manager erforderlich, da Duality alles für sich ist. Und das Beste von allem: Es ist kostenlos.


1
Schöne Ergänzung. Ich werde es bald zur Liste hinzufügen, plus ein paar mehr, von denen ich erfahren habe, und es besser organisieren. Vielen Dank für Ihre Eingabe
Hassen Names

Ist es plattformübergreifend kompatibel?
JCPhlux

2
@ JCPhlux, ja das ist es. Ich bin mir nicht sicher über Mobile, aber es läuft auf Mono.
Andy

Was ist das für fetzenet.de/blog/?page_id=697 ? Warum nicht diese duality.adamslair.net
RS

Fest. Ich denke, sie haben sich nicht lange bewegt, nachdem ich meine Antwort gepostet
Andy

2

Ich antworte nur, um Ihnen einige Einblicke in die Verwendung der SDL zu geben. Wie Sie bereits sagten, handelt es sich nicht um eine Spiel-Engine (eigentlich handelt es sich nur um eine Bibliothek). Darüber hinaus ist es überhaupt nicht objektorientiert und Sie haben keine einfachen Animationsfunktionen (Sie müssen sie selbst codieren).

Wie es funktioniert (ich habe die C-Version verwendet, aber ich denke, die Lua-Bindung sollte ähnlich sein):

Fügen Sie die Header ein, die zum Erstellen des Projekts auf der gewünschten Plattform erforderlich sind.

Entwerfen Sie Ihre eigene Spielschleife, in der Sie (mindestens) ein ganzes Ereignisverarbeitungssystem, einen Bildratenmanager und einen "Bildschirmreiniger (oder Updater)" einrichten (ich bestehe darauf, dass Sie Ihren Bildschirm manuell aktualisieren müssen Verwenden der Routine SDL_flip_screen, die bei Corona überhaupt nicht zu Ihren Anliegen gehört.

Codieren Sie dann Ihr Spiel mit allen "Mechaniken", die Sie zuvor erstellt haben.

Die SDL ist eine Bibliothek auf niedriger Ebene (erwarten Sie beispielsweise kein einfach zu verwendendes GUI-Framework oder das Storyboard-Framework von Corona).

Schließlich wurde diese Bibliothek verwendet, um Civilization III auf Linux zu portieren. Ja, es funktioniert, aber es wird Sie viel Energie kosten, etwas zu haben, wie Sie es mit Corona hatten;)

PS: Ich bin kein englischer Muttersprachler, also lass es mich wissen, wenn ich nicht klar bin :)



1

Sie haben auch ShiVa3D , einen ernsthaften Konkurrenten von Unity3D. Es verwendet Lua und unterstützt viele Plattformen von Mobilgeräten über Spielekonsolen bis hin zu Webbrowsern.

Sehr intuitiv zu bedienen und sehr schöne Benutzeroberfläche zum Arbeiten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.