Sepertinya udah lama saya ga bikin game sejak terakhir kali pas jaman flash. Entah gimana rasanya pgn sesekali bikin lagi buat seneng-seneng aja. Tapi, kali rasanya beneran overwhelmed dengan banyaknya game engine! Banyak bgt pilihan, dan hampir semuanya gratis atau minimal ada free tier nya. Bayangin, Sekarang kita bisa develop dan publish game pake Unreal Engine secara gratis. Sesuatu yang ga kepikiran dekade lalu. Ck ck, industri ini beneran udah berubah.
Mungkin hal pertama yang muncul di benak anda ketika membahas tentang game engine adalah Unity. Yup, itu adalah game engine serba bisa yang paling populer. Mulai dari simple casual game, hingga game kelas triple-A. Engine ini mainstream banget, terutama di mobile.
Karena kepopuleran dan komunitasnya yang gede, maka artikel, video tutorial, forum diskusi, contoh-contoh game, asset, dan lain2 bertebaran di internet dan mudah sekali diakses. Juga banyak banget integrasi dengan aplikasi third-party.
Jadi kenapa saya ga pake Unity aja?
Karena di hal-hal tertentu, engine ini tidak selalu yang paling optimal, misalnya:
- Terlalu rumit untuk ukuran kebutuhan saya. Emang Unity ini powerfull bgt. Tetapi untuk game sederhana, rasanya agak overkill ya. Dibutuhkan learning curve lumayan juga untuk mempelajari cara kerjanya. Trus Unity ini juga lagi berkembang sangat pesat. Misalnya: baru-baru ini abis bertransisi ke arsitektur baru yang disebut DOTS, yang emang lebih canggih si, tetapi juga membingungkan bagi pemula.
- Bukan engine terbaik dalam 2D. Meskipun 3D nya bagus banget dan 2D udah jauh lebih baik, tetapi engine lain banyak yang fokus ke 2D dan lebih sederhana serta lebih enteng.
- Ukuran file buildnya cukup besar.
- Versi gratis nya harus nampilin splash screen wajib. Sebenarnya saya ga masalah ama splash screen. Cuma kok ada stereotipe bagi sebagian orang bahwa game Unity dengan splash screen identik dengan game berkualitas rendah. Mudah-mudahan saya salah si, dan semoga ga jadi tren.
- C#, saya ga familiar
- Performa di perangkat low end kurang oke
- Web buildnya/html5 version nya lebih fokus ke desktop, ga gitu kompatibel di browser mobile.
Jadi, saya memutuskan untuk riset kecil2an untuk nyari game engine yang lebih bagus yang cocok dengan kebutuhan kyk gini:
- Game hypercasual 2D alias yang sederhana
- Berperforma tinggi, dengan ukuran build sekecil mungkin,
- Bahasa scripting yang lebih sederhana & gampang.
- HTML5 sebagai target platform utama dan android kedua.
- Plus poin kalo bisa ngebuild apk cukup dengan 1 klik instan. Tanpa harus kompile pake SDK OS nya kyk Android Studio atau XCode.
- Free. Open source diutamakan. Jadi, ga perlu bayar di muka dan fleksibel untuk berdonasi / berkontribusi kapan-kapan.
- Mendukung Metal, jaga-jaga jika bakal rilis di platform Apple.
- Komunitasnya lumayan ada dan enginenya terus aktif didevelop.
Jadi setelah riset awal, kandidat teratas saya adalah Godot, Defold, Cocos Creator dan Solar2D.
Godot
Engine ini sangat populer belakangan ini. Dianggap semacam alternatif open-source dari Unity. Dari referensi yang kami baca, banyak juga yg beranggapan bahwa 2D nya lebih bagus daripada Unity. Godot ini murni open source dan gratis, lisensinya permisif banget.
Bahasa utamanya pake GDScript (mirip Python secara sintaks), tapi selain itu juga support C#, C++ dan lain-lain. Banyak language bindingnya. Tapi mereka kebanyakan adalah kontribusi dari individu atau komunitas, dengan kualitas dan maturity berbeda2.
Kaya akan fitur, mendukung 2D dan 3D. Editornya bagus, enteng dan kenceng. Ga butuh PC spek yang tinggi2 bwt jalaninnya. Banyak built-in featurenya, misalnya aniamtion editor, tile editor, dan lain-lain. Editornya juga ekstensibel. Jadi komunitas bisa bikin plugin.
Dokumentasinya cukup bagus. Lalu artikel tutorial dan youtube juga relatif mudah ditemui.
Untuk game kosong kyk hello world, Build size APK nya sekitar 7.1-11.8MB (bervariasi karna modulenya bisa stripped ketika dikompile). Buat html5, ukuran terkecil (compressed) kira-kira 2.9MB. Lumayan.
Aku masi ga banyak pengalaman make engine ini, tapi untuk performa, rasanya cukupan lah. Sepertinya saat ini performa bukan fokus utama mereka.
GDScript, bahasa resminya, bukanlah python sejati dan menurut orang2 performanya ga bagus. Dukungan C # terlihat bagus (sepertinya disponsori Microsoft) tetapi pake C# bakal bikin build size lebih besar, karna harus include mono runtime nya (untuk C#).
Godot ini lagi aktif banget dikembangkan, dan masa depannya terlihat cerah, terutama karna kepopulerannya.
Defold
Defold adalah game engine berbasis Lua dengan visual editor. Tahun ini baru saja di “open-source” kan, hal ini bikin engine yang daridulu udh keren ini makin menarik lagi.
Tadinya engine ini dipake internally di King (perusahaan game yang bikin Candy Crush Saga yang populer banget itu), namun sekarang udh terpecah dan independen dibawah naungan Defold Foundation. Namun King masi mensupport pengembangannya.
Fiturnya berasa terbatas, namun highly polished dan bener2 memperhatikan performa dan ukuran engine yang ringan. Build size hello world nya kecil banget, html5 kira2 800kb (compressed). sedangkan APK ~1.7MB.
Dokumentasi bagus. Workflownya memiliki pattern tertentu jadi menuntut kita mengikuti cara defold (Misalnya komunikasi antar obyek pake message passing).
Untuk maturity nya, ga usah diragukan. King menggunakan engine ini di beberapa gamenya (Tapi bukan Candy Crush Saga). Jadi Defold ini semacam udh battle tested untuk skala game sepopuler itu.
Untuk support, Defold memiliki komunitas yang kecil tapi aktif dan responsif. Mereka berkumpulnya di forum resmi nya.
Cocos Creator
Ak udh sempet nyobain Cocos Creator dan sejauh ini memberikan good impression. Ga paham juga kenapa kok susah banget nyari tutorial/resources buat game engine ini. Mungkin karena cuma populer di China. Engine ini dibikin oleh perusahaan yang sama ama yang bikin Cocos2D-X yang populer itu. Bedanya Cocos Creator punya Visual IDE ala Unity dan pake JavaScript bwt kodingnya. Karena saya familiar ama JS, maka ini nilai plus. IDE nya berbasis Electron, tapi gada versi Linux nya.
Build size buat HTML nya terbaik. Cuma ~155kb gzipped hello world. Karena dia pake JS native ya. Ideal banget untuk web game, Facebook Instant games dan embedded game yang ada di aplikasi chat. Untuk APK, ukuran terkecil yang aku dapet sekitar 6MB an. Kalo include library armv7 dan arm64bit maka kira-kira 11MB. Sebagai catatan mobile buildnya ini beneran native ya, bukan web hybrid app kayak Apache Cordova.
Tapi, untuk ngebuild versi mobilenya, anda harus setup semua stack native tooling nya, dan compile manual. Jadi prosesnya bukan sekedar instant 1 klik tombol kyk di engine lainnya.
The IDE doesn’t try to do everything. It doesn’t even have a code editor built-in. It rather integrates well with an external code editor like VS Code and popular 3rd party 2D tools like tiled and dragonbones/spine.
IDE nya ga berusaha sok-sok an melakukan semuanya. Bahkan ga ada editor kode built in. Jadi masi butuh teks editor eksternal. Terintegrasi bagus dengan VS Code dan app2 2D pihak ketiga yang populer semisal Tiled, Spine dan DraginBones.
Di China dan asia tenggara, konon engine ini populer dan dipake ama publisher besar kayak Tencent. Jadi cukup battle tested lah untuk skala itu.
Untuk komunitas, ada forum resmi ama discord. Keliatan kecil si. Tapi cukup aktif. Seandainya aja lebih banyak tutorial berbahasa inggris pasti lebih mantap lagi.
Lalu, ia juga semi open-source. Editornya proprietary, namun core enginenya open source (awalnya berbasis dari Cocos2D-X). Tapi core enginenya terintegrasi erat ama IDE nya, Udah sepaket. ga dirancang bwt dipake terpisah.
Honorable Mentions
Corona SDK/Solar 2D
Solar2D is an open-source fork of Corona SDK. Which unfortunately was out of business this year, it was nothing to do with the COVID pandemic, but glad they changed the name. When it was still commercial, the splash screen was mandatory for the free version and was said like “Corona, powered by Corona Labs”, Just Imagine your player reaction when seeing it in 2020.
Solar2D adalah open-source fork dari Corona SDK. Yang sayangnya perusahaannya gulung tikar tahun ini, walaupun tidak ada hubungannya dengan pandemi COVID, tapi untungnya mereka berganti nama. Tadinya, versi gratisnya ada splash screen wajib, pas tampil tulisannya “Corona, powered by Corona Labs”, Bayangin aja reaksi pemain game Anda kalo melihatnya di tahun 2020.
Jadi mereka go open source, dan lead developernya melanjutkan pengembangannya pake dukungan dan pendanaan dari komunitas.
Solar2D tetep sama kyk pendahulunya, masih game engine yang keren, udah teruji lapangan, dan dokumentasi yang bagus banget. Ini salah satu favoritku. Terutama jika anda menyukai workflow yang simple dan code-only (tanpa visual editor).
Solar2D pake Lua. Build sizenya lumayan kecil, kira2 APK nya sekitar 6MB untuk armv7 dan 64bit sekaligus. Saya pernah bikin game simple pake ini. Ga ada masalah ama performa, bahkan di hape yang low end.
Komunitasnya kecil tapi aktif dan orangnya baik-baik. Mereka punya forum resmi dan Discord.
Untuk kekurangannya, walaupun punya fitur html5 build, tapi masi beta, jadi suka ada bug dan kejutan kecil. Versi Vulkan/Metal juga masi belum siap, tpai kayaknya masi dalam proses.
Bagi sebagian orang, tidak adanya visual editor juga merupakan suatu kekurangan.
Note that there are also several good Lua engines like Solar2D. Like Gideros and Love2D. They are all open source and could be comparable to Solar2D. I just feel Solar2D is more polished with better documentation.
Sebagai catatan, sebenarnya ada banyak Lua engine serupa ama Solar2D, misalnya Gideros and Love2D. Semuanya open source. Solar2D adalah favorit pribadiku soalnya terlihat lebih polished dan dokumentasinya bagus.
Game Engine berbasis JS (Pixi, Phaser, dan lain-lain)
Mereka paling cocok untuk html5, tapi untuk versi mobile, anda harus ngewrap sebagai hybrid app kayak Cordova. Jadi kayaknya ga memenuhi kriteria yang aku butuhin.
Saya menyadari bahwa masi banyak game engine bagus diluar sana, tapi sejauh ini yang diatas adalah kandidat utamaku.
Kayaknya butuh dieliminasi lagi hingga tinggal top 2 final.