Plattformübergreifende 2D-Spiele-Engine für Android und iOS? [geschlossen]


262

Ich habe einige Zeit mit Unity3d gearbeitet und fand den 2D-Teil mit OnGUI () oder GUITextures zu ungeschickt. Selbst ein kleinstes Spiel, das auf Unity3d ausgeführt wird, ist ein Download von mindestens 10 MB, was für ein 2D-Spiel einfach zu viel ist.

Daher suche ich derzeit nach einer Engine für 2D. Ich habe Cocos2D ausprobiert, aber es ist nur iOS und ich möchte nicht alles in eine andere Sprache für Android umschreiben (z. B. ist der Java-Port von Cocos2d für Android keine Option). Stattdessen möchte ich den Code einmal schreiben und ihn mit geringstem Aufwand unter iOS, Android und möglicherweise Windows Phone 7 bereitstellen. Ich habe sowohl Mac als auch Windows.

Um genauer zu sein, hier sind meine Anforderungen an den Motor:

  • muss plattformübergreifend sein
  • muss effizient sein
  • sollte C ++, Java, C # oder Objective C sein, da ich mit ihnen vertraut bin und NICHT Flash, Javascript, HTML5, da ich kein Webentwickler bin
  • Es muss eine große Community, Tutorials und zusätzliche Bibliotheken geben, die die meisten Dinge abdecken, die Sie bei der direkten Entwicklung auf iOS oder Android benötigen (In-App-Abrechnung, Facebook usw.).
  • Das endgültig gelieferte Paket darf nicht zu groß sein
  • Der Motor kann kostenlos sein, aber es würde mir auch nichts ausmachen, einen angemessenen Preis zu zahlen

