Anda di halaman 1dari 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/267224084

Distribusi Gaussian Perilaku Tarung NPC Prajurit pada Game Peperangan


Menggunakan Metode Box-Muller

Article

CITATIONS READS

0 202

3 authors, including:

Mochamad Hariadi Supeno Mardi Nugroho


Institut Teknologi Sepuluh Nopember Institut Teknologi Sepuluh Nopember
235 PUBLICATIONS   862 CITATIONS    28 PUBLICATIONS   82 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Intelligent Tutoring System View project

underwater computer vision View project

All content following this page was uploaded by Mochamad Hariadi on 10 June 2016.

The user has requested enhancement of the downloaded file.


Seminar Nasional Pascasarjana X – ITS, Surabaya 4 Agustus 2010
ISBN No. 979-545-0270-1

Distribusi Gaussian Perilaku Tarung NPC Prajurit pada Game


Peperangan Menggunakan Metode Box-Muller

Nur Kholis Majid 1*, Moch. Hariadi 2**, Supeno Mardi 3**

Jurusan Teknik Elektro ITS, Surabaya,Indonesia1*


kholis@elect-eng.its.ac.id
2
Jurusan Teknik Elektro ITS, Surabaya,Indonesia
3
Jurusan Teknik Elektro ITS, Surabaya,Indonesia

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

1. Pendahuluan tepat, karena tentunya sangat berisiko jika


Penggunaan distribusi uniform pada pemilihan langsung mengujikan suatu teori dalam dunia
gerakan yang sejenis sebenarnya tidaklah nyata. Maka terpilihlah game sebagai salah satu
bermasalah pada suatu game. Tetapi hal ini test-bed AI.
sungguh sangat berbeda dengan kondisi nyata.
Dalam suatu pertarungan prajurit perang akan 2.1 Non-Player Character (NPC)
terdapat gerakan-gerakan yang berbeda setiap NPC atau disebut juga agen adalah suatu entitas
waktunya, baik itu gerakan tipuan ataupun dalam game yang tidak dikendalikan secara
gerakan yang mematikan untuk dapat mengecoh langsung oleh pemain. NPC dikendalikan secara
dan mengalahkan lawan. otomatis oleh komputer tanpa intervensi pemain
Pemilihan gerakan bertarung prajurit akan NPC bisa berupa teman, musuh atau netral.
didekati secara random dengan distribusi NPC diinginkan dapat berperilaku cerdas
gaussian. Dimana telah diketahui, bahwa layaknya manusia. Dia bisa mengindera
distribusi gaussian merupakan distribusi data lingkungan, berpikir, memilih aksi lalu bertindak
yang paling sesuai untuk kejadian yang alamiah. sebagai respon atas perubahan pada
Distribusi ini akan memiliki probabilitas yang lingkungannya, seperti pada Gambar 1. Disinilah
tinggi untuk data yang umum (gerakan yang AI berperan, NPC tersebut diberikan algoritma
sering dipakai) dan probabilitas yang rendah khusus agar berlaku cerdas untuk mengimbangi
untuk data yang jarang terjadi. pemain.
Nilai random tersebut selanjutnya akan
dimasukkan dalam proses pertarungan prajurit.
Dan kemudian akan dilakukan ujicoba untuk
mendapatkan parameter dari gerakan yang ideal
pada NPC.

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)

Distribusi gaussian sebenarnya berdasarkan


Teori Limit Pusat (Central Limit Theorem) yang
mengatakan bahwa jika sampel cukup besar,
distribusi mean akan mengikuti distribusi
gaussian bahkan meski populasinya bukanlah
gaussian.

2.3.1 Generator Angka Random Gaussian


Terdapat berbagai metode untuk mendapatkan
Gambar 2. Diagram FSM angka random yang terdistribusi gaussian. David
B. Thomas Dkk mengelompokkan menjadi 4
State dilambangkan dengan lingkaran, metode:
sedangkan transisi disimbolkan dengan anak • Cumulative Density Function (CDF)
panah dengan arah tertentu. Pada Gambar 2, Inversion Method
angka 1-5 adalah state sedangkan huruf a-g • Transformation Method
adalah transisi. • Rejection Method
Kelebihan dari FSM adalah sederhana dan • Recursive Method
mudah diimplementasikan. Sedangkan Dari metode-metode yang terdapat dalam
kekurangannya adalah pada sistem yang besar, kelompok tersebut, terdapat metode yang
FSM akan sulit diperlihara. menarik untuk dibahas yaitu:
FSM diimplementasikan dalam bahasa
pemrograman dengan berbagai cara, yaitu: cara 1. Metode Transformasi Box-Muller
tradisional (menggunakan switch-case), look-up Ditemukan oleh George E. P. Box dan Mervin E.
tabel (menggunakan matriks untuk menyimpan Muller pada 1958. Metode ini membangkitkan
state), dan dengan paradigma Object Oriented. sepasang angka random dengan distribusi
FSM berkembang menjadi beberapa variasi normal standard yang berasal dari angka random
dengan menggabungkan dengan metode lain, yang terdistribusi uniform. Hal ini bisa
antara lain: Fuzzy State Machine (FuSM), diilustrasikan seperti pada Gambar 4. Lingkaran
Probabilistic FSM (PFSM), Hierarchical FSM awal pada domain pertama yang mempunyai
(HFSM), dan lainnya perbedaan jarak sama akan dipetakan pada
kumpulan lingkaran yang lain dengan
2.3 Distribusi Gaussian pertambahan jarak yang tidak linier. Lingkaran
Distribusi gaussian merupakan salah satu terbesar pada domain pertama akan dipetakan
distribusi yang paling penting dalam bidang sebagai lingkaran terkecil pada domain kedua
statistika. Banyak gejala alam, maupun hasil dan sebaliknya.
penelitian yang terwakili dengan baik oleh kurva
distribusi yang berbentuk lonceng ini. Oleh sebab
itu, distribusi gaussian disebut juga distribusi
normal. Nama gaussian diambil dari penemunya
yaitu Carl Friederich Gauss (1777-1855).

