it-swarm.com.de

Plattformübergreifende 2D-Spieleentwicklungs-Engines

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 als zu wenig anfühlt.

Mein Hauptinteresse ist, dass es in der Lage ist, auf Desktop AND Mobile zu kompilieren. Zumindest für Folgendes:

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

Ich würde es vorziehen, sich mehr dem Lua-Scripting als ActionScript zuzuwenden, aber Sie können gerne alles posten, mit dem Sie gearbeitet haben und das Sie lieben.

Bisher habe ich folgende Motoren gefunden:

  • Marmalade Quick - Nach weiteren Überlegungen kann Marmalade Quick nur für Mobile bauen!
  • IwGame - Funktioniert auf Marmelade und sagt, dass es mit Lua auf Desktop und Mobile bereitgestellt werden kann. Jede Info wird sehr geschätzt
  • sio2 - "SIO2 ist eine OpenGLES-basierte plattformübergreifende 2D- und 3D-Game-Engine für iOS, Android, MacOS und Windows." Windows. ", Aber ihr Forum- und Webtitel lautet" Game Engine for Mobile Devices ". Sie finden keine Informationen darüber, ob die Bereitstellung auf Desktop-Plattformen möglich ist. Wir freuen uns über jede Information.
  • Loom Engine - Loom ähnelt Haxe + OpenFL (versucht, Flash-Entwickler anzulocken), da es wie ECMAScript AS3 verwendet, aber keinen systemeigenen Code daraus erstellt. Da es jedoch Cocos2D zum Rendern verwendet, sollte es theoretisch genauso schnell sein wie Cocos2D. - Danke an Bojan.
  • SDL - Ich habe an mehreren Stellen gelesen, dass SDL auf nahezu jeder Plattform oder jedem Gerät bereitgestellt werden kann und über eine Lua-Bindung verfügt. Aber ich kann nicht finden, wie das funktioniert, da es kein Motor ist. Jeder, der erklären kann, wie es funktioniert und wenn es möglich ist, wird erneut sehr geschätzt.
  • SFML - "Windows, Linux, Mac OS X und bald Android & iOS." verwendet Lua nicht, kann es aber verwende andere Sprachen wie Java und Python usw. Hat jemand irgendwelche Informationen dazu?
  • Torgue2D - "Torque 2D wurde für OS X-, Windows- und iOS-Geräte entwickelt und funktioniert auf allen Plattformen gleich gut." verwendet TorgueScript und no Android = (
  • Sencha - Scheint auf allen Plattformen zu kompilieren, benutzt auch Javascript, das ich kenne. Aber auch mit V8 JS würde dies im Vergleich zu anderen Optionen in Bezug auf die Leistung gut funktionieren?
  • GameMaker - Eigene Skriptsprache GML und ich erinnere mich an diese als Tool für Nicht-Programmierer. Ist es tatsächlich zu einem echten Motor gewachsen, meine ich ernsthafte Entwicklung?
  • Construct2 - Gleiche Frage wie bei Gamemaker
  • Corona - Lua aber nur für Handys (auch nur für Android und iOS)
  • Cocos2D - Scheint, dass es viele Optionen hat, aber nicht sicher ist, mit der gleichen Sprache? Scheint, als müssten Sie Ihren gesamten Code neu schreiben. Jede Information, ob cocos2D mit fast demselben Code auf Desktop + Mobile bereitgestellt werden kann, wäre sehr willkommen.
  • Angel2D - Sagt, es kann auf alles außer Android und benutzt Lua, hat jemand dieses schon einmal benutzt?
  • libgdx --- Ich habe nur gute Dinge gesehen. Hier ist ein Benchmark-Test für libgdx, bei dem 40.000 Sprites mit 60 fps erreicht wurden. 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 30k geht. Aber scheint immer noch erstaunlich. Dies ist auf dem gleichen Niveau wie Qt für mich, fast perfekt, außer ich mache mir keine großen Sorgen um die Leistung. libgdx kann ziemlich viel für alles bauen.
  • XNA + MonoGame --- Die Leistung von MonoGame scheint nur geringfügig niedriger als die von libgdx zu sein und kann für die meisten Plattformen verwendet werden. Allerdings weiß ich nicht viel über XNA und habe gehört, dass es keine zukünftigen Updates erhält, aber ziemlich stabil ist? Weitere Informationen sind willkommen.
  • Citrus --- Habe auch nicht viele Informationen über Citrus. AS3-Game-Engine, die für iOS, Android, Windows, Mac und mehr geeignet ist.
  • Haxe + OpenFL --- OpenFL (Haxe) wird auf vielen Plattformen nativ erstellt, nicht nur für Flash. Windows, Mac, Linux und Android alle erhalten optional eine native Bereitstellung oder OpenFL-Laufzeit namens Neko, die theoretisch schneller als Flash ist, und SDL 2.0 wird die Bereitstellung von iOS bald ermöglichen (ish). - Dank an Bojan.
  • Qt-Project --- Einfach Qt-Project hier 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 erstellt 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 gerade benutze.
  • Adobe --- Ich kann nicht vergessen, Adobe hier hinzuzufügen, da es auf alles aufbauen kann, was Flash unterstützt.
  • nity3D --- Kürzlich angekündigte 2D-Integration sieht sehr vielversprechend aus, sollte Q3-Q4 von 2013 veröffentlicht werden.
  • Cocos2d-x --- Eine Open Source Engine. Unterstützt JS, Lua, C++ und mehrere Plattformen.
  • Html5 --- Html5-Apps für Mobilgeräte scheinen stark in den Vordergrund zu rücken. Ich habe hier nur einige Tools gefunden, mit denen Sie Ihr Html5-Projekt auf eine Plattform portieren können:

    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 deine Hilfe!

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

82
Hate Names

Ich würde empfehlen V-Play (v-play.net) - 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 exportiert werden kann Windows, Mac und Linux.

Es basiert auf C++, hat aber eine nette Skriptunterstützung für QML & JavaScript . QML ist ein Kinderspiel und kann Ihre Produktivität steigern, da weniger Code benötigt wird - sehen Sie sich nur den Vergleich mit cocos2d-x (60% weniger Loc) oder Corona ( 15% weniger LoC) für einen Vergleich der gleichen Spiele.

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

Wenn Sie Python verwenden möchten, ist Kivy heutzutage eine großartige Lösung. Es wird für alle Plattformen kompiliert, die Sie benötigen:

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

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

Hier ist ein Speakerdeck , das Ihnen Hintergrundinformationen und einen Überblick gibt (Android-spezifisch).

6
dirkjot

Wie wäre es mit HaxeFlixel ? Wir haben eine große Auswahl an Demos und unterstützen natürlich die plattformübergreifende Entwicklung über Haxe + OpenFL. Dies ist ein Open Source-Projekt, das auf GitHub gehostet wird. Wir unterstützen alle wichtigen Plattformen (einschließlich iOS).

5
GameDevSam

Hier ist mein Spiel-Framework Oxygine . Es handelt sich um ein Open Source-Framework mit moderner Hardware-Beschleunigung für 2D-C++ für mobile und PC-Plattformen. Features: 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.

In der Basis der Engine gibt es einen Szenengraphen, der dem Flash ähnelt. Kurz gesagt, 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.

enter image description here

5
Denis Muratshin

Keine Erwähnung von App Game Kit (AGK) hier also lass mich die Lücke füllen. Es handelt sich hauptsächlich um ein plattformübergreifendes 2D-SDK, mit dem Sie entweder einmal in C++ oder in der eigenen "Basic" -Sprache codieren können. Version 2 hat gerade über 400% Geld 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 vieles 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 für eine Weile gemacht habe.

Aus meiner Sicht ist eine der besten Funktionen, dass Sie unter Windows entwickeln und von der IDE= über Wi-Fi auf jedes unterstützte Gerät übertragen können. Während ich codiere, kann ich das also (innerhalb von Sekunden) ) teste meinen Code auf iPad, Android, Windows, Mac oder Blackberry Playbook.