Ich habe folgende Motoren gefunden:

  • Marmalade (und die IwGame-Engine darüber hinaus) - C ++ hat insgesamt sehr positive Bewertungen von Marmalade gefunden, ist sich aber bei IwGame nicht sicher. EDIT (März 2013) : Es sieht so aus, als ob das Marmalade SDK jetzt Cocos2Dx und eine eingebaute IDE enthält, was es viel besser macht (und 150 USD pro Jahr für Indie-Entwickler kostet, was für mich in Ordnung ist).
  • Corona SDK - Lua (Effizienz zweifelhaft) benötigt ebenfalls eine Internetverbindung, um Code zu kompilieren
  • Cocos2d-x - C ++ erhielt viele Bewertungen von Entwicklern, meistens positiv und viele denken, dass es am besten für 2D ist
  • Partikelcode - Java + Eclipse, keine Bewertungen oder Kommentare gefunden
  • Moai - Lua, ich konnte keine Bewertungen / Meinungen dazu finden
  • Monkey Engine - scheint zu wenig Funktionen zu haben
  • Haxenme - es ist Flash, ich habe es nie benutzt und will es nicht
  • Verwenden Sie Unity3d, jedoch mit 2D-Paketen wie 2D Toolkit
  • Ports von SDL zu Android (auch hier ) und iOS - scheint nicht viel Unterstützung oder aktuelle Entwicklung zu haben (?)
  • GLBasic - Grundsprache, ich mag es nicht
  • playN - scheint früh in der Entwicklung zu sein (?)
  • Gamvas - HTML5 sieht für mich nicht nach einer ausgereiften Engine aus
  • Ignifuga - Python sieht auch nicht ausgereift aus
  • ORX - nicht sicher, ob es noch entwickelt ist (?)
  • Konstrukt 2 - erinnert GameMaker, ist möglicherweise für schnelle Prototypen in Ordnung, aber definitiv nicht für Spiele auf Branchenebene
  • XNA und dann das Spiel mit ExEn portieren (würde Mono Touch zum Portieren auf iOS und Mono für Android zum Portieren auf Android benötigen ) - C #, und ist wahrscheinlich eher für Leute gedacht, die von Microsoft-Produkten wie xBox kommen (ich komme von Android). Außerdem kosten diese Mono-Tools für kleine Entwickler insgesamt 800 US-Dollar
  • Auswirkung - JavaScript verwendet HTML5. Ich mag JavaScript nicht besonders (z. B. bevorzugtes C # auf Unity3d) und bin mir auch nicht sicher, ob es effizient ist, da es im Browser ausgeführt wird (?).
  • 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?
  • AppGameKit - C ++, scheint aber noch ziemlich neu zu sein. Ich habe keine Bewertungen dazu gefunden
  • Verwenden Sie Cocos2D und Objective C, um nur für iOS zu entwickeln, und erstellen Sie dann mit Stella SDK ein APK für Android daraus . Hat jemand das getan? Ich bin mir ziemlich sicher, dass es Einschränkungen geben wird, und wie steht es mit der In-App-Abrechnung, der AdMob- und Facebook-Integration von Google auf Android?
  • Moscrif - JavaScript scheint eher für ehemalige Webentwickler zu sein
  • Starling - Flash 11, ich mag Flash nicht besonders
  • ND2D - noch nicht 1.0, hat es viele Funktionen?

Ich würde mich freuen, wenn Sie Ihre Erfahrungen mit den Motoren kommentieren und vorschlagen könnten, welche in der Liste (oder alles andere, was ich verpasst habe) für die beschriebenen Anforderungen am besten geeignet ist. Ich kann mich auch mit meinen ersten Eindrücken über einige der Motoren irren.

Ich denke derzeit an Marmelade + IwGame als die beste Option, aber da ich nicht viele Informationen über Cocos2d-x und Partikelcode habe, bin ich mir nicht sicher.

Danke dir!

EDIT (Juni 2013): Bisher habe ich 2 plattformübergreifende 2D-Spiele erstellt und Unity3D mit dem 2D Toolkit-Plugin für beide verwendet. Für das Spiel mit einfacher GUI habe ich ein einfaches selbst erstelltes GUI-System verwendet, das auf Unitys eigenem basiert. Für komplexere (z. B. wo sich GUI-Elemente überlappen können) habe ich das NGUI-Plugin verwendet. Kürzlich hat 2D Toolkit einige weitere Klassen für die GUI hinzugefügt, was sehr praktisch ist, da beim Kombinieren von NGUI mit 2D Toolkit zwei verschiedene Systeme für Texturatlanten verwendet werden mussten. Ich werde es auf jeden Fall im nächsten 2D-Spiel versuchen. Der Hauptgrund für die Wahl von Unity3D für 2D-Spiele war, dass ich bereits tief in Unity3D vertieft war, sowohl was die Erfahrung als auch die gesammelten Codefragmente für die Wiederverwendung betrifft. Außerdem habe ich Unity3D Pro (mit Android Pro und iOS Pro) für 3D-Spiele gekauft und es war absolut sinnvoll, nur zusätzliche 60 US-Dollar für das 2D-Toolkit zu zahlen, damit auch 2D-Spiele abgedeckt werden. Ich habe bisher nicht Um meine Entscheidung nicht zu bereuen, scheint sie für meinen Fall optimal gewesen zu sein. Das einzige, was mir Kopfschmerzen bereitete, war das Hinzufügen sozialer Funktionen mit den Plugins von Prime31 (soziale Plugins für Android und iOS), aber ich gehe davon aus, dass ihre Fehler nicht die Schuld von Prime31, sondern von Twitter / Facebook sind, sodass ich wahrscheinlich dieselben Fehler sehen würde jede andere Engine oder jedes andere Plugin.

EDIT (Jan 2014) : Ich denke, mit Unity 4.3 ist die Antwort auf meine Frage jetzt ziemlich offensichtlich: Das neue Spritesystem der Unity und vielleicht auch das 2DToolkit haben alles andere übertroffen, insbesondere für Leute, die (wie ich) schon eine Weile auf Unity waren und kaufte die Pro-Version mit Add-Ons.


und welches hast du gewählt? Was ist mit libgdx oder andEngine? Du hast nicht einmal darüber gesprochen, was ich für die
beliebtesten hielt

1
@kosnkov - Er spezifizierte Anforderungen, die eine zweimalige Schreibbereitstellung beinhalten (iOS und Android mit der Option Windows Phone von Vorteil). andEngine ist nur für Android und libgdx zielt nicht auf iOS (oder Windows Phone) ab, daher sind sie nicht qualifiziert.
Sprite

1
Am Ende habe ich ein 3D-Spiel mit dem Unity3D- und NGUI-Plugin für die GUI gemacht. Wenn ich jemals ein 2D-Spiel machen muss, nehme ich wohl einfach Cocos2d-x und Marmelade
iseeall

1
Nach der Website zu urteilen, bin ich mir ziemlich sicher, dass libgdx jetzt iOS unterstützt. Immer noch kein Windows Phone.
Ehtesh Choudhury

1
Wie kommt es, dass äußerst nützliche Fragen wie diese immer als "Off-Topic" geschlossen werden? Vielleicht sollte SO eine separate Plattform für "Informationen" und Meinungen schaffen
Bogdan Alexandru

Antworten:


33

Ich habe mit gearbeitet Marmaladeund fand es befriedigend. Es ist zwar nicht kostenlos und die Entwickler-Community ist auch nicht groß genug, aber Sie können den größten Teil der Aufgabe mithilfe der Tutorials erledigen. (Ich werde meine Tutorials schreiben, sobald ich auch einige Male habe).
IwGameist ein guter Motor, der von einem der Marmeladenbenutzer entwickelt wurde. Es ist gut für ein einfaches Spiel, aber wenn Sie nach ernsthaften fortgeschrittenen Spielen suchen, können Sie es auch Cocos2D-xmit Marmelade verwenden. Ich habe Cocos2D-x noch nie benutzt, aber es gibt eine Erweiterung für Marmalade Github.
Eine weitere gute Sache bei Marmalade ist EDK (Extension Development Kit), dass Sie damit eine Erweiterung für alle benötigten Funktionen erstellen können, die in nativem Code verfügbar sind, jedoch nicht in Marmalade. ICH'

Bearbeiten :
Marmalade hat jetzt ein eigenes RAD-Tool (Rapid Application Development) nur für die 2D-Entwicklung mit dem Namen Marmalade Quick. Die Codierung erfolgt zwar in Lua, nicht in C ++, aber da sie auf C ++ Marmalade basiert, können Sie problemlos eine C ++ - Bibliothek und alle anderen EDK-Erweiterungen einbinden. Auch die Cocos-2Dxund Box2D-Erweiterungen sind im Quick enthalten. Sie haben kürzlich die Release-Version veröffentlicht (sie war 3-4 Monate in der Beta). Ich denke, wir suchen wirklich nur 2D-Entwicklung, Sie sollten es versuchen.

Update:
Unity3D hat kürzlich die Unterstützung für 2D-Spiele gestartet, die aufgrund ihrer Benutzeroberfläche und ihres Editors besser zu sein scheint als jede andere 2D-Spiele-Engine. Unterstützung für Physik, Sprite usw. ist eingebaut. Sie können es sich ansehen.

Update 2
Marmalade wird das SDK bald zugunsten der eigenen Spieleproduktion einstellen. Es wird also keine kluge Entscheidung sein, sich darauf zu verlassen.


Sie können auch zu dieser Frage SO gelesen - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
Noob

Danke, es sieht so aus, als wäre Marmelade mit Cocos2D-x die beste Option für meinen Fall.
iseeall

2
[LibGDX] [1] zu vergessen, wenn diese Art von Frage gestellt wird, ist unverzeihlich !!! ;) [1]: libgdx.badlogicgames.com
Ewoks

