Banyak dari para programmer yang mungkin ingin membuat game namun apa daya mereka ternyata kelabakan untuk memilih engine yang tepat sebagai workspacenya.
Sejujurnya saya dulu pernah galau ingin buat game memakai engine apa. Saya khawatir kalau engine yang saya pilih ternyata tidak memenuhi spesifikasi dari game saya tersebut.
Misalnya, saya ingin membuat game yang dapat diekspor ke mobile, entah Android/iOS. Ternyata engine yang saya pilih ternyata hanya mendukung ekspor ke Android saja, namun tidak ke iOS. Jadilah saya mencari alternatif lain.
Dan setelah engine yang memenuhi ekspektasi saya perihal ekspor ke mobile ditemukan, ternyata masalah belum selesai sampai situ. Ternyata ada fitur lain yang saya butuh ternyata tidak ada di engine tersebut.
Saya ingin benar-benar memilih engine yang tepat sebelum buat game karena cukup melelahkan untuk mengadaptasi dan mengkonversi seluruh kodingan game saya dari engine lama ke engine baru.
Tentu saja, beda engine, beda kebijakan, bahkan beda bahasa pemrograman.
Akhirnya saya menuliskan kiat-kiat bagi diri saya sendiri agar dapat dengan mudah memilih engine yang tepat untuk game saya.
Saya harus menjabarkan seluruh fitur yang kira-kira game saya miliki. Misalnya:
Setelah semuanya saya tuliskan, kemudian saya pilih beberapa kandidiat engine yang saya pikir memenuhi beberapa kriteria di atas. Setelah itu, saya mencocokkan keseluruhan spesifikasi dari engine tersebut.
Engine yang memiliki skor terbanyak akan saya pilih.
Maksudnya skor terbanyak, saya akan memilih engine yang berhasil menceklis seluruh kriteria di atas alias 6/6, dibandingkan engine lain yang hanya sampai 4/6 atau 5/6.
Untuk mengantisipasi jika ke depannya ada suatu alasan super darurat yang membuat saya harus beralih engine, atau setidaknya, untuk memenuhi ekspektasi saya yang lain, saya mendetailkan seluruh algoritma-algoritma game saya menjadi sebuah snippet.
Misalnya, untuk fitur gravitasi, saya menuliskannya dalam bentuk catatan komentar yang siap dikonversi ke dalam bahasa lain untuk berjaga-jaga.
Selain itu, menuliskan seluruh algoritma dalam sebuah catatan atau komentar dapat menjadi sebuah dokumentasi game tersebut.
Jadi sebagai contoh untuk objek pemain, seluruh aktivitas saat dia lompat, naik tangga, menembak, dan lain sebagainya, semuanya terangkum dalam bahasa manusia agar bagian tersebut dapat mudah dicari saat bermasalah.
Mempelajari kemauan si engine sangat penting karena dapat menjadi rujukan seberapa mudah dan cepat engine tersebut dapat dikuasai.
Misalnya, saya biasanya mencari tahu bagaimana engine yang saya pilih menerapkan pergantian ruangan/scene/stage/level, atau bagaimana si engine mengaplikasikan body/physics untuk objek-objeknya.
Beberapa engine memiliki template-template yang sudah jadi. Misalnya untuk berpindah level jadi pengguna hanya memanggil satu fungsi ringan atau bahkan hanya melakukan drag and drop untuk dapat berpindah scene.
Namun ada beberapa engine yang harus manual saat ada pergantian level seperti pengguna harus secara manual menghapus scene lama, menginisialisasi scene baru, dan seterusnya.
Saya biasanya mencari apa game yang telah berhasil dibuat bahkan sudah dipublikasikan dari engine tersebut.
Karena mungkin ada salah satu dari game tersebut yang memiliki fitur mirip dengan apa yang saya inginkan.
Misalnya, apakah ada dari game yang dipublikasikan menerapkan fitur masking yang paling memuaskan? Atau apakah ada dari game yang lainnya dari engine tersebut menerapkan modul tubrukan yang mendekati dari apa yang saya harapkan?
Setelah semuanya terangkum dalam sebuah master ceklis saya sebagai perbandingan dari masing-masing kandidat engine, barulah saya berhappy ria memulai proyek game saya dari engine yang saya pilih tersebut.
Selesai.