Perpustakaan / Kerangka Kerja / Mesin Game 2D untuk Android [ditutup]

89

Apakah ada hal-hal seperti itu yang tersedia untuk membantu saya membangun game Android saya?

Bryan Denny
sumber

Jawaban:

63

EDIT: PSA: Ingatlah bahwa jawaban ini ditulis pada tahun 2012, dan 3 tahun kemudian, ada lebih banyak mesin, dan banyak di antaranya dibuat murni untuk perangkat seluler. Jangan anggap remeh jawaban ini dan cari google untuk mesin yang lebih baru.


Saya port Irrlicht di Android dan menggunakannya untuk game 2D. Itu bukan solusi terbaik tetapi saya memiliki kinerja yang kuat. Saya sudah mencoba banyak Java Frameworks tetapi Garbage Collector dapat menunda game Anda selama 0,2 detik di ponsel G1 ... Jadi framework tersebut harus melakukan alokasi dengan sangat hati-hati.

Kerangka kerja C ++ komersial:

  • unity3D : sangat bagus (tersedia di Android, iOS, Web, Windows, OS X) [Game: Rocket Bunnies]
  • Unreal Engine (commercial): engine terbaik tetapi tidak untuk pemula [Game: Dungeon Defenders]

Kerangka kerja C ++ Open Source:

  • SDL : mungkin perpustakaan C terbaik untuk pengembang game, sumber terbuka, dan lintas platform (termasuk seluler)
  • Ogre3D : engine 3d open source terbaik tetapi merupakan kerangka besar
  • Irrlicht : kinerja bagus, kerangka cahaya [Game: Moblox]
  • Linderdaum Engine : open source untuk Windows dan Android
  • Cocos2d-x : platform lintas sumber terbuka

Kerangka Kerja Open Source Java:

  • LibGDX : Sumber Terbuka, Sangat Populer, Mendukung banyak platform, Dukungan untuk Ubin, Box2D dan lainnya, Dokumentasi yang Baik
  • AndEngine (Open Source): kinerja bagus. Untuk dokumentasi, lihat contoh dan baca kode sumber; tetapi perpustakaan gratis untuk memulai proyek game [Game: Drop Block]
  • cocos2d untuk Android: Masalah Kolektor Sampah
  • rokon : kinerja baik dan dirancang untuk seluler tetapi proyek tampaknya mati.

Mesin Fisika:

  • box2d (OpenSource): cepat dan mudah
  • jbox2d (OpenSource): sangat lambat di Jawa sehingga saya membuat pembungkus JNI dengan SWIG untuk menggunakan box2d asli (AndEngine melakukan hal yang sama)
  • chipmunk (OpenSource): cepat tapi saya lebih suka box2d
  • bullet (OpenSource): mesin 3D yang luar biasa

Peringatan, dengan Froyo dan JIT, perpustakaan Java berkinerja lebih baik. Namun masalah Pengumpul Sampah selalu valid. Dengan Gingerbread, pengumpul sampah terus menerus sehingga tidak ada masalah.

Ellis
sumber
1
Saya juga ingin menambahkan cocos2d-x, itu pada lisensi MIT dan berfungsi pada Android, iOS, dan Windows Phone. Saya percaya ini berbeda dari apa yang disebutkan di atas karena ini khusus di C ++ bukan Java.
Jamornh
AndEngine meminjam pembungkus box2d dari libgdx.
Matsemann
6
Unity3d bukan C ++. Ini mendukung C #, dialek Javascript dan boo
lhk
Anda pasti bisa melakukannya melalui asli jika Anda mau. Orang-orang yang membuat Tiny Words melakukan jmoses.co/2014/10/23/…
John Moses
1
SDL bukan Java; itu C. Java yang mungkin Anda alami adalah pembungkus / binding yang memanggil kode C. Tidak ada fungsi mesin yang terjadi di Java.
Slipp D. Thompson
24

Saya terkejut bahwa tidak ada yang menyebutkan libgdx. http://code.google.com/p/libgdx/

grayger
sumber
libgdx dan AndEngine adalah yang terbaik untuk 2d, di sini Anda dapat menemukan lebih banyak tautan
michael
@michael tutorial forum AndEngine lengket: cukup gunakan garpu garpu AndEngine ... banyak masalah, bug. Saya tidak merekomendasikan untuk mempelajarinya dari sana.
matheszabi
11