Überprüfen Sie die Updates :-)
Noob

Unreal Engine 4.3.0 kann auch ein Konkurrent sein. Es ist C ++ mit Editor und allem.
Ervinbosenbacher

43

LibGDX ist eine der besten Engines, die ich je verwendet habe, funktioniert auf fast allen Plattformen und arbeitet in den meisten Tests, die ich durchgeführt habe, doppelt so schnell wie cocos2d-x. Sie können jede beliebige JVM-Sprache verwenden. Hier ist ein 13- teiliges Tutorial in Java, und hier ist ein Haufen mit jruby. Es gibt ein gutes Skelett-Animation - Tool , das funktioniert mit ihm hier , und es Unterstützung für geflieste TMX gebacken und abbildet. Das UI-Framework ist fantastisch und verfügt über ein Szenendiagramm und eine API im Schauspielerstil, die cocos2d-Szenen, Sprites und Aktionen ähneln. Die Community ist großartig, Updates werden häufig durchgeführt und die Dokumentation ist gut. Lassen Sie sich vom Java-Teil nicht erschrecken, er ist schnell und Sie können jruby oder scala oder was auch immer Sie möchten verwenden. Ich kann es nur für 2D- oder 3D-Arbeiten empfehlen, es unterstützt beide.


5
Jetzt funktioniert LibGDX auch mit iOS. Aber es kostet ~ 400 $ für Monotouch Lizenz :)
JavaRunner

