IMPLEMENTASI NON PLAYER CHARACTER PADA GAME PERTARUNGAN
GALAH ASIN MENGGUNAKAN LOGIKA FUZZY
Nomo Haga A.G1, Yulison Herry C2, Rezki Yuniarti3
Jurusan Informatika, Fakultas MIPA, UniversitasJenderal Achmad Yani Jl.Terusan Jenderal Achmad Yani, Cimahi, Jawa Barat 40285
Telp.(022)6652069
E-mail: haganamikaze@gmail.com, y.chrisnanto@gmail.com, rezkiy@gmail.com
ABSTRAKS
Galah asin adalah permaina n tradisional yang berasal dari Indonesia permainan yang memerlukan 2 kelompok pemain dan saling menjaga dan menyerang yang biasa dimainkan di lapangan luas yang telah diberi garis pembatas, akan tetapi permainan ini sudah mulai dilupakan karena perkembangan zaman yang semakin maju dan berkembang. Saat ini sangan banyak permaina yang menggunakan system virtual dengan menggunakan berbagai macam game console dan saat ini permainan yang berbasis smartphone semakin digemari dikalangan masyarakat. Sebuah permainan virtual akan sangat menyenangkan apabila permainan tersebut memiliki NPC yang cerdas yang dapat memberikan perlawan terhadap pemain sehingga permainan akan menjadi cukup sulit untuk dimenangkan oleh player. Untuk memberikan kecerdasan pada NPC dapat diterapkan logika Fuzzy yang merupakan cabang dari ilmu kecerdasan buatan (AI). Telah banyak penelitian yang menggunakan metode tersebut untuk membuat kecerdasan pada NPC dari berbagai macam genre game seperti action, fighting dan lain-lain. Pada penelitian ini logika fuzzy akan menghasilkan nilai yang mempresentasikan prilaku dari NPC yaitu mengejar atau tidak mengejar dari hasil fuzzy akan menetukan perilaku dari karakter dan NPC. dengan menggunakan himpunan fuzzy jarak NPC, stamina karakter, kecepatan NPC dan juga stamina NPC, jarak karakter, status penjagaan NPC.dilakukan percobaan dengan menggunakan contoh data uji yaitu dengan menguji nilai himpunan fuzzy jarak NPC = 76, stamina karakter = 67, kecepatan NPC = 13 dan di peroleh hasil defazzifikasi sebesar 10 dima na prilaku akan melakukan pengejaran oleh NPC. Pada penelitian ini telah di dapat beberapa keberhasil, masih terdapat kekurangan seperti lamanya tindakan yang dilakukan oleh NPC sehingga membuat penjagaan menjadi sedikit lebih longgar.
Kata Kunci: Fuzzy, Game, NPC, Galah Asin
1. PENDAHULUAN
1.1 Latar Belakang
Banyak permainan tradisional yang ada di wilayah Indonesia salah satu permainan tradisional yang ada di wilayah nusantara adalah permainan galah asin, permainan ini adalah permainan dua kelompok dimana satu kelompok menjadi penyerang dan kelompok lain menjadi penjaga pertahanan, saat ini permainan tradisional sudah hampir terlupakan dikarenakan mulai tergesernya permainan tradisional dengan teknologi yang lebih modern[1].
Dewasa ini perkembangan game virtual sangat pesat tidak hanya di playstation, komputer, X-box ataupun game console lainnya. Perkembangan game yang berbasis pada smartphone yang memakai sistem operasi android saat ini berkembang dengan sangat pesat. Untuk membuat game yang menarik banyak game yang memiliki NPC (Non Player Character) yang dapat bergerak secara pintar.
Untuk membuat permainan yang memiliki NPC yang dapat bergerak secara otonom atau pintar maka NPC harus memiliki kecerdasan buatan (AI). Logika Fuzzy yang merupakan salah satu bagian dari kecerdasan buatan yang dapat di terapkan pada NPC, telah banyak penelititan yang menggunakan logika Fuzzy untuk diterapkan kedalam pergerakan NPC dengan berbagai macam tipe permainan seperti
action, fighting. Salah satu penelitian terdahulu yaitu game gerilya yang menerapkan logika Fuzzy, menerapkan logika Fuzzy untuk menetukan keputusan stategi apa yang digunakan NPC untuk melawan pemain[2]. dan pada penelitian terdahulu yang lain logika Fuzzy diterapkan untuk agar agen atau NPC dalam game dapat melakukan respon terhadap lingkungan sekitarnya[3], pada game bertema RPG fuzzy digunakan untuk menetukan kapan NPC harus maju dan mundur[4], penggunaan logika fuzzy pun dapat digunakan untuk meniru perilaku manusia dalam sebuah permainan seperti keputusan apa yang akan di pilih manusia[5].
Pergerakan otonom yang cerdas dari NPC sangat penting sehingga membuat permainan menjadi lebih menarik. Dalam penelitian ini pergerakan NPC sudah ditetapkan pada jalur-jalur garis yang ada dan dari jalur garis tersebut harus dapat menghalangi pemain yang akan menerobos untuk melewati NPC.
Pada penelitian ini akan dibagun sebuah game tradisional Indonesia yaitu permainan galah asin yang memiliki NPC yang dapat bergerak menghalangi musuh secara otonom.
1.2 Rumusan Masalah
Dari latar belakang di atas dapat dirumuskan masalah yaitu banyaknya atribut yang dilibatkan
dalam pemainan galah asin yang menyebabkan pengendalian pemainan menjadi lebih kompleks oleh karena itu perlu dikembangkan NPC yang dapat bergerak secara otonom yang dikembangkan berdasarkan logika fuzzy.
1.3 Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun sebuah game galah asin yang memiliki NPC yang dapat bergerak secara otonom agar dapat menghalangi jalur gerak dari pemain yang hendak melewati NPC tersebut dengan menerapkan logika Fuzzy
1.4 Metodologi
Pada penelitian ini akan dibangun sebuah game dengan NPC yang akan bergerak secara otonom untuk menghalangi musuh yang yang telah berada dalam jangkauan sesuai dengan hasil yang telah di proses oleh perhitungan logika Fuzzy untuk prediksi pergerakan karakter pemain agar dapat dihalangi oleh NPC.
Gambar 1.1 Alur Proses Sistem Game Galah Asin
1.5 Tinjauan Pustaka
Logika fuzzy merupakan suatu metode yang digunakan untuk memecahkan masalah yang mengandung ketidakpastian atau memiliki ambiguitas. Logika fuzzy mengacu pada teori himpunan fuzzy. Teori ini menyatakan bahwa derajat keanggotaan dari suatu elemen himpunan bukanlah hanya terdiri dari 0 dan 1 (bukan anggota himpunan dan anggota himpunan), namun dalam rentang antara 0 dan 1.Pada teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting. Derajat keanggotaan berisi hasil klasifikasi pemecahan masalah yang dicari melalui sistem inferensi fuzzy menggunakan fungsi keanggotaan dimana akan menghasilkan suatu nilai keanggotaan. Terdapat beberapa metode yang digunakan untuk mendapatkan nilai keanggotaan tersebut yaitu dengan menggunakan pendekatan fungsi keanggotaan.Pendekatan fungsi keanggotaan yang
digunakan pada penelitian ini mencakup 2 jenis yaitu representasi kurva segitiga dan bentuk bahu. Untuk pemilihan metode pendekatan fungsi tersebut disesuaikan dengan kebutuhan dari sistem yang akan dibangun. Metode pendekatan fungsi yang digunakan pada penelitian ini terdiri dari :
a. Representasi kurva segitiga
Representasi kurva segitiga merupakan gabungan dari antara 2 garis linear yaitu garis linear naik dan linear turun.
Gambar 1.2 Representasi kurva segitiga
Fungsi keanggotaan :
b. Representasi kurva bentuk bahu
Representasi kurva bentuk bahu digunakan untuk mengakhiri dan mengawali variabel suatu daerah fuzzy yang terbagi menjadi dua bahu yaitu bahu kanan dan kiri.
Gambar 1.3 Representasi kurva bahu
Fungsi keanggotaan: Bahu kiri
Bahu kanan
Domain merupakan keseluruhan nilai yang ada didalam suatu himpunan fuzzy pada suatu variabel fuzzy.
2. PEMBAHASAN
Pada penelitian ini, akan dibahas tentang pergerakan NPC berupa penjagaan untuk menghalangi pemain saat hendak melewati garis penjagaan. NPC akan mulai bergerak setelah karakter pemain mulai bergerak untuk melewati NPC, pergerakan NPC akan sesuai dengan keadaan karakter pemain yang masuk dalam jangkauan NPC dimana NPC harus bergerak mengejar atau bergerak untuk bersiaga. Untuk menghasilkan pergerakan pada NPC terdapat dua proses, yaitu proses logika fuzzy sugeno, pada masing – masing proses terdapat alur proses yang saling berkaitan, yaitu seperti gambar dibawah.
Gambar 2.1 Proses pergerakan NPC dan Karakter
2.1 Analisis Proses Logika Fuzzy
Untuk mendapatkan nilai atribut didapatkan melalui proses logika fuzzy sugeno. Model sugeno yang akan digunakan adalah model sudeno orde 0 dengan keluaran yang konstanta yang mewakili nilai atribut dari NPC dan karakter. Masukkan yang
digunakan pada sistem untuk dapat menghasilkan keluaran berupa kecepatan NPC dan karakter didapat dari nilai status yang dimiki oleh karakter pemain seperti variabel berat badan dan variabel stamina. Variabel berat badan dibagi dalam tiga himpunan yaitu kurus, sedang dan gemuk sedangkan untuk variabel stamina dibagi dalam tiga himpunan yaitu lemah, sedang dan kuat. Proses menggunakan logika fuzzy model sugeno terdiri dari beberapa proses yaitu:
1. Fuzzifikasi
2. Komposisi Aturan
3. Defuzzifikasi
Nilai perilaku NPC yang dihasilkan bergantung pada 3 variabel masukkan yaitu stamina NPC, jarak karakter, jarak NPC lain yang setiap variabel dibagi dalam 3 himpunan fuzzy yang dapat menghasilkan 27 aturan fuzzy dan akan menghasilkan perilaku yang akan dilakukan NPC yang terbagi dalam dua himpunan yaitu mengejar dan tidak mengejar. Terdapat juga basis pengetahuan yang mengandung pengetahuan untuk dapat menyelesaikan permasalahan, basis pengetahuan digunakan untuk membuat kesimpulan.
Tabel 2.1 Basis pengetahuan Fuzzy NPC
Stamina
Sedang Cepat Sedang Berlari
maju
Sedang Sedang Sedang Berlari
Sedang Lambat Jauh Berlari maju
Sedang Lambat Sedang Berlari
maju
Sedang Lambat Dekat Berlari
maju
Lemah Lambat Jauh Berlari
maju
Lemah Lambat Sedang Diam
Lemah Lambat Dekat Diam
Nilai perilaku karakter yang dihasilkan bergantung pada 3 variabel masukkan yaitu stamina karakter, kecepatan penjaga, jarak NPC yang setiap variabel dibagi dalam 3 himpunan fuzzy yang dapat menghasilkan 27 aturan fuzzy dan akan menghasilkan perilaku yang akan dilakukan karakter yang terbagi dalam dua himpunan yaitu diam dan berlari maju. Terdapat juga basis pengetahuan yang mengandung pengetahuan untuk dapat menyelesaikan permasalahan, basis pengetahuan digunakan untuk membuat kesimpulan.
Tabel 2.2 Basis pengetahuan Fuzzy karakter
Stamina karakter
Kecepatan NPC
Jarak NPC
Perilaku
Kuat Cepat Jauh Berlari maju
Kuat Cepat Sedang Berlari maju
Kuat Cepat Dekat Diam
Sedang Cepat Jauh Berlari maju
Sedang Cepat Sedang Berlari maju
Sedang Cepat Dekat Diam
Lemah Cepat Jauh Berlari maju
Lemah Cepat Sedang Diam
Lemah Cepat Dekat Diam
Kuat Sedang Jauh Berlari maju
Kuat Sedang Sedang Berlari maju
Kuat Sedang Dekat Berlari maju
Sedang Sedang Jauh Berlari maju
Sedang Sedang Sedang Berlari maju
Sedang Sedang Dekat Diam
Lemah Sedang Jauh Berlari maju
Lemah Sedang Sedang Diam
Lemah Sedang Dekat Diam
Kuat Lambat Jauh Berlari maju
Kuat Lambat Sedang Berlari maju
Kuat Lambat Dekat Berlari maju
Sedang Lambat Jauh Berlari maju
Sedang Lambat Sedang Berlari maju
Sedang Lambat Dekat Berlari maju
Lemah Lambat Jauh Berlari maju
Lemah Lambat Sedang Diam
Lemah Lambat Dekat Diam
2.2 Proses Logika Fuzzy
Terdapat contoh kasus uji untuk fuzzy perilaku NPC terdapat nilai jarak karakter yaitu 73 beririsan dengan dengan himpunan fuzzy dekat dan sedang. untuk itu akan dihitung nilai derajat keanggotaan sesuai himpunan fuzzy dan berdasarkan fungsi keanggotaan.
Gambar 2.2 Kurva fungsi keanggotaan jarak karakter
Setelah dihitung nilai dari derajat keanggotaan jarak karakter maka selanjutnya akan dihitung nilai derajat keanggotaan dari himpunan stamina NPC dari kasus uji dengan nilai stamina yaitu 68.
Gambar 2.3 Kurva fungsi keanggotaan stamina NPC
Setelah didapat nilai dari derajat keanggotaan dari stamina NPC maka selanjutnya adalah mencari nilai keanggotaan dari status penjagaan NPC dari contoh data uji diketahui nilai derajat keanggotaan yaitu 5.
Gambar 2.4 Kurva fungsi keanggotaan status penjagaan NPC
Terdapat kasus uji untuk fuzzy karakter unyuk menguji dan menghitung nilai derajat keanggotaan dari setiap himpunan fuzzy yang ada pada fuzzy karakter, petama dicari nilai derajat keanggotaan dari stamina karakter yang pada contoh kasus uji mempunyai nilai crisp set yaitu 67.
Gambar 2.5 Kurva fungsi keanggotaan stamina karakter
Proses perhitungan selanjutnya yaitu menghitung nilai derajat keanggotaan dari himpunan kecepatan NPC yang memiliki nilai crisp set yaitu 13
Gambar 2.6 Kurva fungsi keanggotaan kecepatan NPC
Setelah menghitung derajat keanggotaan dari himpunan fungsi keanggotaan dari kecepatan NPC selanjutnya akan menghitung nilai derjat
keanggotaan dari jarak NPC dengan nilai crisp set yaitu 76.
0.48
0.52
Gambar 2.7 Kurva fungsi keanggotaan jarak NPC
Setelah ditentukan nilai dari derajat keanggotaan dari setiap variabel NPC dan karakter pemain didapatkan nilai yaitu:
Tabel 2.3 Nilai derajat keanggotaan dari fuzzy NPC
Kriteria Himpunan Fuzzy Nilai derajat keanggotaan
Jarak karakter Dekat 0.54
Sedang 0.46
Stamina NPC Sedang 0.28
Kuat 0.72
Status penjagaan
NPC
Kosong 0.5
Longgar 0.5
Tabel 2.4 nilai derajat keanggotaan dari fuzzy karakter
Kriteria Himpunan
Fuzzy
Nilai derajat
keanggotaan
Stamina
karakter
Sedang 0.32
Kuat 0.68
Kecepatan NPC Cepat 1
Jarak NPC Dekat 0.48
Sedang 0.52
Tahapan selanjutnya dari proses logika fuzzy sugeno yaitu tahapan komposisi aturan yang terbagi dalam dua proses yaitu proses untuk mendapatkan nilai terkecil dengan menggunakan fungsi AND dan proses mencari nilai terbesar dengan menggunakan fungsi OR .
Fungsi AND digunakan untuk mengambil nilai MIN dari nilai derajat keanggotaan NPC.
Tabel 2.5 Tabel fungsi AND
IF KONDISI THEN KEPUTUSAN
IF
jarak karakter dekat
(0.54) AND stamina
NPC sedang (0.28) AND
status penjagaan kosong
(0.5)
THEN
prilaku
mengejar (0.28)
jarak karakter dekat
(0.54) AND stamina
NPC sedang (0.28) AND
status penjagaan longgar
(0.25)
prilaku
mengejar (0.25)
jarak karakter dekat
(0.54) AND stamina
NPC kuat (0.72) AND
status penjagaan kosong
(0.5)
prilaku
mengejar (0.5)
jarak karakter dekat
(0.54) AND stamina
NPC sedang (0.72) AND
status penjagaan longgar
(0.25)
prilaku
mengejar (0.25)
jarak karakter sedang
(0.46) AND stamina
NPC sedang (0.28) AND
status penjagaan kosong
(0.25)
prilaku
mengejar (0.25)
jarak karakter sedang
(0.46) AND stamina
NPC sedang (0.28) AND
status penjagaan
longgar(0.5)
prilaku
mengejar (0.28)
jarak karakter sedang
(0.46) AND stamina
Tabel 2.5 Tabel fungsi OR
IF KONDISI THEN KEPUTUSAN menghasilkan nilai tegas dengan menggunakan metode weighted average pada fungsi keanggotaan singleton sugeno. Hasil yang didapat dari komposisi aturan akan dimasukkan dalam kurva fungsi keanggotaan singleton setelah itu dilakukan perhitungan menggunakan metode weighted average.
Nilai perilaku NPC berada pada mengejar (0,28) dan mengejar (0,25), mengejar (0,46) dan mengejar (0,46) selanjutnya dengan nilai tersebut dilakukan perhitungan dengan metode weighted average dengan persamaan seperti dibawah ini.
Z = = 10
Sedangkan nilai untuk perilaku karakter berada pada himpunan diam (0.48) dan berlari maju (0.52). selanjutnya dengan nilai tersebut dilakukan perhitungan dengan metode weighted average dengan persamaan seperti dibawah ini.
Z = = 7,6
2.3 Algoritma atau Program
Tahap perancangan algoritma adalah tahapan terakhir untuk pembangunan perangkat lunak. Berikut perancagan yang akan di implementasikan pada system game
Procedure defazzifikasi()
{I.S : Nilai setiap himpunan terdefinisi tidak kosong}
{F.S : mengeubah nilai fuzzy menjadi nilai tegas}
{Kamus}
Z,temp1,temp2 : Real
Output_rule : array[] of integer u_output : array[] of integer
{Algoritma}
for (i:int = 0 to i < 27)do
temp1 <- temp1 + output_rule[i] * u_output[i] temp2 <- temp2 + output_rule[i]
endfor
z <- temp1 / temp2 hasil <- z
Gambar 1.8. Algoritma defuzzifikasi
Gambar 2.9. Tampilan program Galah Asin
3. KESIMPULAN
Pada penelitian ini menghasilkan aplikasi permainan galah asin dengan menggunakan metode logika fuzzy untuk dapat membangun NPC yang dapat bergerak secara otonom untuk dapat menghalangi pergerakan karakter musuh yang hendak melewati daerah pertahanan.
Berdasarkan hasil uji secara fungsional sistem game ini telah dapat bekerja dengan baik dan sesuai dengan harapan seperti dapat mengendalikan karakter dan menrubah karakter yang akan digerakan. Dan juga penggunaan logika fuzzy untuk mendapatkan prilaku NPC, dengan menggunakan himpunan fuzzy jarak NPC, stamina karakter, kecepatan NPC dan juga stamina NPC, jarak karakter, status penjagaan NPC.dilakukan percobaan dengan menggunakan contoh data uji yaitu dengan menguji nilai himpunan fuzzy jarak NPC = 76, stamina karakter = 67, kecepatan NPC = 13 dan di peroleh hasil defuzzifikasi sebesar 10 dimana prilaku akan melakukan pengejaran oleh NPC. Pada penelitian ini telah didapat beberapa keberhasil, masih terdapat kekurangan seperti lamanya tindakan yang dilakukan oleh NPC sehingga membuat penjagaan menjadi agak sedikit longgar.
PUSTAKA
[1]Hidayat D. “Permainan tradisional dan kearifan lokalkampung Dukuh Garut selatan Jawa Barat” Jurnal Academica Fisip Untad vol.05 no. 02 oktober 2013 ISSN 1411- 3341
[2]Alansura R, Nasrun M, Azmi F.”Penerapan System Inferensi Fuzzy Logic Untuk Menentukan Pengambilan Keputusan AI Pada Game Turn-Based Strategy ” Gerilya” ”.
[3]Widiastuti N.I. “Model Perilaku Berjalan Agen -Agen Menggunakan Fuzzy Logic”. Jurnal Komputer dan Informatika (KOMPUTA)2012.
[4]Purba K.R, Hasanah R.N, Muslim M.A. “Implementasi Logika Fuzzy Untuk Mengatur Perilaku Musuh dalam Game Bertipe Action-RPG”. Jurnal EECCIS Vol. 7, No. 1, Juni 2013
[5]Nugroho S.M.S, Arif Y.M, Hariadi M, Purnomo M,H.”Perilaku Taktis NPC di Game Peperangan Meniru Strategi Manusia Menggunakan Fuzzy Logic Dan Hierarchical Finite State Machine” jurnal ilmiah kursos vol.6 No.1,januari 2011 ISSN 0216 -0544
[6]Putra F.P, Fanani A.Z , Hariadi M, “Perilaku Otonomi dan Adaptif Non Player Character Musuh pada Game 3 Dimensi Menggunakan Fuzzy State Machine dan Rule Based System”Seminar Nasional Teknologi Informasi & Komunikasi Terapan 2014(Semantik 2014) Isbn: 979-26-0276-3