Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
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:
[email protected],
[email protected],
[email protected]
ABSTRAKS Galah asin adalah permainan 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 dimana 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 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. 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
1.2
Rumusan Masalah Dari latar belakang di atas dapat dirumuskan masalah yaitu banyaknya atribut yang dilibatkan
583
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
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.
ISSN: 2089-9815
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.
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.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.1 Alur Proses Sistem Game Galah Asin
Gambar 1.3 Representasi kurva bahu
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
Fungsi keanggotaan: Bahu kiri
584
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
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:
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.
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 karakter
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
585
Kecepatan NPC
Jarak NPC
Kuat
Cepat
Jauh
Kuat
Cepat
Sedang
Kuat
Cepat
Dekat
Sedang
Cepat
Jauh
Sedang
Cepat
Sedang
Sedang
Cepat
Dekat
Lemah
Cepat
Jauh
Lemah Lemah
Cepat Cepat
Sedang Dekat
Kuat
Sedang
Jauh
Kuat
Sedang
Sedang
Kuat
Sedang
Dekat
Sedang
Sedang
Jauh
Sedang
Sedang
Sedang
Sedang
Sedang
Dekat
Lemah
Sedang
Jauh
Lemah Lemah
Sedang Sedang
Sedang Dekat
Kuat
Lambat
Jauh
Kuat
Lambat
Sedang
Kuat
Lambat
Dekat
Perilaku Berlari maju Berlari maju Diam Berlari maju Berlari maju Diam Berlari maju Diam Diam Berlari maju Berlari maju Berlari maju Berlari maju Berlari maju Diam Berlari maju Diam Diam Berlari maju Berlari maju Berlari maju
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
Sedang
Lambat
Jauh
Sedang
Lambat
Sedang
Sedang
Lambat
Dekat
Lemah
Lambat
Jauh
Lemah Lemah
Lambat Lambat
Sedang Dekat
Berlari maju Berlari maju Berlari maju Berlari maju Diam 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.
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.
Tabel 2.2 Basis pengetahuan Fuzzy karakter Stamina karakter Kuat Kuat Kuat Sedang Sedang Sedang Lemah Lemah Lemah Kuat Kuat Kuat Sedang Sedang Sedang Lemah Lemah Lemah Kuat Kuat Kuat Sedang Sedang Sedang Lemah Lemah Lemah
Kecepatan NPC Cepat Cepat Cepat Cepat Cepat Cepat Cepat Cepat Cepat Sedang Sedang Sedang Sedang Sedang Sedang Sedang Sedang Sedang Lambat Lambat Lambat Lambat Lambat Lambat Lambat Lambat Lambat
Jarak NPC Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat Jauh Sedang Dekat
ISSN: 2089-9815
Perilaku Berlari maju Berlari maju Diam Berlari maju Berlari maju Diam Berlari maju Diam Diam Berlari maju Berlari maju Berlari maju Berlari maju Berlari maju Diam Berlari maju Diam Diam Berlari maju Berlari maju Berlari maju Berlari maju Berlari maju Berlari maju Berlari maju Diam Diam
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.
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.
586
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
keanggotaan dari jarak NPC dengan nilai crisp set yaitu 76.
0.48
0.52 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.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
derajat
keanggotaan 0.54
Sedang
0.46
Sedang
0.28
Kuat
0.72
Status penjagaan
Kosong
0.5
NPC
Longgar
0.5
Stamina NPC
Proses perhitungan selanjutnya yaitu menghitung nilai derajat keanggotaan dari himpunan kecepatan NPC yang memiliki nilai crisp set yaitu 13
Nilai
Dekat
Jarak karakter
Gambar 2.5 Kurva fungsi keanggotaan stamina karakter
Himpunan Fuzzy
Tabel 2.4 nilai derajat keanggotaan dari fuzzy karakter Kriteria
Nilai
Fuzzy
keanggotaan
derajat
Stamina
Sedang
0.32
karakter
Kuat
0.68
Kecepatan NPC
Cepat
1
Dekat
0.48
Sedang
0.52
Jarak NPC
Gambar 2.6 Kurva fungsi keanggotaan kecepatan NPC Setelah menghitung derajat keanggotaan dari himpunan fungsi keanggotaan dari kecepatan NPC selanjutnya akan menghitung nilai derjat
Himpunan
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 .
587
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
Fungsi AND digunakan untuk mengambil nilai MIN dari nilai derajat keanggotaan NPC.
Tabel 2.5 Tabel fungsi OR IF
KONDISI
Tabel 2.5 Tabel fungsi AND IF
KONDISI
THEN
jarak
karakter
(0.54)
AND
dekat
KEPUTUSAN prilaku
stamina
perilkau mengejar
perilaku mengejar
(0.28) OR prilaku
(0.28)
perilaku IF
status penjagaan kosong
mengejar(0.5) OR
(0.46)
(0.54)
AND
peilaku mengejar THEN
(0.5)
perilaku mengejar
(0.5) karakter
KEPUTUSAN
mengejar (0.25)
mengejar (0.28)
NPC sedang (0.28) AND
jarak
THEN
dekat
prilaku
stamina
peilaku
mengejar (0.25)
THEN mengejar
(0.5)
NPC sedang (0.28) AND status penjagaan longgar
Setelah kompisisi aturan selesai maka tahap akhir dari proses logika fuzzy sugeno yaitu tahap defuzzyfikasi, dimana pada tahap ini akan 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.
(0.25) jarak
karakter
(0.54)
AND
dekat
prilaku
stamina
mengejar (0.5)
NPC kuat (0.72) AND status penjagaan kosong (0.5) jarak
karakter
(0.54)
AND
dekat
prilaku
stamina
mengejar (0.25)
NPC sedang (0.72) AND status penjagaan longgar (0.25) jarak
karakter
sedang
(0.46)
AND
stamina
prilaku mengejar (0.25)
NPC sedang (0.28) AND
Z=
status penjagaan kosong
= 10
(0.25) jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
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.
mengejar (0.28)
NPC sedang (0.28) AND IF
status
penjagaan
THEN
longgar(0.5) jarak
karakter
sedang
(0.46)
AND
stamina
prilaku mengejar (0.46)
Z=
= 7,6
NPC kuat (0.72) AND status
penjagaan
longgar(0.5)
2.3
jarak karakter sedang
prilaku
(0.46)
mengejar (0.46)
AND
stamina
Algoritma atau Program Tahap perancangan algoritma adalah tahapan terakhir untuk pembangunan perangkat lunak. Berikut perancagan yang akan di implementasikan pada system game
NPC kuat (0.72) AND status
penjagaan
longgar(0.5)
588
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016) Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
[2]Alansura R, Nasrun M, Azmi F.”Penerapan System Inferensi Fuzzy Logic Untuk Menentukan Pengambilan Keputusan AI Pada Game TurnBased Strategy ” Gerilya” ”.
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
[3]Widiastuti N.I. “Model Perilaku Berjalan AgenAgen Menggunakan Fuzzy Logic”. Jurnal Komputer dan Informatika (KOMPUTA)2012.
{Algoritma} for (i:int = 0 to i < 27)do temp1 <- temp1 + output_rule[i] * u_output[i] temp2 <- temp2 + output_rule[i] endfor
[4]Purba K.R, Hasanah R.N, Muslim M.A. “Implementasi Logika Fuzzy Untuk Mengatur Perilaku Musuh dalam Game Bertipe ActionRPG”. Jurnal EECCIS Vol. 7, No. 1, Juni 2013
z <- temp1 / temp2 hasil <- z
Gambar 1.8. Algoritma defuzzifikasi
[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
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
589