AndEngine cukup baru, tetapi open source dan terlihat menjanjikan.

Deskripsi diri:

Mesin Game OpenGL 2D Android Gratis. AndEngine dikembangkan oleh Nicolas Gramlich.

cstack
sumber
1
Saya telah melakukan sedikit percobaan dalam hal ini, datang dari Cocos2d di iPhone, dan tampaknya cukup bagus sejauh ini untuk game 2d berbasis sprite. Proyek ini tampaknya aktif dan memiliki komunitas forum yang layak di sekitarnya.
Matt Guest
Tentang AndEngine ... Saya mulai membuat game yang cukup mendasar dan setelah beberapa saat saya mulai menemukan ulasan negatif tentang AndEngine terutama kinerjanya dengan banyak sprite. Jadi, saya melakukan tes dan menambahkan 20 sprite ke game saya saat masih di awal dev. Saya melakukan segalanya "berdasarkan buku" dan hampir membunuh keinginan HTC saya Z. Cukup kecewa dan beralih ke LibGDX.
@AscensionSystems Saya tidak tahu apa yang Anda lakukan di sana, tapi saya tahu Anda salah melakukannya. Dengan Desire Z Anda dapat dengan mudah memiliki ratusan Sprite bergerak di layar. Cukup jalankan tolok ukur dalam contoh dan Anda akan melihat bagaimana melakukannya dengan benar.
Nicolas Gramlich
Terima kasih, Nicolas. Saya menghargai kenyataan bahwa Anda "mencuat" untuk mesin Anda, tetapi terus terang saya tidak melakukan kesalahan. Ini ada hubungannya dengan android dan bug dengan panggilan VBO juga memicu GC. Saya bisa mendapatkan andengine bekerja dengan baik dengan menonaktifkan VBO tetapi itu juga membuat ponsel saya menjadi sangat panas sehingga akan hilang setelah sekitar 5 menit bermain. Saya memiliki masalah yang sama dengan libGDX, jadi saya menulis mesin sendiri di C ++. Anda juga tidak bisa mendapatkan "ratusan" di layar menggunakan aplikasi contoh. Saya dapat memperoleh sekitar 90 128x128, 2 "bingkai" animasi sprite fisik sebelum ia ketinggalan dengan mesin Anda.
(terus menerus) ... di mesin saya, saya bisa mendapatkan sprite fisik animasi 170 "512x512, 16" frame "di layar sebelum saya melihat framerate saya bahkan mulai turun di bawah 60 fps.
8

Saya pikir Anda bisa menggunakan game Pulau Replika dari Chris Pruett sebagai contoh game 2d. Saya pikir itu seharusnya menjadi basis untuk game lain seperti yang dijelaskan dalam video ini dari Google I / O 2010. Anda bisa menonton game di sini .

Ariel
sumber
Ya, itu video yang bagus, pasti patut ditonton terutama ketika dia berbicara tentang efisiensi.
Spidey
7

Unity3D (yang secara teknis dapat digunakan untuk membuat game 2D) "segera hadir" untuk Android: http://unity3d.com/

Bryan Denny
sumber
Yup saya sangat setuju. Kedua, jika Anda membayar lisensi Unity3D, Anda dapat menerbitkan karya yang sama untuk beberapa platform. Jadi Anda mulai dengan lisensi WINDOWS / MAC GRATIS. Pelajari programnya. Kemudian tingkatkan lisensi ke platform apa pun yang Anda inginkan terlebih dahulu. Namun saat ini Android, hanya edisi PRO yang berarti Anda memerlukan Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK
Setelah membuat 10-15 game 2D menggunakan Cocos2D untuk iOS, saya membuatnya menggunakan Unity 4.6 dan itu adalah pengalaman yang mengerikan, lambat dan buggy - untuk iOS - tidak bisa mengatakan apa-apa tentang kinerja untuk platform lain .. Sementara 4,6 meningkat cukup banyak bekerja dengan hal-hal 2D sejak sebelumnya, itu tidak ada di dekat mesin rendering 2D khusus seperti Cocos2D atau mungkin kebanyakan lainnya. Performanya mengerikan dan mereka masih berjuang dengan dukungan iOS 64 bit. Yang mengatakan, tentu saja kekuatan multiplatform adalah ... kekuatan terbesar.
Jonny
5