5
Ab Version 0.9.9 wird RoboVM für iOS verwendet, das kostenlos ist
James McCracken

1
Ich habe sowohl mit LibGDX als auch mit cocos2dx ausgiebig gearbeitet. Und würde sagen, cocos2dx ist viel besser (schnellere Entwicklung + Leistung + Werkzeuge). Wenn Sie nur für Android arbeiten, ist es in Ordnung, LibGDX zu verwenden, andernfalls nicht! Die plattformübergreifende Unterstützung von LibGDX ist sehr, sehr schlecht, was entweder von RoboVM oder Xamarin abhängt. Xamarin und RoboVM machen das Kompilieren und Ausführen unter iOS sehr langsam. Es wird schließlich sehr schwierig zu warten.
user18853

13

Sie erwähnen Haxe / NME, scheinen es aber instinktiv nicht zu mögen. Meine Erfahrungen damit waren jedoch sehr positiv. Sicher, die API ist eine Neuimplementierung der Flash-API, aber Sie können nicht nur auf Flash abzielen, sondern auch HTML5 oder native Windows-, Mac-, iOS- und Android-Apps kompilieren. Haxe ist eine angenehme, moderne Sprache ähnlich wie Java oder C #.

Wenn Sie interessiert sind, habe ich ein wenig über meine Erfahrungen mit Haxe / NME: link geschrieben


Vielen Dank, nur aus Ihrem Artikel: "Wenn Sie ein HTML5 / Javascript- (oder Flash / ActionScript-) Spiel haben und es auf Windows, iOS und darüber hinaus übertragen möchten". Ich denke, diese Engine ist genau für Webentwickler gedacht, die auf mobile Plattformen wechseln möchten.
iseeall

Haxe / NME ist keine Game Engine, sondern eine Plattform, die Teil Ihres Technologie-Stacks ist. Es ist nichts für Webentwickler, die auf mobile Plattformen wechseln möchten. Es ist für Spieleentwickler gedacht, die ihre Spiele auf so viele Plattformen wie möglich bringen möchten, ohne sich mit minderwertigen Sprachen wie JavaScript auseinandersetzen zu müssen. HAXE / NME ist sehr leistungsfähig, aber vom Klang der Dinge her glaube ich nicht, dass es das ist, wonach Sie gesucht haben.
Anber

12

