pengaturan perilaku pasukan menggunakan metode flocking...
TRANSCRIPT
1
Abstrak— Pergerakan berkelompok sekumpulan
pasukan, akan terlihat natural apabila dapat bergerak
dengan memperhitungkan pergerakan pasukan lainnya.
Pada permainan Lume Wars, akan dirancang sistem
perilaku pasukan yang menerapkan metode flocking
behavior berbasis agent, guna memenuhi kebutuhan
tersebut. Sistem perilaku pasukan yang dibuat akan
dijalankan pada device yang berbeda jenis untuk
memperoleh spesifikasi minimal untuk menjalankan
sistem tersebut. Sistem yang dapat diterima adalah sistem
yang dianggap sudah baik berdasarkan pendapat para
pemain. Dari hasil survei yang dilakukan, pengguna yang
menganggap sistem perilaku ini sudah baik berjumlah
tidak lebih dari 30%, sehingga dirasa perlu adanya
pengembanangan lebih lanjut terkait perilaku yang
diterapkan pada pasukan. Sedangkan dari pengujian
device didapatkan spesifikasi minimal untuk dapat
menjalankan permainan Lume Wars menggunakan 10
unit pasukan dengan FPS diatas nilai 60 adalah dengan
menggunakan device android os minimal 4.1, CPU Dual
Core 1,2 Ghz dan RAM 1GB.
Kata Kunci—non-player character, flocking behavior,
steering behavior
I. PENDAHULUAN
ermainan Real-Time Strategy (RTS) merupakan salah satu
genre permainan yang mensimulasikan pertempuran antara
1 atau lebih pemain. Dalam genre permainan ini, pada
umumnya pemain diberikan kemampuan untuk
mengendalikan pasukan atau unit tertentu dengan tujuan
menaklukan suatu wilayah atau mengalahkan musuhnya. Misi
yang dilakukan untuk mengalahkan musuh umumnya berbeda-
beda. Pada permainan yang akan dibuat ini, misi utama adalah
menghancurkan base milik musuh.
Dalam pengerjaan tugas akhir ini, dibentuk tim yang akan
mengembangkan permainan RTS berjudul Lume Wars. Lume
Wars merupakan permainan yang berjalan di sistem operasi
android dengan tujuan utama permainan menghancurkan
markas musuh menggunakan resource yang ada. Pembuatan
permainan ini akan dibagi menjadi beberapa bagian
pengerjaan diantaranya adalah perancangan desain animasi
hero, dan pasukan , pembuatan gameplay dan mekanik
permainan, permbuatan perilaku untuk NPC hero dan NPC
pasukan. Dalam publikasi ini, akan dijelaskan mengenai
perancangan dan implementasi perilaku NPC pasukan.
Dalam perancangan pergerakan pasukan, pada umumnya
pasukan diberi perilaku yang sama menggunakan FSM[1]
tanpa memperhatikan pasukan lainnya sehingga akan
bertindak dengan menganggap karakter lain termasuk pasukan
lain adalah sama. Pada perancangan perilaku pasukan dalam
permainan Lume Wars ini, akan diterapkan metode flocking
behavior[2] dengan pengaruh dari karakter hero sebagai
leader, agar pergerakan pasukan dapat memperhatikan posisi
pasukan lainnya sehingga pergerakan pasukan tampak
harmonis.
Pembuatan perilaku pasukan yang diterapkan pada
permainan Lume Wars akan berjalan pada sistem operasi
android, sehingga setiap device akan memiliki kemampuan
menjalankan perilaku yang berbeda-beda, sehingga perlu
diketahui pada kondisi pasukan seperti apa dan pada device
dengan spesifikasi seperti apa agar flocking pasukan dapat
berjalan optimal.
Langkah yang digunakan dalam pembuatan perilaku
pasukan ini adalah dengan terlebih dahulu mengecek kondisi
hero dalam permainan, untuk kemudian ditentukan perilaku-
perilaku apa saja yang mungkin terjadi dalam permainan pada
pasukan. Dari perilaku-perilaku yang telah ditentukan, dibuat
FSM untuk menentukan setiap state perilaku dan activity atau
yang menghubungkan setiap perilaku satu sama lain.
Kemudian perilaku pada FSM akan diterapkan dalam
permainan dengan menggunakan animasi pasukan yang telah
dibuat oleh anggota lain dalam tim Lume Wars.
II. METODE PENELITIAN
A. Steering Behavior
Perilaku dalam bergerak pasukan secara individu akan
menggunakan perilaku ini untuk bergerak dalam kondisi-
kondisi tertentu. Perilaku ini menjelaskan bagaimana suatu
unit dapat bergerak secara mandiri tanpa diberi input secara
langsung dari pemain menggunakan metode steering
behavior[3] yang melakukan perilaku antara lain seek, flee,
pursuit, arrival, wander, path following, obstacle avoidance,
leader following, dan lain-lain.
Pengaturan Perilaku Pasukan Non Player Character
menggunakan metode Flocking Behavior berbasis
Agent pada permainan Real Time Strategy
Priyodiva Robby Nugroho, Mochamad Hariadi, Christyowidiasmoro
Teknik Elektro, Fakultas Teknologi Industri, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111
E-mail: [email protected]
P
2
B. Flocking Behavior
Flocking merupakan perilaku bergerak secara berkelompok
pada agent atau karakter-karakter permainan komputer.
Flocking terinspirasi dari pergerakan kelompok hewan,
contohnya adalah sekumpulan ikan yang berenang, atau
sekelompok burung yang terbang. Contoh penggunaan
flocking adalah pada publikasi shen dan zhou[4] yang
menjelaskan penerapan flocking dalam pergerakan karakter
militer dalam permainan Unreal Tournament. Pada publikasi
lain, Davison[5] menjelaskan penggunaan flocking untuk
mengendalikan pergerakan unit militer atau
mengkoordinasikan formasi dari unit-unit dalam permainan
Half-Life.
Dalam makalah reynold mengenai perilaku flocking [1],
setiap unit yang diberi perilaku flocking ini disebut boid. Tiap
boid akan bergerak menyesuaikan pergerakan mereka dengan
boid lain dengan mengikuti 3 aturan, yaitu:
1. Separation: Setiap boid akan bergerak menjauhi boid
lainnya. Aturan ini merupakan lawan dari perilaku
cohesion, dan dapat dianggap seperti perilaku collision
avoidance dalam flocking.
2. Cohesion: Boid bergerak menuju pusat kerumunan
untuk bergabung dengan boid lainnya
3. Alignment: Menerapkan arah yang sama pada masing-
masing boid.
Perilaku flocking tersebut sepeti digambarkan pada Gambar
1. Arah dan kecepatan dari tiap boid adalah hasil dari
perhitungan dari ketiga aturan tersebut.
Gambar 1. Ilustrasi dari ketiga aturan flocking
Pada Gambar 1, gambar kiri merupakan aturan separation,
dimana boid bergerak menjauhi neighbornya, gambar tengah
merupakan aturan cohesion, dimana boid bergerak ke tengah
kerumunan, dan gambar kanan merupakan aturan alignment,
dimana boid diberikan gaya untuk bergerak ke arah boid
lainnya.
C. Gambaran Umum Sistem
Gambar 2. Diagram Blok Sistem
Pada sistem perancangan dan penerapan perilaku pasukan
ini, akan ditentukan terlebih dahulu ditentukan perilaku apa
saja yang akan dimiliki oleh pasukan didalam permainan. Dari
setiap perilaku yang telah dimiliki, dibuat FSM yang
menghubungkan setiap state perilaku melalui transisi berupa
kondisi atau activity. FSM perilaku yang dibuat kemudian
diterapkan didalam pasukan. Pasukan yang telah dibuat akan
disatukan didalam permainan Lume Wars bersama dengan
bagian lainnya dalam permainan.
D. Perilaku Pasukan dalam Permainan
Setiap pasukan akan memiliki perilaku sesuai dengan
kondisi didalam permainan. Perilaku perilaku tersebut adalah
sebagai berikut :
1) Idle
2) Walk
3) Spawn & Respawn
4) Follow
5) Evade
6) Pursuit
7) Attack (Melee & Range)
8) Back to Position
9) Escape
10) Defend
11) Dead
Perilaku pasukan idle, walk, attack, dan dead merupakan
perilaku yang termasuk dalam perilaku dasar pasukan.
Perilaku tersebut nantinya akan digunakan pada perilaku lain
semisal walk akan digunakan pada perilaku follow, evade,
pursuit, dan escape.
E. Perancangan FSM Perilaku Pasukan
Setelah perilaku-perilaku pasukan pada permainan telah
ditentukan, perilaku tersebut harus diterapkan didalam
permainan. FSM disusun untuk menentukan pada kondisi
tertentu pasukan akan melakukan perilaku apa dari perilaku
yang telah dibuat sebelumnya. Perilaku pasukan akan
dipengaruhi oleh perilaku dari hero dalam permainan.
Kondisi yang menentukan perilaku pasukan ada 2 , yaitu
ketika kondisi hero hidup dan ketika kondisi hero mati. Ketika
hero hidup dan masih ada dalam permainan, pasukan akan
menggunakan fsm perilaku pada gambar 3.
3
IDLE
PURSUIT
FOLLOW
SPAWN Berada di Kerumunan
EVADE
Hero Idle
ATTACKBACK TO POSITION
DIE
Hero
Dekat
Hero
Jauh
Hero Dead
Musuh Dekat /
Hero Attack
HP HabisMusuh
Mati
Menunggu
Respawn Time
Hero Alive
FSM
asd
Pada Koordinat
Awal
Hero Menghadang
Hero Dead FSM
Hero Alive
Hero
Tidak Menghadang
Gambar 3. FSM Perilaku ketika Hero Alive
Pada kondisi hero alive, terdapat 9 state perilaku yang
berbeda. Setelah spawn pasukan akan mengikut pergerakan
hero ketika jarak hero dekat. Pada kondisi follow, pasukan
akan memasuki kondisi evade ketika hero memotong
kerumunan pasukan. Ketika menyerang unit musuh dan hero
mati maka pasukan akan melarikan diri dari pertempuran dan
menggunakan FSM perilaku ketika hero tidak ada dalam arena
permainan seperti pada gambar 4.
Hero Dead
FSM
Musuh
DekatHP Habis
Musuh
Mati
Menunggu
Respawn Time
Pada Koordinat
Awal
Pada Koordinat
Defense
Pada Koordinat
Defense
Hero
Respawn
BACK TO POSITIONATTACK
DIE
SPAWN
DEFEND
ESCAPE
Hero Alive FSM
Hero Dead
Gambar 4. FSM perilaku ketika Hero Dead
Pada kondisi hero dead, pasukan harus mempertahankan
markas menggunakan kondisi defend. Ketika terdapat musuh
pada jarak serang pasukan, maka pasukan akan memasuki
kondisi attack. Apabila hero respawn maka pasukan akan
kembali menggunakan FSM perilaku pada kondisi hero alive
seperti pada Gambar 3.
F. Implementasi dalam Permainan
Setelah FSM perilaku diterapkan pada pasukan, dilakukan
penyatuan bagian-bagian permainan Lume Wars yang telah
dikerjakan secara terpisah menjadi satu bagian., dimana
bagian yang telah selesai dikerjakan adalah Gameplay
Permainan, NPC Pasukan, Animasi Karakter, dan Animasi
Lingkungan Permainan. Pasukan dalam permainan tampak
pada Gambar 5
Gambar 5. Implementasi Pasukan dalam permainan Lume Wars
III. HASIL PENGUJIAN
A. Pengujian Pada Device Android
Pada pengujian ini, digunakan 6 buah device dengan
spesifikasi berbeda-beda. Device yang digunakan adalah :
1) Smartphone Lenovo S880 (Device 1)
2) Smartphone Sony Xperia M (Device 6)
3) Smartphone Samsung Galaxy S III I9300 (Device 2)
Selain itu juga digunakan device berupa tablet sebagai berikut:
1) Tablet Samsung Galaxy Tab GT-P1000 (Device 5)
2) Tablet Samsung Galaxy Tab 7.0 GT-P6200 (Device 4)
3) Tablet Novo 7 Numy AX1(Device 3)
Dari device-device berikut, hasil yang akan diambil nilainya
adalah nilai Frame Per Second (FPS), CPU Load, dan
Memory Usage.
a. Hasil Pengambilan Data Frame per Second (FPS)
Gambar 6. Hasil FPS rata-rata pada tiap device
Pengujian nilai FPS pada tiap device dilakukan dengan cara
mengambil 3 nilai FPS pada waktu yang berbeda.
Pengambilan data dilakukan ketika pasukan sedang
melakukan perilaku yang telah dibuat sebelumnya. Perilaku
pasukan yang digunakan dalam pengujian ini adalah perilaku
4
follow, attack, dan idle. Setiap pengambilan data dilakukan
dengan jumlah pasukan 10 sampai 100 dengan selisih 10
pasukan.
Setelah dilakukan pengujian, tampak pada Gambar 6
didapatkan nilai rata-rata FPS pada device 1 adalah 30.5, pada
device 2 adalah 42.3, pada device 3 adalah 45.7, pada device 4
adalah 50.5, pada device 5 adalah 28.9, pada device 6 adalah
27.1.
b. Hasil Pengambilan Data CPU Load
Gambar 7. Hasil CPU Load rata-rata pada tiap device
Pengambilan nilai CPU Load dilakukan pada 3 perilaku
pasukan, yaitu follow, idle, dan attack. Pengambilan data
dilakukan 3 kali pada tiap perilaku, satu siklus pengambilan
dilakukan dengan urutan pengambilan data saat follow,
pengambilan saat idle, dan pengambilan saat attack. Siklus
tersebut dilakukan sebanyak 3 kali. Setiap pengambilan
dilakukan dengan pasukan berjumlah 10 sampai 100 pasukan,
dengan selisih 10 pasukan setiap pengambilan.
Dari hasil pengambilan data CPU Load perilaku pasukan,
didapatkan nilai rata-rata CPU Load pada device 1 adalah
84.2%, nilai rata-rata CPU Load pada device 2 adalah 95.9%,
nilai rata-rata CPU Load pada device 3 adalah 96.1%, nilai
rata-rata CPU Load pada device 4 adalah 96.1%, nilai rata-rata
CPU Load pada device 5 adalah 79.3%, nilai rata-rata CPU
Load pada device 6 adalah 94.3%.
c. Hasil Pengambilan Data Memory Usage
Gambar 8. Hasil Memory Usage rata-rata pada tiap device
Pengambilan nilai Memory Usage dilakukan pada 3 perilaku
pasukan, yaitu follow, idle, dan attack. Pengambilan dilakukan
sebanyak 3 kali, pengambilan pertama ketika permainan baru
dimulai, pengambilan kedua setelah ditengah-tengah
permainan, dan pengambilan ketiga setelah pengambilan
kedua selesai dilakukan.
Dari hasil pengambilan data Memory Usage, didapatkan
nilai rata-rata Memory Usage pada device 1 adalah 186593.1
KB, nilai rata-rata Memory Usage pada device 2 adalah
69473.9 KB, nilai rata-rata Memory Usage pada device 3
adalah 376386.3 KB, nilai rata-rata Memory Usage pada
device 4 adalah 69964.6 KB, nilai rata-rata Memory Usage
pada device 5 adalah 137811.2 KB, nilai rata-rata Memory
Usage pada device 6 adalah 183989.1 KB.
B. Pengujian FSM Perilaku
Setelah dilakukan pengujian dalam permainan, ternyata ada
beberapa perilaku yang tidak berjalan sesuai dengan skenario
yang diharapkan pada awal perancangan FSM perilaku. Hal
tersebut terjadi karena adanya pengaruh lain baik yang
diketahui penyebabnya maupun yang tidak diketahui
penyebabnya.
Contoh penyebab yang diketahui mengakibatkan tidak
terlaksananya suatu perilaku adalah adanya gaya atau
pengaruh dari perilaku lain. Hasil yang didapatkan dari
pengujian FSM Perilaku ini terdapat pada Tabel 1.
Tabel 1.
Hasil Pengujian FSM Perilaku
No State Kemungkinan Perilaku
Terlaksana
1 Spawn - Ya
2 Pursuit 1. Hero dalam kondisi Attack/Idle Ya
2. Hero dalam kondisi Walk Ya
3 Follow 1. Pasukan tidak dalam kondisi menyerang Ya
2. Pasukan dalam kondisi Attack dan jarak
dengan hero kurang dari 200 pixel
Tidak
4 Idle 1. Tidak semua pasukan berada pada Idle Radius
Tidak
2. Seluruh pasukan ada pada Idle Radius Ya
3. Hero berada ditengah kerumunan
pasukan
Tidak
5 Attack 1. Musuh berada disebelah unit pasukan Ya
2. Terdapat Hero diantara Pasukan dan
Musuh
Tidak
6 Back to
Position
1. Terdapat musuh disekitar pasukan Tidak
2. Tidak terdapat musuh lain disekitar pasukan
Ya
7 Escape - Ya
8 Evade - Ya
9 Defend 1. Tidak semua Pasukan berada pada
Defense Region
Tidak
2. Seluruh pasukan berada pada Defense
Region
Ya
10 Die - Ya
Dari 10 perilaku yang dibuat, terdapat 17 kemungkinan
perilaku yang mungkin terjadi didalam permainan. Pada tabel
1 terdapat 7 kemungkinan yang terjadi ketika perilaku yang
seharusnya dijalankan menjadi tidak terlaksana. Perilaku yang
pada kondisi tertentu tidak terlaksana yaitu perilaku pursuit,
follow, idle, attack, back to position, dan defend.
5
C. Pengujian Survei Pengguna
Pengujian ketiga adalah pengujian untuk mengetahui respon
pengguna terhadap perilaku pasukan yang dibuat apakah
dinilai baik atau tidak dari sudut pandang pengguna. Survei ini
dilakukan kepada pengguna yang telah mencoba permainan
Lume Wars terlebih dahulu. Terdapat 5 pertanyaan mengenai
perilaku pasukan, yaitu mengenai perilaku follow, evade,
pursuit, attack, juga mengenai parameter jarak hero terhadap
pasukan, dan jarak pasukan terhadap pasukan lainnya dalam
kerumunan.
Gambar 9. Hasil jawaban survei
Pada Gambar 8, ditunjukkan hasil yang diperoleh dari 6
pertanyaan yang diajukan dalam survei. Pada Perilaku follow,
diperoleh hasil 3 sangat baik, 21 cukup baik, dan 8 kurang
baik. Pada perilaku Evade, diperoleh hasil 5 sangat baik, 23
cukup baik, 3 tidak baik, 1 sangat tidak baik . Pada perilaku
Attack, diperoleh hasil 4 sangat baik, 19 cukup baik, 7 tidak
baik, dan 2 sangat tidak baik. Pada perilaku Pursuit, diperoleh
hasil 5 sangat baik, 23 cukup baik, 3 tidak baik, 1 sangat tidak
baik.
Selain itu survei pada parameter yang digunakan yaitu
parameter distance leader yang berarti jarak antara Hero
dengan pasukan, yang diperoleh hasil 9 sangat baik, 14 cukup
baik, 7 tidak baik dan 2 sangat tidak baik. Pada hasil mengenai
parameter unit distance yang berarti jarak antara unit pasukan
satu dengan lainnya di dalam kerumunan, diperoleh hasil 8
sangat baik, 16 cukup baik, 7 tidak baik, dan 1 sangat tidak
baik.
IV. KESIMPULAN
Dari hasil perancangan, implementasi dan pengujian
seluruh sistem yang dikerjakan tentang perilaku pasukan NPC
dalam permainan Lume Wars, diketahui bahwa perilaku yang
dirancang telah dapat diimplementasikan dan dimainkan
secara langsung didalam permainan Lume Wars. Pada device
yang diujikan, nilai fps yang diperoleh, membentuk pola
beraturan dimana semakin banyak pasukan yang digunakan
dalam pengujian, maka nilai fps akan semakin rendah.
Sedangkan pada nilai CPU load dan memory usage, banyak
atau sedikit jumlah pasukan yang digunakan, kedua nilai
tersebut tetap tidak membentuk pola tertentu, sehingga yang
dapat dijadikan acuan hanya nilai pada fps saja. Fsm perilaku
yang telah diimplementasikan dalam pasukan, tidak
seluruhnya terlaksana, terlihat sebanyak 35.29% perilaku tidak
terlaksana, hal tersebut dapat disebabkan karena adanya
pengaruh dari luar baik yang diketahui maupun tidak.
Berdasarkan hasil survei sebanyak 32 pengguna, didapatkan
nilai 57.81% dari total keseluruhan jawaban memilih nilai
cukup baik dan 19.79 % yang memberikan pilihan sangat baik.
Sehingga berdasarkan survei pengguna dimana jawaban
sangat baik masih sangat sedikit, perilaku yang dibuat ini
dianggap belum cukup baik dan masih perlu dilakukan
pengembangan lebih lanjut.
DAFTAR PUSTAKA
[1] J. Funge and I. Millington, Artificial Intelligence for Games Second
Edition. Burlington,MA : Morgan Kaufmann (2009) [2] C. W. Reynolds, “Flocks, Herds, and Schools : A Distributed Behavioral
Model“ ACM SIGGRAPH Conference, California(1987) 25–34.
[3] C. W. Reynolds, “Steering Behavior for Autonomous Characters“ Game Developers Conference, California (1999) 763-782.
[4] Z. Shen and S. Zhou, “Behavior representation and simulation for
military operations on urbanized terrain,” International Journal of Computer Games Technology, vol. 82, no. 9, 593–607 (2006)
[5] A. Davison, Killer Game Programming in Java. O’Reilly Media, 2005