cocos2d untuk Android didasarkan pada perpustakaan cocos2d iPhone . Saya tidak yakin bagaimana dapat digunakan saat ini tetapi ada baiknya memeriksa.

Firas Assaad
sumber
4

Rokon terlihat cukup bagus, belum mencobanya sendiri tetapi tampaknya cukup aktif.

Spidey
sumber
4

androidbox2d adalah port android Box2D. Box2D adalah kaya fitur 2d mesin fisika tubuh kaku.

Adam Harte
sumber
4

Ada port Android SDL saat ini sedang berlangsung, dan SDL mungkin merupakan kerangka kerja grafis 2D terbaik di luar sana. Itu dirancang oleh salah satu lead di Blizzard, jadi Anda tahu beberapa keahlian nyata dalam membangun game telah masuk ke dalamnya.

Mason Wheeler
sumber
3

SIO2 Game Engine. Baru saja merilis versi baru dengan Dukungan Android penuh. Anda dapat membuat game 2D dan 3D dengan menggunakannya dan port di antara berbagai platform. http://sio2interactive.com

Gabriel
sumber
3

MESIN GAME Slick2D dan EMAS

Eliezer
sumber
+1 untuk Slick2D - Saya telah melakukan sedikit dengan itu dan tampaknya cukup solid. Pengembang juga telah merilis beberapa game Android.
mrohlf
2

Saya sedang mengerjakan mesin game 2d open source bernama YoghurtGum yang seharusnya untuk Windows Mobile dan Android. Namun, porting semuanya ke Android C ++ telah terbukti sangat sulit.

Ini adalah jawaban yang paling tidak membantu, saya sadar.

knight666
sumber
2

Jika Anda suka mengembangkan AIR untuk Android maka Anda dapat menggunakan Flash. Flash itu sendiri tidak memiliki fitur permainan khusus, sungguh, tetapi berkat kesuksesan Flash di web ada sejumlah besar perpustakaan pihak ke-3 untuk itu yang dirancang khusus untuk permainan.

Beberapa kerangka kerja pihak ke-3 yang lebih populer untuk game di Flash termasuk Flixel (http://flixel.org/) dan PushButtonEngine (http://pushbuttonengine.com/), yang dirancang sepenuhnya untuk pengembangan game. Flash juga memiliki versi Box2D (mesin fisika yang disebutkan di atas - http://box2dflash.sourceforge.net/ ) dan ada berbagai perpustakaan 3D, seperti Papervision (http://code.google.com/p/papervision3d/) jika Anda ingin menyusuri jalan itu di masa depan.

Kerugian utama dari pengembangan di AIR, adalah bahwa saya cukup yakin bahwa Anda harus menargetkan Froyo 2.2 atau lebih baru, sehingga handset yang lebih tua akan ditinggalkan.

Kyle Rodgers
sumber
Selain AndEngine, saya telah bermain dengan AIR untuk Android Betas, dan mereka cukup bagus, jika agak lambat. Saya pikir ini akan bekerja dengan baik untuk game strategi, atau game aksi tanpa terlalu banyak elemen. Saya telah bekerja dengan beta pada 2.1, jadi rilis final pada 2.2 mungkin sangat cepat, saya belum yakin. Pasti sesuatu untuk ditonton.
Matt Guest
1

Cocos2D-x adalah port Cocos2D untuk iPhone yang ditulis dalam C ++ yang menargetkan Android NDK dan secara aktif sedang dikembangkan untuk mencapai paritas fitur dengan versi iPhone. Itu tidak akan memiliki masalah pengumpulan sampah, dan Anda akan mendapatkan port yang relatif mudah untuk iOS, Win32, dan mungkin akhirnya OSX dalam waktu dekat.

Steve Tranby
sumber
0

PlayN adalah kerangka kerja game multiplatform 2D yang menargetkan Android selain HTML5, Flash dan JVM. Ini agak baru, tetapi digunakan untuk menulis implementasi HTML5 dari Angry Birds, dan memiliki komunitas yang cukup aktif.

samskivert
sumber