V-Play (v-play.net) ist eine plattformübergreifende Spiel-Engine, die auf Qt / QML basiert und viele nützliche VML-QML-Spielkomponenten für die Verarbeitung mehrerer Anzeigeauflösungen und Seitenverhältnisse, Animationen, Partikel, Physik, Multitouch, Gesten, Wegfindung und mehr. API-Referenz Der Engine-Kern ist in nativem C ++ geschrieben. In Kombination mit dem benutzerdefinierten Renderer erreichen die Spiele auf allen Geräten eine solide Leistung von 60 fps.

V-Play enthält außerdem gebrauchsfertige Spielvorlagen für die erfolgreichsten Spielgenres wie Tower Defense, Plattformspiele oder Puzzlespiele.

Wenn Sie neugierig auf Spiele sind, die mit V-Play erstellt wurden, finden Sie hier eine kurze Auswahl:

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


7

Hier ist nur eine Antwort von Richard Pickup auf LinkedIn auf eine ähnliche Frage von mir:

Ich habe Cocos 2dx Marmelade und Unity sowohl auf iOS als auch auf Android verwendet. Für 2D-Spiele ist cocos2dx jedes Mal der richtige Weg. Unity ist einfach zu viel Overkill für 2D-Spiele und wie bereits erwähnt, ist Marmelade nur eine dünne Abstraktionsschicht, nicht wirklich eine Spiel-Engine. Sie können sogar cocos2d auf Marmelade laufen lassen. Mein Ansatz wäre, cocos2dx unter iOS und Android zu verwenden und dann in Zukunft cocosd2dx-Code über Marmelade auszuführen, um auf einfache Weise auf bb10 zu portieren und Telefon 7 zu gewinnen


7

Ich habe vor ein paar Tagen eine schöne und ordentliche Wave-Game-Engine gefunden. Es verwendet C # und verfügt auch über Windows Phone- und Windows Store-Konverter, was es für mich zu einem großartigen Ersatz für XNA macht


6

und was ist mit LibGDX von BadLogicGames?


1
Ich wusste nicht, dass libGDX unter iOS läuft. Es erfordert eine MonoDroid-Lizenz, die jetzt (wahrscheinlich sehe ich die App nicht unter 32 KB MSIL) 999 US-Dollar statt 399 US-Dollar pro Jahr beträgt.
Asche999

6

