Selasa, 11 Februari 2014

Tepat tanggal 21 Desember 2014 kemaren saya menjalani sidang tugas akhir, sidang yang mungkin selalu menjadi momok hampir semua mahasiswa di seluruh dunia. Tapi apa daya, tanpa adanya tugas akhir dan sidang tugas akhir tidak akan ada kelulusan, dan tidak akan ada pula gelar akademik. Tugas akhir entah itu dalam bentuk skripsi, thesis, dsb sepertinya sudah menjadi syarat kelulusan hampir di seluruh perguruan tinggi di dunia.

Saya sendiri saat ini berstatus sebagai mahasiswa D4 Teknik Informatika di Politeknik Elektronika Negeri Surabaya (PENS), sebuah kampus yang mungkin saat ini kurang dikenal karena memang dulunya kampus ini adalah salah satu politeknik milik Institut Teknologi Sepuluh Nopember (ITS), yang sejak kurang lebih 2 tahun lalu (terhitung dari artikel ini ditulis) berpisah dari ITS dan membentuk institusi sendiri. Mungkin sampai sekarang orang akan lebih mengenal sebutan 'Poltek Elka ITS', daripada PENS.

Ok.. Kembali ke tugas akhir. Kali ini saya mengambil tugas akhir dengan judul 'Game First Person Shooter Perjuangan Jenderal Sudirman Berbasis Mobile'. Awalnya malas memang mengambil judul itu, karena mengambil game sejarah menurut saya memiliki konsekuensi besar, kenapa? Karena banyak yang dipikirkan. Mungkin ini bisa jadi sedikit pertimbangan bagi sobat yang mungkin akan mengambil game terutama game sejarah sebagai judul tugas akhir :
  1. Referensi. Dimana sobat akan mendapatkan referensi? Apakah mungkin hanya dari buku? Mungkin banyak buku yang membahas sejarah. Tapi apakah itu sudah cukup detail? Jika saya tanya, apa saja tipe senjata yang digunakan pada waktu itu? Apakah sesuai dengan game kamu? Belum lagi jika sobat salah mengambil referensi dan salah menceritakannya, tentu itu akan berdampak sangat buruk. Itulah alasan utama kenapa sebenarnya saya malas mengambil hal yang berhubungan dengan sejarah.
  2. Model, texture, sound, animasi, dsb. Berapa lama sobat mengerjakan tugas akhir? 6 bulan? 1 tahun? atau lebih lama? Konsekuensi jika sobat mengerjakan game adalah bagaimana membuat model-modelnya, texture, sound, dsb. Sobat harus memikirkan cukup tidaknya waktu itu, mengingat seringkali sebuah game memiliki banyak sekali model. Sobat harus berpikir, berapa banyak model karakter, berapa banyak model rumah, pohon, terrain, dsb. Semua ini harus dipikirkan, sesuaikan dengan kemampuan sobat untuk membuat model-model tersebut, atau sobat menjadi sulit tidur karena tugas akhir. 
  3. Scripting, AI, skenario, dsb. Menurut saya inilah yang tersulit dalam hal teknis, terutama dalam hal AI. Membuat sebuah karakter AI yang berlaku realistis adalah hal yang sulit, bahkan seringkali harus menggabungkan beberapa algoritma agar berhasil. Bukan masalah mampu / tidak nya, saya yakin asal bersungguh-sungguh pasti mampu. Namun, proses ini  memakan waktu yang lama. Sobat harus mensimulasikan AI dengan berbagai kondisi agar dapat mengetahui perilakunya. Misal, mendekatkan karakter AI dengan musuh, menyerang karakter AI, melemparnya dengan bom, dsb. Sobat harus menguji semuanya, dan seringkali dalam pengujian ini akan menimbulkan error. Uji coba dan debugging inilah yang menyita cukup banyak waktu bagi saya. Belum lagi masalah skenario, sobat harus menyusun skenario kapan karakter A muncul, kapan B mati, dsb. Dan kesemuanya membutuhkan uji coba. Uji coba skenario sama dengan sobat harus memainkan game berulang kali, yang berarti juga akan memakan banyak waktu.
  4. Performa. Setelah semua berjalan baik, jangan senang dulu. Sobat harus memperhatikan hal yang satu ini, apalagi jika sobat menggunakan platform mobile seperti yang saya lakukan. Sobat harus bisa menggunakan resource seminimal mungkin, misalnyya denga membuat model dengan vertex sedikit mungkin tapi dengan hasil sebaik mungkin, membuat program dengan seefisien mungkin, agar performa tetap baik. Seringkali teknik optimasi performa juga perlu diterapkan seperti misalnya Oclussion Culling
Nah sudah cukup basa basinya, langsung saja saya tunjukkan screenshot proyek saya. Proyek ini saya kerjakan selama kurang dari 3 bulan. Lho kok cepet banget? Ya memang, karena di awal-awal tugas akhir saya sempet mengerjakan proyek-proyek lain, sehingga memaksa saya untuk menunda pengerjaan tugas akhir. Alhasil pengerjaan 3 bulan saya rasa memberikan hasil yang sangat tidak maksimal, terutama masalah model 3D nya. So.. Jangan di komen modelnya yah.. Ok langsung saja screenshotnya :

Main menu :
Ini nih tampilan main menu, model orang yang berdiri di sebelah bendera itu anggap saja sebagai Jenderal Sudirman. Saya gak pandai modeling, jadi ya ala kadarnya saja, apalagi buatnya cepet-cepet.


Gameplay :
Gameplay-nya gak jauh beda sama game 1st person shooter lainnya. Cuman nembak-nembak doank.


AI :
Ini nih musuh + teman yang digerakkan  dengan AI. Untuk membuat AI saya menggabungkan algoritma FSM dan A*. FSM saya gunakan sebagai pengambilan keputusan terhadap state keadaan tertentu, sedangkan A* memastikan kalau AI dapat berjalan lebih realistis karena dapat berjalan menghindari penghalang dan memastikan AI tidak nyasar di hutan. Sekali lagi jangan komen model 3D + animasi nya ya.. Maklum lah cepet-cepet...


Intro :
Dan ini ada intro sebelum memulai level. Disini intronya menceritakan tentang apa yang akan dihadapi di level itu. Jangan di komen bahasa inggrisnya, soalnya saya sedikit cupu sama bahasa iggris, sehingga memaksa saya pake google translate, dan sangat minim sekali pengeditan. Itu juga dikerjakan H-beberapa hari sebelum sidang TA.



Ini muncul sosok Jenderal Sudirman di intro. Seperti pada kisah aslinya, Jenderal Sudirman harus ditandu karena sakit paru-paru yang dideritanya. Lagi-lagi saya ingatkan, jangan komen model 3D nya yah ^^



Level :
Ini saya tunjukkan sedikit screenshot level. Ada dua level di permainan ini, level 1 Palagan Ambarawa dan level 2 Agresi Militer Belanda II




Ini nih ada sosok tandu Jenderal Sudirman ketika dalam permainan


Nah.. Mungkin itu saja yang dapat saya share. Mungkin Sobat bertanya-tanya... Loh.. kok cuman gambar doank? Mana nih aplikasinya? Hahaha.. Lain kali aja deh.. Masi banyak bug nya.. Lagian jujur deh saya males kalo menyebarkan game ini, soalnya ini membawa nama sejarah. Saya takut ada kritikan karena mungkin saya ada kesalahan dalam menceritakan sejarah. Oke deh.. mungkin cukup sekian yang dapat saya tulis, kurang lebihnya mohon maaf. Terimakasih sudah membaca, tetap semangat dan terus berkarya.. ^^


    EmoticonEmoticon