2D-Spielbibliotheken / Frameworks / Engines für Android [geschlossen]

89

Gibt es solche Dinge, die mir beim Erstellen meines Android-Spiels helfen?

Bryan Denny
quelle

Antworten:

62

EDIT: PSA: Denken Sie daran, diese Antwort wurde im Jahr 2012 geschrieben, und 3 Jahre später gibt es viel mehr Motoren, und viele von ihnen sind nur für mobile Geräte gemacht. Halten Sie diese Antwort nicht für selbstverständlich und durchsuchen Sie Google nach neueren Suchmaschinen.


Ich portiere Irrlicht auf Android und benutze es für 2D-Spiele. Es ist nicht die beste Lösung, aber ich habe starke Leistungen. Ich habe viele Java-Frameworks ausprobiert, aber der Garbage Collector kann Ihre Spiele auf dem G1-Telefon während 0,2 Sekunden verzögern ... Daher sollte das Framework die Zuordnung sehr sorgfältig durchführen.

Kommerzielle C ++ Frameworks:

  • unity3D : sehr gut (verfügbar für Android, iOS, Web, Windows, OS X) [Spiel: Rocket Bunnies]
  • Unreal Engine (kommerziell): die beste Engine, aber nicht für Anfänger [Spiel: Dungeon Defenders]

Open Source C ++ Frameworks:

  • SDL : wahrscheinlich beste C-Bibliothek für Spieleentwickler, Open Source und Cross-Plattform (inklusive Handy)
  • Ogre3D : die beste Open Source 3D Engine, aber es ist ein großes Framework
  • Irrlicht : gute Leistung, leichtes Framework [Spiel: Moblox]
  • Linderdaum Engine : Open Source für Windows und Android
  • Cocos2d-x : Open Source Cross-Plattform

Java Open Source Frameworks:

  • LibGDX : Open Source, sehr beliebt, unterstützt mehrere Plattformen, Unterstützung für Tiled, Box2D und andere, gute Dokumentation
  • AndEngine (Open Source): gute Leistung. Schauen Sie sich zur Dokumentation Beispiele an und lesen Sie den Quellcode. aber es ist die freie Bibliothek, um ein Spielprojekt zu beginnen [Spiel: Drop Block]
  • cocos2d für Android: Garbage Collector-Problem
  • rokon : gute leistung und für mobilgeräte entwickelt, aber das projekt scheint tot zu sein.

Physik-Engine:

  • box2d (OpenSource): schnell und einfach
  • jbox2d (OpenSource): so langsam auf Java, dass ich einen JNI-Wrapper mit SWIG erstellt habe, um native box2d zu verwenden (AndEngine macht das gleiche)
  • chipmunk (OpenSource): schnell aber ich bevorzuge box2d
  • bullet (OpenSource): hervorragende 3D-Engine

Achtung, mit Froyo und JIT erzielen Java-Bibliotheken eine viel bessere Leistung. Die Garbage Collector-Probleme sind jedoch immer gültig. Mit Gingerbread ist der Müllsammler ununterbrochen, also kein Problem.

Ellis
quelle
1
Ich möchte auch cocos2d-x hinzufügen, es ist auf der MIT-Lizenz und funktioniert sowohl auf Android, iOS und Windows Phone. Ich glaube, dass dies anders ist als das, was oben erwähnt wurde, da dieses speziell in C ++ und nicht in Java ist.
Jamornh
AndEngine leiht den Box2D-Wrapper von libgdx aus.
Matsemann
6
Unity3d ist nicht C ++. Es unterstützt C #, einen Javascript - Dialekt und boo
lhk 27.12.12
Sie können es auf jeden Fall durch native tun, wenn Sie auch wollten. Die Jungs, die Tiny Words gemacht haben, haben jmoses.co/2014/10/23/…
John Moses
1
SDL ist nicht Java. Es ist C. Das Java, das Sie möglicherweise erlebt haben, ist ein Wrapper / Bindings, der den C-Code aufruft. Keine der Funktionen der Engine ist in Java verfügbar.
Slipp D. Thompson
24

Ich bin überrascht, dass niemand libgdx erwähnt hat. http://code.google.com/p/libgdx/

Grayger
quelle
libgdx und AndEngine eignen sich am besten für 2d, hier gibt es noch einen Link
michael
@ Michael AndEngine Forum Tutorial klebrig: Verwenden Sie einfach eine Gabel von einer Gabel von AndEngine ... eine Menge Ärger, Bugs. Ich empfehle nicht, es von dort zu lernen.
Matheszabi
11

