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.