Blogging for sharing, sekedar berbagi ilmu dan pengalaman

LibGDX, Game Development Framework yang Gratis, Ringan, dan Handal

April 03, 2014 Posted by Ahmad Saifuddin Azhar No comments


Pada artikel-artikel sebelumnya, saya banyak membahas tentang game engine Unity. Mulai dari awal buat blog sampai sekarang mungkin yang ada di blog ini 80% artikel membahas tentang Unity. Pada artikel kali ini saya akan sedikit me-review game engine lain yang mungkin dapat dijadikan pertimbangan dan alternatif lain selain Unity. Sebelumnya saya juga pernah membahas tentang sebuah game engine gratis untuk Android bernama andengine. Nah... Kali ini saya akan membahas tentang sebuah engine gratis lainnya bernama LibGDX. Ok.. Apa itu LibGDX serta kelebihan dan kelemahannya akan segera kita bahas di bawah.

LibGDX merupakan suatu game-development framework yang dikembangkan oleh LibGDX sendiri dimana sebagian besar framework ini ditulis dalam bahasa java meskipun pada beberapa komponen ditulis menggunakan C++. LibGDX bersifat cross platform dimana game yang dihasilkan dapat di jalankan pada beberapa platform seperti Windows, Linux, Mac OS X, Android, WebGL dan iOS. LibGDX dapat di download secara gratis di situs resmi libGDX.

Proses development libGDX secara umum menggunakan bahasa pemrograman java dan sesuai dokumentasi resmi libGDX disarankan untuk menggunakan editor eclipse, meskipun pada penerapannya dimungkinkan untuk menggunakan editor lain seperti Intelij Idea. Sekedar info, pengembangan game menggunakan libGDX yang menggunakan editor Intelij Idea akan memerlukan konfigurasi proyek tambahan agar game bisa berjalan, berbeda dengan menggunakan eclipse yang tinggal import dan siap digunakan.

Hampir sama seperti Unity, meskipun libGDX tersedia untuk berbagai platform namun kelebihan libGDX ini adalah proses development dan debugging dapat dilakukan hanya dengan menggunakan komputer desktop (dalam hal ini saya menggunakan windows) tanpa memerlukan perangkat lain. Setelah debugging siap maka kita dapat melakukan compile dan uji coba sesuai dengan platform yang diinginkan. Hal ini sangat memudahkan karena proses compile dan running program menjadi lebih cepat.

Untuk urusan math dan physic, libGDX secara default menyerahkan kepada Box2D sebagai physic engine-nya. Bagi Anda kalangan game developer mungkin sudah sangat familiar dengan physics engine yang satu ini. Tidak perlu saya jelaskan panjang lebar, yang jelas Physics engine yang satu ini sudah sangat terkenal dan tidak diragukan lagi kemampuannya.

Pada libGDX juga tersedia berbagai 3rd party component, seperti tween engine (untuk membuat animasi menjadi smooth), box2d (seperti yang dijelaskan diatas),  dan berbagai tools 3rd party lainnya (misal untuk multi player, leaderboard, dsb).

Beberapa fitur-fitur lainnya adalah libGDX mampu menangani berbagai jenis input seperti keyboard, mouse, touch screen, bahkan lengkap dengan gesture detector. Untuk urusan simpan-menyimpan game dalam libGDX sudah tersedia lengkap semacam kelas berfungsi sebagai file manager. Output file yang disediakan dapat berupa file json maupun xml.

Berikut adalah beberapa kelebihan libGDX
* Gratis, tidak ada splash screen, dan tidak mengharuskan developer untuk melakukan sesuatu apapun. Hasil produknya juga dapat dikomersilkan tanpa harus berbagi keuntungan (royalti) dengan libGDX.
* Mensupport pengembangan game dalam berbagai platform seperti Windows, Linux, Mac OS X, Android, WebGL dan iOS.
* Proses development dan debugging dapat dilakukan langsung di PC, tidak memerlukan perangkat lain seperti Android, iOS, dsb. Baru ketika proses debugging siap dapat dilakukan compile untuk perangkat yang diinginkan.
* Engine Physics sudah disediakan, secara default menggunakan Box2D.
* Save / load game sudah disediakan, dengan output berupa xml writer atau json.
* Tersedia berbagai 3rd party, seperti leaderboard, multi player, tween, dsb.
* Dokumentasi lengkap, serta banyak tutorial bertebaran di internet.
* Performa game cukup tinggi

Berikut beberapa kelemahan libGDX 
* Sangat primitif, hanya ada code pada editor eclipse, tanpa tampilan visual. Tampilan visual hanya muncul ketika game di run.
* Cukup sulit untuk pemula, apalagi jika konsep OOP belum lancar akan memakan banyak waktu dalam proses development. 
* Proses development relatif lama, apalagi jika dibandingkan dengan game engine berbayar seperti Unity, Flash, dsb. Berdasarkan pengalaman pribadi proses development akan memerlukan waktu 2-3 kali lebih lama dibandingkan dengan menggunakan engine Unity. 

Berikut beberapa contoh capture pengembangan game menggunakan libGDX.

gdx-setup-ui, user interface untuk membuat project baru
gdx-setup-ui, user interface untuk membuat project baru

Physics Body Editor dapat digunakan untuk editor physics yang menghasilkan   file json untuk di load sebagai physic collider di libGDX
Physics Body Editor dapat digunakan untuk editor physics yang menghasilkan 
file json untuk di load sebagai physic collider di libGDX

Texture Packer dapat digunakan untuk membuat texture atlas yang dapat di load di libGDX
Texture Packer dapat digunakan untuk membuat texture atlas yang dapat di load di libGDX 

 proyek libGDX di editor eclipse ADT
 proyek libGDX di editor eclipse ADT

 proyek libGDX di editor eclipse ADT
 proyek libGDX di editor eclipse ADT

Mungkin sekian sedikit artikel dari saya, gak banyak sih, mungkin artikel selanjutnya adalah tutorial membuat sprite sederhana menggunakan libGDX, Ok.. kurang lebihnya saya mohon maaf, terima kasih sudah berkenan membaca blog saya yang ala kadarnya, tetap semangat dan terus berkarya ^^