AndEngine ist ziemlich neu, aber es ist Open Source und sieht vielversprechend aus.

Selbstbeschreibung:

Kostenlose Android 2D OpenGL Game Engine. AndEngine wird von Nicolas Gramlich entwickelt.

cstack
quelle
1
Ich habe ein wenig experimentiert, von Cocos2d auf dem iPhone, und es scheint bisher für Sprite-basierte 2D-Spiele ziemlich schön zu sein. Das Projekt scheint aktiv zu sein und hat eine anständige Forum-Community.
Matt Guest
Über AndEngine ... Ich fing an, ein ziemlich einfaches Spiel zu machen, und nach einer Weile fand ich negative Kritiken über AndEngine, insbesondere über seine Leistung mit vielen Sprites. Also habe ich einen Test gemacht und 20 Sprites zu meinem Spiel hinzugefügt, als ich noch im frühen Entwicklungsstadium war. Ich habe alles "nach Lust und Laune" gemacht und fast mein HTC Desire Z getötet. Ziemlich enttäuscht und auf LibGDX umgestiegen.
@AscensionSystems Ich weiß nicht, was Sie dort gemacht haben, aber ich weiß, dass Sie es falsch gemacht haben. Mit einem Desire Z können Sie problemlos Hunderte von sich bewegenden Sprites auf dem Bildschirm haben. Führen Sie einfach die Benchmarks in den Beispielen aus und Sie werden sehen, wie es richtig gemacht wird.
Nicolas Gramlich
Danke Nicolas. Ich weiß die Tatsache zu schätzen, dass Sie sich für Ihren Motor "stark gemacht" haben, aber ehrlich gesagt habe ich nichts falsch gemacht. Es hat etwas mit Android zu tun und ein Fehler mit den VBO-Aufrufen, die ebenfalls den GC auslösen. Durch Deaktivieren von VBOs konnte ich einen einwandfreien Betrieb erreichen, aber dadurch wurde mein Telefon auch so heiß, dass es nach etwa 5 Minuten Spielzeit ausfiel. Ich hatte das gleiche Problem mit libGDX und schrieb meine eigene Engine in C ++. Außerdem können mit der Beispiel-App keine "Hunderte" auf dem Bildschirm angezeigt werden. Ich könnte ungefähr 90 physische Sprites mit einer Auflösung von 128 x 128 und 2 "Frames" erhalten, bevor sie mit Ihrer Engine nacheilen würden.
(Fortsetzung) ... in meiner Engine kann ich animierte physische Sprites mit einer Auflösung von 170, 512 x 512 und 16 "Frames" auf dem Bildschirm anzeigen, bevor meine Framerate sogar unter 60 fps absinkt.
8

Ich denke, Sie könnten das Spiel Replica Island von Chris Pruett als Beispiel für ein 2D-Spiel verwenden. Ich denke, es soll eine Basis für andere Spiele sein, wie es in diesem Video von Google I / O 2010 erklärt wird. Sie können das Spiel hier ansehen .

Arielsan
quelle
Ja, das ist ein gutes Video, auf jeden Fall eine Uhr wert, besonders wenn er über Effizienz spricht.
Spidey
7

Unity3D (das technisch verwendet werden kann, um 2D-Spiele zu erstellen) ist für Android "in Kürze" erhältlich: http://unity3d.com/

Bryan Denny
quelle
Ja, dem stimme ich voll und ganz zu. Zweitens können Sie, wenn Sie für Unity3D-Lizenzen zahlen, dasselbe Werk für mehrere Plattformen veröffentlichen. Sie beginnen also mit der KOSTENLOSEN WINDOWS / MAC-Lizenz. Lerne das Programm. Aktualisieren Sie dann die Lizenz auf die Plattform, die Sie zuerst für geeignet halten. Derzeit ist Android jedoch nur eine PRO-Edition, was bedeutet, dass Sie Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK
Nachdem ich 10-15 2D-Spiele mit Cocos2D für iOS erstellt hatte, erstellte ich eines mit Unity 4.6 und es war eine schreckliche Erfahrung. Langsam und fehlerhaft - für iOS - kann ich nichts über die Leistung für andere Plattformen sagen. Während 4.6 sich ziemlich stark verbesserte Bei der Arbeit mit 2D-Inhalten seit früher ist es weit entfernt von einer dedizierten 2D-Rendering-Engine wie Cocos2D oder den meisten anderen. Die Leistung ist schrecklich und sie kämpfen immer noch mit iOS 64-Bit-Unterstützung. Das heißt, natürlich ist die Multiplattform-Stärke die größte ... Stärke.
Jonny
5