4
Steve H

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

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

4
Andy

Gideros ist eine großartige plattformübergreifende Lua-basierte 2d-Engine , die derzeit beide Plattformen Android und IOS=) unterstützt, aber es wird noch mehr geben. Und Es hat auch einige großartige Funktionen, wie z. B. sofortiges Testen des Geräts, automatische Skalierung und automatische Bildauflösung, um verschiedene Bildschirmgrößen problemlos anzuvisieren, sowie die Option, jede Plattform durch native Plugins zu erweitern.

2
Artūrs Sosins

Ich antworte nur, um Ihnen einige Einblicke in die Verwendung von SDL zu geben. Wie Sie bereits sagten, handelt es sich nicht um eine Spiele-Engine (es handelt sich eigentlich nur um eine Bibliothek). Außerdem 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.

Gestalten Sie Ihre eigene Spieleschleife, in der Sie (mindestens) ein ganzes Event-Verarbeitungssystem, einen Frame-Rate-Manager und einen "Bildschirmreiniger (oder Updater)" einrichten (ich bestehe darauf, dass Sie Ihren Bildschirm manuell aktualisieren müssen) Verwenden der Routine SDL_flip_screen, die für Corona überhaupt nicht von Belang ist.

Dann codiere dein Spiel mit allen "Mechaniken", die du vorher gemacht hast.

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

Schließlich wurde diese Bibliothek verwendet, um Civilization III auf Linux zu portieren, also funktioniert es, aber Sie werden viel Energie benötigen, um etwas zu haben, wie Sie es mit Corona getan haben;)

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

2
Julien

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 zu arbeiten.

1
Exsigth