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.
Antworten:
Ich habe mit gearbeitet
Marmalade
und 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).IwGame
ist 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 auchCocos2D-x
mit Marmelade verwenden. Ich habe Cocos2D-x noch nie benutzt, aber es gibt eine Erweiterung für MarmaladeGithub
.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 dieCocos-2Dx
undBox2D
-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.
quelle
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.
quelle
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
quelle
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)
quelle
Hier ist nur eine Antwort von Richard Pickup auf LinkedIn auf eine ähnliche Frage von mir:
quelle
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
quelle
und was ist mit LibGDX von BadLogicGames?
quelle
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:
Plattformübergreifend (iOS, Android, OS X, Windows, Linux / Ubuntu)
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).
Schneller Compiler
Bearbeitung von Live-Code und Assets
Möglichkeit zur Integration von Bibliotheken von Drittanbietern
Verwendet Cocos2DX zum Rendern
XML, JSON-Unterstützung
LML (Markup Language) und CSS zum Gestalten von UI-Elementen
UI-Bibliothek
Abhängigkeitsspritze
Unit Test Framework
Chipmunk-Physik
Wenn Sie Ihre Änderungen live sehen, können Sie problemlos mehrere Geräte entwickeln
Kleine Downloadgröße
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
quelle
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
quelle
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.
quelle
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.
quelle