cocos2d für Android basiert auf der iPhone cocos2d Bibliothek. Ich bin mir nicht sicher, wie brauchbar es im Moment ist, aber es lohnt sich, es auszuprobieren.

Firas Assaad
quelle
4

Rokon sieht ziemlich gut aus, habe es selbst noch nicht ausprobiert, aber es scheint ziemlich aktiv zu sein.

Spidey
quelle
4

androidbox2d ist der Android-Port von Box2D. Box2D ist eine funktionsreiche 2D-Starrkörper-Physik-Engine.

Adam Harte
quelle
4

Derzeit läuft eine Android-Version von SDL , und SDL ist wahrscheinlich das beste 2D-Grafik-Framework auf dem Markt. Es wurde von einem der führenden Entwickler von Blizzard entwickelt, sodass Sie wissen, dass einige Fachkenntnisse im Bereich der Spielentwicklung vorhanden sind.

Mason Wheeler
quelle
3

SIO2 Game Engine. Gerade eine neue Version mit vollem Android-Support veröffentlicht. Sie können damit 2D- und 3D-Spiele erstellen und zwischen verschiedenen Plattformen portieren. http://sio2interactive.com

Gabriel
quelle
3

Slick2D und GOLDEN T GAME ENGINE

Eliezer
quelle
+1 für Slick2D - Ich habe ein bisschen damit gemacht und es scheint ziemlich solide zu sein. Der Entwickler hat auch einige darauf basierende Android-Spiele veröffentlicht.
mrohlf
2

Ich arbeite an einer Open-Source-2D-Spiele-Engine namens YoghurtGum, die sowohl für Windows Mobile als auch für Android gedacht ist. Es hat sich jedoch als äußerst schwierig erwiesen, das Ganze auf Android C ++ zu portieren.

Dies ist die wenig hilfreiche Antwort, die ich je erhalten habe.

knight666
quelle
2

Wenn Sie Lust haben, in AIR für Android zu entwickeln, können Sie Flash verwenden. Flash selbst hat eigentlich keine spielspezifischen Funktionen, aber dank des Erfolgs von Flash im Web gibt es eine Vielzahl von Bibliotheken von Drittanbietern, die speziell für Spiele entwickelt wurden.

Einige der beliebtesten Frameworks von Drittanbietern für Flash-Spiele sind Flixel (http://flixel.org/) und PushButtonEngine (http://pushbuttonengine.com/), die vollständig für die Spieleentwicklung entwickelt wurden. Flash hat auch eine Version von Box2D (Physics Engine, siehe http://box2dflash.sourceforge.net/ ) und es gibt verschiedene 3D-Bibliotheken wie Papervision (http://code.google.com/p/papervision3d/). wenn Sie diesen Weg in Zukunft gehen wollen.

Der Hauptnachteil der Entwicklung in AIR ist jedoch, dass ich mir ziemlich sicher bin, dass Sie Froyo 2.2 oder höher als Ziel verwenden müssen, damit ältere Handys nicht mehr verwendet werden.

Kyle Rodgers
quelle
Zusätzlich zu AndEngine habe ich mit AIR für Android-Betas gespielt und sie sind ziemlich nett, wenn auch etwas langsam. Ich denke, es wird gut für Strategiespiele oder Actionspiele ohne zu viele Elemente funktionieren. Ich habe jedoch mit der Beta von 2.1 gearbeitet, sodass die endgültige Version von 2.2 möglicherweise sehr schnell ist. Ich bin mir noch nicht sicher. Auf jeden Fall etwas zu sehen.
Matt Guest
1

Cocos2D-x ist eine in C ++ geschriebene Portierung von Cocos2D für das iPhone, die auf das Android NDK abzielt und aktiv entwickelt wird, um die Funktionsgleichheit mit der iPhone-Version zu erreichen. Es wird keine Probleme mit der Garbage Collection geben, und Sie werden in naher Zukunft einen relativ einfachen Port für iOS, Win32 und möglicherweise OSX erhalten.

Steve Tranby
quelle
0

PlayN ist ein Multiplattform-2D-Spiel-Framework, das neben HTML5, Flash und JVM auch auf Android abzielt . Es ist etwas neu, wurde aber zum Schreiben der HTML5-Implementierung von Angry Birds verwendet und hat eine recht aktive Community.

samskivert
quelle