Pengaturan Perilaku Pasukan NPC
menggunakan
Flocking Behavior
berbasis
Agent
pada Permainan RTS
Dosen Pembimbing :
Moch. Hariadi S.T., M.T., Ph.D.,
Christyowidiasmoro S.T., M.Sc.,
Latar Belakang
• Pengembangan Permainan RTS Lume Wars
• Pasukan merupakan elemen yang hampir selalu ada dalam Permainan RTS – Contoh: Rome Total Wars, Age of Empire, C&C: General.
• Pergerakan Pasukan dalam permainan, sedapat mungkin dibuat mirip dengan pasukan dalam dunia nyata
–Contoh : Pasukan Romawi.
• Flocking behavior merupakan salah metode yang digunakan dalam simulasi pergerakan berkelompok dalam permainan.[1]
Permasalahan
•
Dalam pembuatan permainan Lume Wars, dibutuhkan
pasukan yang dapat bertindak tanpa dikendalikan secara
langsung oleh pemain (Non Player Character).
•
Perilaku yang telah diterapkan pada pasukan didalam
permainan, diharapkan sesuai dengan rancangan perilaku
yang telah dibuat.
Tujuan
• Merancang dan menerapkan perilaku pada sekumpulan
pasukan yang nantinya akan digunakan pada permainan
Lume Wars
•
Skenario perilaku diterapkan pada pasukan NPC saja
•
Pasukan pada masing-masing ras berjumlah 10 unit
•
Metode pergerakan yang digunakan adalah
Flocking
behavior
yang akan dipengaruhi oleh suatu
agent
yang
merupakan karakter
hero
dalam permainan.
•
Target platform permainan yang dibuat adalah
android
device
Desain Sistem
Lume Wars
•Desain Art •Desain Sprite
•Perancangan Gameplay
•Perancangan Perilaku Hero NPC
•Perancangan Perilaku Pasukan NPC •Implementasi Jaringan
Penentuan
Perilaku
Pasukan
Perancangan
FSM Perilaku
FSM Perilaku
Penerapan
Penyatuan
Bagian
Permainan
IDLE PURSUIT
FOLLOW
SPAWN Berada di Kerumunan
EVADE Hero Idle ATTACK BACK TO POSITION DIE Hero Dekat Hero Jauh Hero Dead Musuh Dekat / Hero Attack HP Habis Musuh Mati Menunggu Respawn Time Hero Alive FSM Pada Koordinat Awal Hero Menghadang Hero Dead FSM Hero Alive
Desain Sistem
Keterangan :
= State Perilaku = Transisi / Kondisi Perilaku = Fungsi FSM lainHero Dead FSM Musuh Dekat HP Habis Musuh Mati Menunggu Respawn Time Pada Koordinat Awal Pada Koordinat Defense Pada Koordinat Defense Hero Respawn BACK TO POSITION ATTACK DIE SPAWN DEFEND ESCAPE Hero Alive FSM Hero Dead
Desain Sistem
Keterangan :
= State Perilaku = Transisi / Kondisi Perilaku = Fungsi FSM lainImplementasi perilaku pada pasukan :
1. Perilaku dasar pada pasukan
2. Perilaku menggunakan FSM skenario yang dibuat
A. Perilaku
Idle
Parameter :
Arah
Koordinat
Idle Radius :
170 pixel
B. Perilaku
Walk
Parameter :
Arah
Koordinat
Movement Speed :
90
pixel/
detik
Image speed :
1.5 fps
C. Perilaku
Attack
Parameter:
•
Image speed :
–
3 fps
•
Attack range
–
Melee :
1
pixel
–
Range :
200
pixel
•
Auto-Attack range
–
Melee :
50
pixel
–
Range :
300
pixel
•
Attack Speed :
–
0.66 detik
Penerapan Perilaku berdasarkan FSM :
1. Kondisi
Hero Alive
2. Kondisi
Hero Dead
1.
Spawn & Respawn
Parameter
:
•
Koordinat
Spawn &
Respawn
–
Map
Jungle :
(576, 2592)
–
Map
Field :
(512, 736)
•
Respawn Cooldown
:
Implementasi : Perilaku FSM
Kondisi
Hero Alive
2.
Follow
Parameter :
•
Follow Point
•
Distance Behind Hero
:
220
pixel
= Arah gerak
= Jarak hero
dengan Follow Point
= Follow Point
Keterangan
Implementasi : Perilaku FSM
2.1
Penerapan
Flocking Behavior
Parameter :
•
Separation Force
•
Arrival Force (Cohesion + Alignment)
•
Separation Distance :
80 pixel
•
Maximum Separation Force :
4
•
Maximum Arrival Force :
Implementasi : Perilaku FSM
18
2.1.1
Separation
𝑓𝑠 =
1
𝑛
𝑛𝑒𝑖𝑔ℎ𝑏𝑜𝑟_𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛
𝑚− 𝑢𝑛𝑖𝑡_𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛
𝑛 𝑚=1𝑓𝑠 = 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑒 𝑓𝑠 ∗ 𝑚𝑎𝑥 _𝑓𝑠
fs = separation force fa = arrival force n = jumlah neighbor m = index neighbormax_fs = gaya maksimum pada separation force
max_fa = gaya maksimum pada arrival force
2.1.2
Cohesion & Aligment (Arrival)
𝑓𝑎 = 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑒 ℎ𝑒𝑟𝑜_𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 − 𝑢𝑛𝑖𝑡_𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 ∗ max _𝑓𝑎
Keterangan :
Implementasi : Perilaku FSM
3. Evade
Parameter
:
•
Evade Point
–
Hero Location
–
Hero Ahead
•
Evade Radius :
80 pixel
•
Distance Ahead Hero:
160 pixel
Implementasi : Perilaku FSM
Kondisi
Hero Alive
Keterangan
= Pasukan dalam pengaruh Evade
= Pasukan tidak dalam pengaruh Evade
= Evade Point
= Evade Region
= Hero Ahead Distance, Arah Gerak Hero
3.1 Evading Force
𝑓𝑒 = 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑒 𝑢𝑛𝑖𝑡_𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 − ℎ𝑒𝑟𝑜_𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 ∗ 𝑚𝑎𝑥 _𝑠𝑝𝑒𝑒𝑑
𝑓𝑒 = 𝑓𝑒 − 𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 ∗ 𝑚𝑎𝑥 _𝑓𝑒
Keterangan :
fe = evading force
max_fe = gaya maksimum pada evading force Velocity = kecepatan gerak pasukan
Max_speed = kecepatan gerak maksimum pasukan
Implementasi : Perilaku FSM
4.
Pursuit
Parameter :
•
Follow Point
•
Distance Behind Hero
Implementasi : Perilaku FSM
Kondisi
Hero Alive
Keterangan : = Follow Point
= Arah gerak untuk kembali ke kerumunan
1.
Defense
Parameter :
•
Koordinat Markas
–
Map Cave
(224,2688)
–
Map Jungle
(224,800)
•
Defense Point
–
Map Cave
(674,2688)
–
Map Jungle
(674,800)
•
Defense Radius :
170 pixelImplementasi : Perilaku FSM
Kondisi
Hero Dead
Keterangan :
Pengujian :
Device
•
Device
yang digunakan :
Smartphone Device 1 Device 2 Device 3 Product Name Lenovo S880 Sony Xperia M Samsung Galaxy S
III I9300 Operating System Android 4.0.1 Ice Cream Sandwich Android 4.1 Jelly Bean Android 4.1.2 Jelly Bean Processor Cortex-A9 1 GHz Single Core Krait 1 GHz Dual Core Cortex-A9 1.4 GHz Quad Core
GPU PowerVR SGX531 Adreno 305 Mali-400MP
Memory 512 MB 1 GB 1 GB
Display Size 5.0 inches 4.0 inches 4.8 inches
Tablet Device 4 Device 5 Device 6 Product Name Galaxy Tab
GT-P1000 Galaxy Tab 7.0 Plus GT-P6200 Novo 7 Numy AX1 Operating System Android 2.3.6 Gingerbread, Rooted Android 4.2 Ice Cream Sandwich Android 4.2 Jelly Bean, Rooted Processor Cortex-A8 1GHz Single Core 1.2 GHz Dual Core MTK8389 Quad Core 1.2 GHz GPU PowerVR SGX 540 Mali-400MP PowerVR SGX 544MP Memory 512 MB 1 GB DDR3 1 GB
Display Size 7.0 inches 7.0 inches 7.0 inches
Disp. Resolution 600 x 1024 pixels 600 x 1024 pixels 600 x 1024 pixels
0 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 100 Fram e per Sec o n d (fp s) Jumlah Pasukan Hasil Average FPS Smartphone - Lenovo
Smartphone - Samsung Galaxy S3 Tablet- Ainol
Tablet - Samsung Galaxy Tab p-6200 Tablet - Samsung Galaxy Tab p1000 Smartphone - Sony Xperia M
Hasil Pengujian :
Device
0 20 40 60 80 100 120 10 20 30 40 50 60 70 80 90 100 Cp u L oad (%)
Hasil Average CPU Load
Smartphone - Lenovo
Smartphone - Samsung Galaxy S3 Tablet- Ainol
Tablet - Samsung Galaxy Tab p-6200 Tablet - Samsung Galaxy Tab p1000 Smartphone - Sony Xperia M
Hasil Pengujian :
Device
Hasil Pengujian :
Device
Memory Usage
0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 10 20 30 40 50 60 70 80 90 100 M e m or y Usa ge (KB) Jumlah PasukanHasil Average Memory Usage
Smartphone - Lenovo
Smartphone - Samsung Galaxy S3 Tablet- Ainol
Tablet - Samsung Galaxy Tab p-6200 Tablet - Samsung Galaxy Tab p1000 Smartphone - Sony Xperia M
Hasil Pengujian : FSM
No State Kondisi Tertentu PerilakuTerlaksana Keterangan
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 Masih dalam kondisi attack
4 Idle 1. Tidak semua pasukan berada pada Idle Radius Tidak Masih dalam kondisi follow 2. Seluruh pasukan ada pada Idle Radius Ya
3. Hero berada ditengah kerumunan pasukan Tidak Melakukan Perilaku Evade
5 Attack 1. Musuh berada disebelah unit pasukan Ya
2. Terdapat Hero diantara Pasukan dan Musuh Tidak Terkena Evade Force
6 Back to Position
1. Terdapat musuh disekitar pasukan Tidak Melakukan Kondisi Attack segera 2. Tidak terdapat musuh lain disekitar pasukan Ya
7 Escape - Ya
8 Evade - Ya
Hasil Pengujian : Survei
Kesimpulan
• Nilai FPS berbanding terbalik dengan Jumlah pasukan yang diujikan. Nilai FPS
rata-rata diatas 25 fps pada pengujian dengan jumlah pasukan 40, sehingga pada
pengujian menggunakan lebih dari 40 pasukan dinilai device berjalan dengan kondisi
berat atau lag.
• Dari hasil kuisioner, jawaban Sangat Baik tidak mencapai nilai 30%, sehingga dirasa
perilaku masih perlu dikembangkan.
• Dari hasil pengujian FSM, terdapat 17 kondisi yang mungkin terjadi dari total 10
perilaku yang dibuat. Sebanyak 64.7% kondisi perilaku terlaksana, sehingga perilaku yang telah diimplementasikan dirasa cukup sesuai dengan perilaku awal yang dibuat.
Referensi
1. 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)
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. Pemmaraju, Vijay ”The Three Simple Rules of Flocking Behaviors: Alignment,
Cohesion, and separation”, <http://gamedevelopment.tutsplus.com/tutorials/
the- three-simple-rules-of-flocking-behaviors-alignment-cohesion-and-separation--gamedev-3444> diakses 12 Januari 2014