Check out Loom ( http://theengine.co ) ist eine neue plattformübergreifende 2D-Game-Engine mit Hot-Swapping-Code und Assets auf Geräten. Dies bedeutet, dass Sie in Photoshop an Ihren Assets arbeiten, Ihren Code aktualisieren, die Benutzeroberfläche Ihrer App / Ihres Spiels ändern und dann die Änderungen auf Ihren Geräten anzeigen können, während die App ausgeführt wird.

Wenn man an die anderen plattformübergreifenden Game-Engines denkt, von denen ich gehört habe oder mit denen ich sogar gespielt habe, ist die Loom Game Engine mit vielen großartigen Funktionen die mit Abstand beste meiner Meinung nach. Die meisten anderen ähnlichen Spiel-Engines (Corona SDK, MOAI SDK, Gideros Mobile) basieren auf Lua (mit einer seltsamen Syntax, zumindest für mich). Die Loom Game Engine verwendet LoomScripts, eine von ActionScript 3 inspirierte Skriptsprache mit einigen von C # entliehenen Funktionen. Wenn Sie jemals in ActionScript 3, C # oder Java entwickelt haben, wird Ihnen LoomScript bekannt vorkommen (und ich bin mit dieser Syntax besser vertraut als mit Luas Syntax).

Die 1-Jahres-Lizenz für die Loom Game Engine kostet 500 US-Dollar, und ich denke, sie ist für jeden Indie-Spieleentwickler ein erschwinglicher Preis. Vor ein paar Wochen wurde eine 1-Jahres-Lizenz kostenlos angeboten. Nach Ablauf der Lizenz können Sie Loom weiterhin zum Erstellen und Bereitstellen Ihrer eigenen Spiele verwenden, Sie erhalten jedoch keine weiteren Updates. Die Macher von Loom sind sehr zuversichtlich und versprachen, ihr Baby ständig zu verbessern, sodass es sich lohnt, eine weitere Lizenz zu erwerben.

Hier sind ohne weiteres die großartigen Funktionen von Loom:

  1. Plattformübergreifend (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Mit dem von Rails inspirierten Workflow können Sie Ihre Zeit mit der Arbeit an Ihrem Spiel verbringen (ein Befehl zum Erstellen eines neuen Projekts und ein anderer Befehl zum Ausführen).

  3. Schneller Compiler

  4. Bearbeitung von Live-Code und Assets

  5. Möglichkeit zur Integration von Bibliotheken von Drittanbietern

  6. Verwendet Cocos2DX zum Rendern

  7. XML, JSON-Unterstützung

  8. LML (Markup Language) und CSS zum Gestalten von UI-Elementen

  9. UI-Bibliothek

  10. Abhängigkeitsspritze

  11. Unit Test Framework

  12. Chipmunk-Physik

  13. Wenn Sie Ihre Änderungen live sehen, können Sie problemlos mehrere Geräte entwickeln

  14. Kleine Downloadgröße

  15. Für Teams gebaut

Weitere Videos zu Loom finden Sie hier: http://www.youtube.com/user/LoomEngine?feature=watch

Schauen Sie sich auch dieses 4-teilige ausführliche Tutorial an: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx


5

Ich habe AppGameKit ausprobiert. Es ist sowohl c ++ als auch Basic. Es ist sehr einfach, 2D-Spiele in der Basisvariable zu codieren, mit Physik, Kollision und Haufen mehr. Es ist auch in der aktiven Entwicklung und wirklich billig (65 $). Das Hauptproblem ist, dass es wirklich schwierig ist, für Android zu kompilieren (Sie müssen jede Menge Dateien herunterladen und schwierigen Anleitungen und ähnlichen Dingen folgen). Meiner Meinung nach ist es noch nicht gut genug für den kommerziellen Gebrauch, aber gut für Indie-Programmierer Es hat eine mittelgroße Community


4

Ich verwende Corona derzeit mit großem Erfolg für Geschäftsanwendungen. Was Spiele betrifft, habe ich den Eindruck, dass es nicht die Leistung bietet, die einige der anderen plattformübergreifenden Entwicklungs-Engines bieten. Es ist erwähnenswert, dass Carlos (Gründer von Ansca Mobile / Corona SDK) ein anderes Unternehmen mit einem konkurrierenden Motor gegründet hat. Lanica Platino Engine für Appcelerator Titanium. Ich habe zwar nicht persönlich damit gearbeitet, aber es sieht vielversprechend aus. Beachten Sie jedoch, dass der Preis 999 US-Dollar pro Jahr beträgt.

Trotzdem habe ich Moai schon eine Weile erforscht (da ich bereits mit der Lua-Syntax vertraut bin) und es scheint vielversprechend. Die Tatsache, dass es für mehrere Plattformen kompiliert werden kann, nicht nur für mobile Umgebungen, ist ansprechend.

Multimedia Fusion 2 ist auch angesichts der Komplexität der produzierten Spiele und der daraus erzielten Leistung ein lohnender Konkurrent. Vincere Totus Astrum ( http://gamesare.com ) fällt mir ein.


3

Kürzlich habe ich eine AS3-Engine verwendet: PushButton (jetzt ist es tot, aber es funktioniert immer noch und Sie könnten etwas anderes verwenden), um diesen Job zu erledigen. Damit es mit Android und iOS funktioniert, wurde das Projekt in AIR für beide Plattformen kompiliert und alles funktionierte ohne Leistungseinbußen. Da Flash Builder ziemlich teuer ist (249 US-Dollar), können Sie FlashDevelop verwenden (es gibt einige Tutorials, die Sie in AIR damit kompilieren können).

Flash könnte eine Option sein, da es sehr einfach zu erlernen ist.

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.