AKSI NON PLAYER CHARACTER PADA GAME REAL TIME FIGHTING MENGGUNAKAN LEARNING VECTOR
QUANTIZATION
Dimas Erlangga
1)Esmeralda C Djamal
2)Agus Komarudin
3)1) 2) 3)
Jurusan Informatika, Fakultas MIPA Universitas Jenderal Achmad Yani
Jl. Terusan Sudirman, Cimahi
email : [email protected]
1), [email protected]
2), [email protected]
3)ABSTRACT
Game-based real-time fighting to have the Non- Player Character (NPC) who need to take action in order to defeat the player. In action, the game needs to learn certain patterns. Several previous studies NPC determines that the action by using several different methods, one using Sugeno Fuzzy Logic and Naïve Bayes classifier (NBC) to determine the action on the turn based strategy game. Pattern recognition that many combinations of factors - factors and criteria on environment NPC can be used to determine the action using Artificial Neural Network (ANN). This study makes game real-time fighting with the NPC to determine the action using Learning Vector Quantization (LVQ). LVQ is one method of classification patterns of each - each unit of output represents an existing class. LVQ is used for grouping the target number or class is predetermined. The number of input vectors that used in this study as many as 18 input vectors that used to classify the target weights into four classes namely class defend, class of melee attacks, long-range attack class, and class dodge. Based on test results, the system can recognize with an accuracy of 97,87% of the training data, and 70,21% of the test data.
Key words
Non player character, Artificial Neural Network, Learning Vector Quantization, Real-time Fighting
1. Pendahuluan
Real-Time Real-Time Fighting game adalah salah satu jenis/genre yang ada pada game komputer, yang dimana pemain maupun NPC tidak harus menunggu satu sama lain untuk mengambil aksi, melainkan dapat secepat mungkin melakukan aksi seperti menyerang, bertahan, dan mengejar lawan. Pada game jenis ini dibutuhkan sebuah NPC yang dapat menentukan aksi yang akan diambil secepat mungkin untuk mengalahkan player. Game jenis ini melibatkan reaksi, dan tindakan yang dilakukan dengan cepat sebagai sebuah bentuk reaksi terhadap perubahan lingkungan
sekitarnya agar game bisa menjadi semenarik mungkin.
Penelitian terdahulu menentukan aksi NPC dengan menggunakan Logika Fuzzy Sugeno dan Naïve Bayes Classifier untuk menentukan aksi pada game turn based strategy berdasarkan pola yang dapat dikenali oleh NBC [1]. Sedangkan penelitian lain menentukan aksi NPC pada game berbasis action RPG dengan menggunakan Logika Fuzzy Sugeno [2]. Dan penentuan aksi pada real-time game Pac-Man dengan menggunakan Logika Fuzzy [3].
Pengenalan pola dari kombinasi yang banyak dari kriteria kriteria pada lingkungan sekitar NPC dapat digunakan untuk menentukan aksi. Beberapa penelitian tentang pengenalan pola telah banyak dilakukan sebelumnya, pengenalan jender berdasarkan pola bentuk wajah [4], deteksi wajah dengan Jaringan Syaraf Tiruan (JST) [5].
Penelitian ini membuat game bergenre real-time fighting dengan NPC yang dapat menentukan aksi menggunakan metode Learning Vector Quantization (LVQ). Kesederhanaan dalam generalisasi pelatihan membuat komputasi LVQ sangat baik untuk mengenali suatu pola tertentu. Metode LVQ ini digunakan untuk pengelompokan dengan jumlah target atau kelas sudah ditentukan sebelumnyaAdapun kelas/aksi yang diambil NPC dibagi menjadi empat kelas target yaitu kelas bertahan, kelas serangan dekat, kelas serangan jauh, dan kelas menghindar.
Penelitian terdahulu menggunakan LVQ diterapkan pada klasifikasi status gizi anak [6], pengujian kualitas citra sidik jari kotor [7]. Dan perbandingan LVQ dengan Backpropagation pada pengenalan pola wajah [8].
Beberapa penelitian terdahulu lainnya juga
menggunakan komputasi LVQ di dalam sebuah game,
LVQ digunakan untuk mengawasi kemampuan kognitif
player berdasarkan klasifikasi pola masukan dari player
pada game [9]. Penelitian lain menggunakan LVQ
dengan tujuan mengamati tingkat motivasi player untuk
keberhasilan proses pembelajaran berdasarkan
klasifikasi pola masukan dari player di dalam sebuah
game [10].
2. Metode
A. Learning Vactor Quantization (LVQ)
Learning Vector Quantization (LVQ) merupakan suatu metode klasifikasi pola yang masing-masing unit keluaran mewakili kategori atau kelas tertentu. Metode LVQ digunakan untuk pengelompokkan dengan jumlah target atau kelas sudah ditentukan sebelumnya. Suatu lapisan kompetitif secara otomatis belajar untuk mengklasifikasikan vektor-vektor masukan. Kelas- kelas yang didapatkan sebagai hasil dari lapisan kompetitif ini hanya tergantung pada jarak antara vektor-vektor masukan. Jika dua vektor masukan mendekati sama, maka lapisan kompetitif akan meletakkan kedua vektor masukan tersebut ke dalam kelas yang sama.
Prinsip kerja dari algoritma LVQ adalah pengurangan node-node yang pada akhirnya hanya ada satu node output yang terpilih. Pertama kali yang dilakukan adalah melakukan inisialisasi bobot untuk tiap-tiap node dengan nilai random. Setelah diberikan bobot random, maka jaringan diberi masukan sejumlah dimensi node/neuron masukan. Setelah masukan diterima jaringan, maka jaringan mulai melakukan perhitungan jarak vektor yang didapatkan dengan menjumlah selisih/jarak antara vektor masukan dengan vektor bobot. Seperti pada Gambar 1 menunjukkan arsitektur LVQ [8].
Gambar 1 Arsitektur LVQ
Setelah dilakukan pelatihan, diperoleh bobot akhir (W). Bobot-bobot ini nantinya akan digunakan untuk melakukan simulasi atau pengujian data yang lain.
Penelitian terdahulu, Metode LVQ digunakan untuk proses pembelajaran setiap matriks gambar learning akan dipelajari dan menghasilkan 1 matriks nilai bobot dengan banyaknya pengujian 25 kali untuk setiap parameter [8].
Algoritma LVQ:
1. Tetapkan:
Bobot (W) , Maksimum Epoh
(MaxEpoh) , Error Minimum yang diharapkan (Eps) , Learning Rate (α).
2. Masukkan:
Input : x(m,n);
Targetm : T(1,n).
3. Tetapkan Kondisi Awal:
epoh = 0;
err = 1.
4. Kerjakan jika: (epoh < MaxEpoh) atau (α > eps) a. epoh = epoh+1;
b. Kerjakan untuk i=1 sampai n
i. Tentukan J sedemikian sehingga ǁ x - w
jǁ
minimum (sebut sebagai C
j)
ii. Perbaiki w
jdengan ketentuan:
1. Jika T = C
jmaka:
w
j(baru) = w
j(lama) + α(x-w
j(lama)) 2. Jika T ≠ C
jmaka:
w
j(baru) = w
j(lama) - α(x-w
j(lama)) Kurangi nilai α
B. Tahapan Proses Penelitian
Adapun tahapan pada penelitian ini yang digunakan untuk menentukan aksi NPC game adalah seperti pada Gambar 2.
INPUT 1- HEALTH POINT PLAYER (HPP)
100 DATA LATIH DENGAN 18 ATRIBUT
DATA UJI
PROSES
PEMBELAJARAN LVQ
KLASIFIKASI DENGAN LVQ BOBOT
KLASIFIKASI
AKSI NPC OUTPUT
2- SKILL POINT PLAYER (SPP) 3- STAMINA POINT PLAYER (STP)
.., 18- KOORDINAT X NPC (KXN)
1- SERANGAN JAUH 2- SERANGAN DEKAT 3- BERTAHAN 4- MENGHINDAR