Gambar 4. DiagramTransformasi Box-Muller

Jika U1 dan U2 adalah variabel random yang


independen dan terdistribusi uniform pada range
[0,1]. Sedangkan Z0 dan Z1 adalah variabel
random independen yang terdistribusi normal
Gambar 2. Kurva Distribusi Normal standard. Maka dapat dinyatakan:
Seminar Nasional Pascasarjana X – ITS, Surabaya 4 Agustus 2010
ISBN No. 979-545-0270-1

(2.3) yang tinggal pakai sehingga memungkinkan


membuat game tanpa coding sekalipun.
3D Game Studio terdiri dari 3 komponen utama,
(2.4)
yaitu:
Variabel random R2 dan Θ dalam bentuk 1. World Editor (WED)
koordinat polar juga saling independen. Jika WED merupakan editor utama pada 3D Game
dimisalkan terdapat besaran lain u dan v yang Studio. Dengan editor ini pengguna bisa
terdistribusi uniform pada range [-1, 1], dan s = mendesain environment game, mengatur entitas,
2 2 2
R = u + v dimana 0 < s < 1. Seperti pada menambahkan action, mengganti texture serta
Gambar 5. Maka dapat disimpulkan bahwa U1 = mem-build level menggunakan algoritma Binary
s dan U2 = θ/2π. Space Partition (BSP).

2. Model Editor (MED)


MED digunakan untuk mendesain model serta
level. Tersedia berbagai objek dasar seperti
kotak, bola, kerucut sampai objek yang kompleks
seperti manusia ataupun model sebuah kota.
Selain itu terdapat juga fasilitas untuk membuat
animasi (baik menggunakan bone atau tidak)
serta mengedit skin dan efek untuk shader.
Gambar 5. Ilustrasi Koordinat Polar Box-Muller
3. Script Editor (SED)
Sehingga persamaan (2.3) dan (2.4) dapat ditulis SED adalah Integrated Development
ulang sebagai: Environment (IDE) untuk pemrograman pada 3D
Game Studio. Terdiri dari text editor, debugger
serta build-in help untuk membantu dalam proses
(2.5) pemrograman.
3D Game Studio menggunakan Lite-C sebagai
(2.6)
bahasa pemrograman defaultnya. Tetapi dengan
menambah ekstensi tertentu pengguna dapat
menggunakan bahasa lain seperti C++, C# dan
Dari persamaan (2.5) dan (2.6), pseudocode dari Delphi.
algoritma Box-Muller dapat dituliskan sebagai
berikut: 3. Metode Penelitian
Dalam penelitian ini akan dibuat sebuah game
Kode 1. Pseudocode algoritma Box-Muller yang mensimulasikan peperangan antar banyak
1. Bangkitkan bilangan random uniform u NPC. Peperangan yang digunakan adalah
dan v dalam range [-1,1] peperangan klasik, dimana hanya menggunakan
2.
2
Hitung s = u + v
2 senjata jarak dekat seperti pedang, tombak dan
3. Looping sampai nilai s < 1
keris.
Terdapat dua buah pasukan yang saling
4. Dapatkan bilangan random normal z0 = u berhadapan dimana masing-masing pasukan
. dan z1 =v. dipimpin oleh seorang perwira perang. Pemain
akan diposisikan sebagai pemimpin yang dapat
mengatur pasukannya untuk menghadapi
pasukan musuh.
Algoritma Box-Muller sangat sederhana dan
mudah diimplementasikan meskipun termasuk
lambat dan hasil yang kurang baik untuk data
yang besar.

2.4 3D Game Studio


