Distribusi Gaussian Perilaku Tarung NPC Prajurit Pada Game Peperangan Menggunakan Metode Box-Muller
Distribusi Gaussian Perilaku Tarung NPC Prajurit Pada Game Peperangan Menggunakan Metode Box-Muller
net/publication/267224084
Article
CITATIONS READS
0 202
3 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Mochamad Hariadi on 10 June 2016.
Nur Kholis Majid 1*, Moch. Hariadi 2**, Supeno Mardi 3**
Abstrak
Perilaku NPC prajurit merupakan hal yang penting dalam sebuah game perang. NPC yang
berperilaku tetap akan membuat dia mudah dikalahkan oleh lawan. Distribusi Gaussian
dengan metode Box-Muller akan digunakan untuk memberikan variasi perilaku gerakan
pada NPC. Sebuah game perang berbasis Game Engine 3D Game Studio telah dibuat
untuk mensimulasikan perilaku NPC prajurit. Dari hasil percobaan 10 jenis gerakan, dapat
disimpulkan bahwa distribusi gaussian yang ideal untuk pertarungan satu lawan satu adalah
µ=3.5 dan σ=1, untuk pertarungan satu lawan banyak adalah µ=7.8 dan σ=1, sedang untuk
banyak lawan banyak adalah µ=8.5 dan σ=1.
Katakunci: Distribusi gaussian, Box-Muller, Perilaku NPC, Game Perang, 3D Game Studio
2. Teori Penunjang
Game merupakan salah satu topik yang sering
Gambar 1. Perilaku NPC
diulas oleh para peneliti akhir-akhir ini.
Kepopuleran ini disebabkan karena game Pada sebuah game perang, prajurit pemain dan
mampu menyediakan lingkungan yang kompleks prajurit musuh merupakan contoh dari NPC.
untuk mensimulasikan sesuatu dari alam. Perilaku seorang prajurit dalam medan sangat
Artificial Intellegent(AI) merupakan salah satu bervariasi mulai dari mengikuti pimpinan,
bidang ilmu yang paling banyak menghindari halangan, berlari, berjalan, menjauhi
diimplementasikan dalam game. Tidaklah musuh, bertarung, membantu teman, dan
mengherankan karena kebanyakan algoritmanya lainnya.
meniru fenomena alam. Sehingga membutuhkan Pada penelitian ini kami memilih perilaku tarung
media untuk mensimulasikan kebenaran prajurit untuk diamati.
algoritma tersebut. Game merupakan media yang
*) Penulis Utama
**) Dosen Pembimbing
Seminar Nasional Pascasarjana X – ITS, Surabaya 4 Agustus 2010
ISBN No. 979-545-0270-1
2.2 Finite State Machine (FSM) Secara matematis, distribusi normal dapat
FSM merupakan salah satu metode yang paling direpresentasikan dengan persamaan
populer untuk memodelkan perilaku agen/NPC
(2.1)
dalam sebuah game. Bahkan seakan menjadi
standard karena telah digunakan secara luas
dalam berbagai game. Hal ini mengingat Dengan f(x) disebut juga fungsi kerapatan
kesederhanaan dan kemudahan FSM untuk (density function) dari x, µ adalah mean (rata-
diimplementasikan. rata) data, sedangkan σ adalah standard
FSM terdiri dari dua elemen utama yaitu keadaan deviation (simpangan baku).
(state) dan transisi (transition). State merupakan Disebut dengan distribusi normal standard,
keadaan objek saat ini, sedangkan transisi apabila nilai µ=0 dan σ=1. Sehingga persamaan
adalah hal yang dilakukan untuk dapat berpindah (2.1) menjadi
dari satu state ke state yang lain (Gambar 2).
(2.2)
Selanjutnya akan digunakan distribusi gaussian ini. Gerakan-gerakan tersebut adalah: bother_a
pada pemilihan gerakan tarung NPC dalam game (a), bother_b (b), attack_a (c), attack_b (d),
tersebut sesuai dengan Gambar 6. attack_c (e), attack_d (f), super_a (g), super_b
Game peperangan yang dibuat merupakan (h), super_c (i), super_d (j). (Gambar 8.)
pengembangan dari prototipe game Glorious
Combat yang dibuat oleh David Lancaster dari
Rebel Planet Creation (www.therebelplanet.com).
5 attack_c Menyerang dari arah kanan 4.1 Satu lawan satu (1-1)
ke kiri Dari 10 kali percobaan didapatkan data seperti
6 attack_d Menyerang dari arah pada Tabel 3.
bawah ke atas
7 Gerakan super_a Melompat tinggi ke arah Tabel 3. Hasil Percobaan 1-1
8 mematika super_b Gerakan Salto Σwin Σlose
9 n lawan super_c Jab µ=1 0 10
10 super_d Melompat ke arah lawan µ=2 1 9
µ=3 3 7
µ=4 7 3
3.3 Desain Generator Random Gaussian µ=5 9 1
Pada penelitian ini akan digunakan metode Box- µ=6 10 0
Muller dikarenakan kemudahan implementasinya. µ=7 10 0
Berdasarkan pseudocode pada Kode. 1 dapat µ=8 10 0
dibuat blok fungsinya dalam bahasa C seperti
µ=9 10 0
pada Kode. 2.
µ=10 10 0
Kode 2 . Kode sumber algoritma Box-Muller
01 float BoxMuller(float mean, float sd) Dari tabel tersebut dapat diplot seperti pada
02 { Gambar 9. Dari Gambar 9, dapat dilihat bahwa
03 float u, v, s, z0; // polar coord.
04 static float z1; mean(µ) yang ideal adalah sekitar 3.5. (pada titik
05 static int use_last = 0; A)
06
07 if (use_last) {
08 z0 = z1;
09 use_last = 0;
10 } else {
11 do {
12 u = 2.0 * random(1.0) - 1.0;
13 v = 2.0 * random(1.0) - 1.0;
14 s = u * u + v * v;
15 } while ( s >= 1.0 );
16 s = sqrt( (-2.0 * log(s)) / s );
17 z0 = u * s;
18 z1 = v * s;
19 use_last = 1;
20 } Gambar 9: Hasil Plot Percobaan 1-1
21 return( mean + z0 * sd );
22 }
4.1 Satu lawan banyak (1-n)
Pada percobaan ini akan digunakan
Selanjutnya Kode 2 akan dimasukkan dalam
perbandingan 1:3, dimana satu NPC teman akan
game untuk membangkitkan angka random yang
berhadapan dengan 3 NPC musuh. Hasil dari 10
terdistribusi gaussian pada pemilihan gerakan
kali percobaan dapat dilihat pada Tabel 4.
tarung NPC.
Tabel 4. Hasil Percobaan 1-n
4. Pembahasan Hasil Σwin Σlose
Dalam penelitian ini akan diuji cobakan tiga buah
µ=1 0 10
skenario pertarungan. Pertama adalah
pertarungan tunggal NPC, satu lawan satu (1-1). µ=2 0 10
Kedua adalah pertarungan satu NPC melawan µ=3 0 10
banyak NPC (1-n). Sedangkan yang ketiga µ=4 0 10
adalah pertarungan banyak NPC melawan µ=5 0 10
banyak NPC (n-n). µ=6 1 9
µ=7 2 8
Tabel 2. Properti NPC µ=8 6 4
NPC Teman NPC Musuh
µ=9 7 3
health = 40 health = 40
damage1 = 0 damage = 0.1 * health µ=10 7 3
damage2 = 0.1 * health
damage3 = 20 Plot data dari Tabel 4 dapat dilihat pada Gambar
10. Dari Gambar tersebut, dapat dilihat bahwa
Tabel 2 menunjukkan properti NPC yang akan yang mean(µ) ideal adalah sekitar 7.8. (titik A)
digunakan selama percobaan.
Dari masing-masing percobaan tersebut akan
dihitung jumlah gerakan tarung yang digunakan
NPC, berapa waktu yang dibutuhkan untuk
bertarung serta siapa yang akan memenangi
pertarungan. Selanjutnya akan di plot jumlah
kemenangan dan kekalahan tersebut untuk
mendapatkan mean(µ) dan standard deviasi (σ)
yang ideal.
Seminar Nasional Pascasarjana X – ITS, Surabaya 4 Agustus 2010
ISBN No. 979-545-0270-1
6. Pustaka
Kyungeun Cho, Wei Song, Kyhyun Um,
“Gaussian Distribution for NPC Character in
Real-Life Simulation”, International
Conference on Intellegent Pervasive
Computing. 2007.
David B. Thomas, Wayne Luk, Philip H. W.
Gambar 10: Hasil Plot Percobaan 1-n Leong, John D. Villasenor. “Gaussian
random number generators”. ACM Vol. 9
4.1 Banyak lawan banyak (n-n) Page. 11. 2007.
Pada percobaan ini akan digunakan kondisi Bong-Keun Lee, Choong-Shik Park, Jae-Hong
seperti pada percobaan satu lawan banyak (1-n). Kim, Sang-Jo Youk, Keun Ho Ryu. “An
Perbandingan yang dipakai juga sebesar 1:3 Intelligent NPC Framework For Context
yaitu 5 buah NPC teman akan menghadapi 15 Awarness in MMORPG”. International
buah NPC lawan. Dari percobaan dihasilkan data Conference on Convergence and Hybrid
sebagai berikut. (Tabel 5.) Information Technology. 2008.
Ian Millington. “Artificial Intellegence for Games”.
Tabel 5. Hasil Percobaan n-n Morgan Kaufmann Publisher Inc. 2006.
Σwin Σlose Adi Botea, Ralf Herbrich, Thore Graepel. ”Video
µ=1 0 10 Games and Artificial Intellegence”. Microsoft
Reasearch Cambridge. 2008.
µ=2 0 10
3D Game Studio Team, “3D Game Studio Online
µ=3 0 10
Manual”. http://manual.conitec.net/
µ=4 0 10
µ=5 0 10
µ=6 0 10
µ=7 1 9
µ=8 2 8
µ=9 7 3
µ=10 8 2
5. Kesimpulan
Dari hasil percobaan dapat disimpulkan bahwa
penggunaan distribusi gaussian pada pemilihan
gerakan tarung NPC dapat membuat waktu
tarung menjadi lebih lama dan musuh tidak
mudah untuk dikalahkan.
Pada kondisi tarung satu lawan satu distribusi
yang ideal adalah dengan mean (µ) = 3.5 dan
standard deviasi (σ) = 1. Untuk kondisi satu
lawan banyak, distribusi gerakan yang ideal
menggunakan mean (µ) = 7.8 dan standard
deviasi (σ) = 1. Sedangkan untuk kondisi banyak