3D Game Studio merupakan salah satu engine
pembuat game 3D yang menfokuskan
kemudahan pembuatan kepada penggunanya.
3D Game Studio lebih senang menyebut dirinya
sebagai Authoring System daripada sekedar
game engine, karena memang 3D Game Studio
terdiri dari suite yang komplit untuk membuat
game.
3D Game Studio menyediakan beberapa
template game yang tinggal pakai seperti game
First Person Shooting (FPS) dan game racing. Gambar 6. Alur Penelitian
Juga menyediakan berbagai koleksi texture,
model, terrain, sprite, artwork sebagai entitas
Seminar Nasional Pascasarjana X – ITS, Surabaya 4 Agustus 2010
ISBN No. 979-545-0270-1

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).

3.1 Desain FSM NPC (a) (b)


NPC prajurit terdiri dari dua macam yaitu NPC
teman dan NPC musuh. Kedua jenis NPC
tersebut menggunakan state yang hampir sama
selama permainan. Seperti pada Gambar 7,
yaitu: (c) (d)
• Pertama kali NPC akan berada dalam
formasi dan mengikuti gerakan
pemimpinnya.
• Jika musuh berada dalam jarak tertentu (e) (f)
(terdeteksi) maka NPC akan menyerang
musuh.
• Jika musuh masih terdeteksi NPC akan
tetap berada dalam state menyerang. Tetapi (g) (h)
jika musuh menjauh, NPC akan kembali
mengikuti pemimpin.
• Jika terkena senjata, NPC akan berada
dalam state sakit untuk beberapa saat. (i) (j)
• Jika kekuatan masih ada dan musuh masih Gambar 8. Jenis gerakan yang digunakan
terdeteksi, NPC akan menyerang musuh.
• Jika kekuatannya habis, NPC akan mati. Selanjutnya Gerakan-gerakan diatas akan
• Jika musuh berhasil dikalahkan, NPC dikelompokkan menjadi 3 golongan, yaitu :
kembali mengikuti formasi.
1. Gerakan gangguan
Merupakan jenis gerakan yang tidak
membahayakan lawan yang tujuannya hanya
menggangu konsentrasi lawan dalam teknik
pertarungan. Yang termasuk kelompok ini
adalah: bother_a dan bother_b.
2. Gerakan mengenai/melukai lawan
Merupakan gerakan yang mengenai lawan
dan mengakibatkan kekuatan lawan
berkurang. Yang termasuk dalam kelompok
ini adalah: attack_a, attack_b, attack_c dan
attack_d.
3. Gerakan mematikan lawan
Merupakan gerakan pamungkas yang dapat
langsung mematikan lawan. Gerakan ini
Gambar 7. FSM NPC jarang digunakan pada pertarungan satu
lawan satu tetapi akan sering digunakan
NPC Leader musuh juga memiliki hampir sama apabila lawan berjumlah lebih dari satu.
tetapi dialah yang diikuti oleh NPC prajurit musuh Termasuk dalam kelompok ini adalah:
lainnya. Sedangkan Pemain diposisikan sebagai super_a, super_b, super_c dan super_d.
Leader NPC teman, sehingga bisa mengatur
formasi NPC teman yang lain. Selengkapnya dapat dilihat pada Tabel 1. Dalam
Alur penelitian pada Gambar 6. akan dimasukkan pertarungan tunggal (satu lawan satu). Nilai
pada NPC saat berada dalam state attack. damage pada gerakan gangguan adalah 0, pada
Sehingga diharapkan gerakan yang terpilih dapat gerakan melukai adalah 0.1 * health, sedangkan
terdistribusi dengan normal. pada gerakan mematikan nilai damage = 20.
Pada NPC tersebut juga terdapat properti lain
yang diperlukan saat pertarungan. Yaitu health Tabel 1: Jenis Gerakan Tarung
(nilai kesehatan NPC) dan damage (besar daya No Jenis Nama Keterangan
rusak NPC jika mengenai NPC lawan). Secara 1 Gerakan bother_a Gerakan menggangu
default besar keduanya adalah: health = 40 dan 2 ganggua bother_b Gerakan menggangu kedua
damage = health * 0.1. 3 attack_a Menyerang dari arah
Gerakan belakang ke depan
3.2 Desain Gerakan Tarung NPC melukai
4 lawan attack_b Menyerang dari arah kiri ke
Akan digunakan 10 jenis gerakan untuk
kanan
mensimulasikan pertarungan NPC pada game
Seminar Nasional Pascasarjana X – ITS, Surabaya 4 Agustus 2010
ISBN No. 979-545-0270-1

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

lawan banyak, distribusi gerakan yang ideal


menggunakan mean (µ) = 8.5 dan standard
deviasi (σ) = 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

Plot data dari Tabel 5 dapat dilihat pada Gambar


11. Dari Gambar 11, dapat dilihat bahwa mean(µ)
yang ideal untuk pertarungan banyak lawan
banyak adalah sekitar 8.5. (titik A)

Gambar 11: Hasil Plot Percobaan n-n

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

View publication stats

Anda mungkin juga menyukai