Febrian Bahari Adi 2207 100 175

Dosen Pembimbing 1 : Moch. Hariadi, S.T., M.Sc., Ph.D. Dosen Pembimbing 2 : Dr. I Ketut Eddy P., S.T., M.T. Pendahuluan

• Pada game mode Real-Time Strategy (RTS), perilaku player maupun Non-Player Character (NPC) dipengaruhi oleh perubahan lingkungan secara real- time. NPC yang tidak responsif terhadap lingkungan memiliki daya tempur yang lemah. • Kecerdasan buatan berbasis algoritma perilaku boid diberikan untuk memampukan NPC merespon lingkungan secara cerdas. Dengan respon yang cerdas terhadap lingkungan, NPC lebih dapat bertahan di dalam situasi pertempuran. Latar Belakang

• NPC tempur pada game RTS biasanya beraksi dalam kelompok besar • NPC yang tidak responsif terhadap lingkungan tempur memiliki daya tempur yang lemah dan dapat melemahkan daya tempur NPC kawan • Perilaku boid merupakan perilaku yang didasarkan pada rangsangan lingkungan lokal [i],[ii] • Perilaku boid diterapkan di dalam kelompok besar [i],[ii] • Perilaku setiap individu boid memberikan keuntungan bagi keseluruhan boid di dalam kelompok Perumusan Masalah

• NPC tanpa kecerdasan buatan dapat saling berbenturan dan menghalangi aksi dari kawan saat berkerumun • NPC tanpa kecerdasan buatan menggunakan aturan jarak terdekat dalam menentukan target untuk dilawan • Penerapan perilaku boid pada NPC tempur melibatkan pemilihan NPC lawan sebagai obstacle atau target Tujuan

• Mendapatkan NPC tempur dengan kecerdasan buatan menggunakan algoritma boid • Mendapatkan perbandingan efektivitas daya tempur NPC dengan kecerdasan buatan menggunakan algoritma boid dengan NPC tanpa kecerdasan buatan • Menentukan pengaruh algoritma boid pada efektivitas tempur kelompok NPC dengan variasi jumlah anggota kelompok dan variasi waktu tempur Batasan Masalah

• Mode game yang disimulasikan adalah RTS (Real Time Strategy) • Simulasi menggunakan Unity 3D game engine • Pertempuran hanya melibatkan dua kelompok NPC • Model 3D seragam untuk masing-masing kubu NPC • Tanpa obstacle selain NPC kawan atau lawan non- target • Perilaku boid yang diberikan hanya untuk pergerakan yang memiliki dua komponen vektor, pergerakan di sumbu X dan sumbu Z Relevansi

• Pengembangan permainan komputer dengan kawanan NPC cerdas • Penerapan algoritma perilaku boid untuk kecerdasan buatan Simulasi

• si·mu·la·si n 1 metode pelatihan yg meragakan sesuatu dl bentuk tiruan yg mirip dng keadaan yg sesungguhnya; 2 penggambaran suatu sistem atau proses dng peragaan berupa model statistik atau pemeranan;

• http://bahasa.kemdiknas.go.id/kbbi/index.php NPC

• Non-Player Characters (NPC)  entitas dalam game yang tidak dikendalikan secara langsung oleh pemain

Ragam Inspirasi Perilaku Boid

Flocking of birds of land animals

School of of Birds

• tujuan terbang dalam kawanan : – mencari makan – migrasi • berdasarkan persepsi lokal dari lingkungan yang dinamis • permodelan gerakan 3D • untung & rugi : – [+] aman dari predator – [+] efisiensi dalam mencari lokasi makanan – [+] reproduksi satu spesies – [-] berebut dalam mendapatkan makanan Herd of Land Animals

• tujuan bergerak dalam kawanan : – mencari makan – migrasi • berdasarkan persepsi lokal dari lingkungan yang dinamis • permodelan gerakan 2D • untung & rugi : – [+] aman dari predator – [+] efisiensi dalam mencari lokasi makanan – [-] berebut dalam mendapatkan makanan

School of Fish

• tujuan berenang dalam kawanan : – berburu – migrasi • berdasarkan persepsi lokal dari lingkungan yang dinamis • permodelan gerakan 3D • untung & rugi : – [+] pengawasan terhadap lingkungan – [+] mengurangi peluang untuk dimangsa oleh makhluk / ikan

Desain Simulasi Generate NPC

• Satu model sebagai leader • Follower digenerate dengan fungsi instantiate – Posisi relatif terhadap leader

Instantiate (prefab, Vector3.position, Vector3.rotation);

Boid Behavior

• Deteksi local neighbor • Steering Behavior sederhana : – Separation – Alignment – Cohesion

Separation

• Kendali untuk menghindari kerumunan lokal sesama boid Collision Avoidance

velBoidSepa += pos_red - transform.position;

velBoidSepa /= neighborCount; velBoidSepa *= -1; velBoidSepa.Normalize();

velBoidSepa *= velMax; Alignment

• Kendali untuk menghadap ke arah yang sama dengan rata-rata lokal arah hadap sesama boid Velocity Matching

velBoidAlign += vel_red;

velBoidAlign /= neighborCount; velBoidAlign.Normalize();

velBoidAlign *= velMax;

Cohesion

• Kendali untuk bergerak menuju posisi rata- rata lokal dari sesama boid

Flock centering

velBoidCohe += pos_red;

velBoidCohe /= neighborCount; velBoidCohe -= transform.position; velBoidCohe.Normalize();

velBoidCohe *= velMax;

Data Pengujian Simulasi Perilaku NPC Berbasis Boid dengan Variasi Jumlah Agen

Jumlah Jumlah NPC Sisa Sisa NPC Menang NPC Boid non-Boid NPC non-Boid (Y / N) Boid 70 70 60 30 Y 70 70 65 25 Y 70 70 64 27 Y 100 100 80 30 Y 100 100 83 35 Y 100 100 90 36 Y 120 120 110 40 Y 120 120 105 35 Y 120 120 98 50 Y Simulasi Perilaku NPC Berbasis Boid dengan Variasi Waktu Tempur

Waktu Jumlah Jumlah Sisa NPC Sisa NPC Menang Uji NPC Boid NPC non- Boid non-Boid (Y / N) (menit) Boid

1 100 100 90 32 Y 1 100 100 95 35 Y 1 100 100 98 30 Y 3 100 100 80 15 Y 3 100 100 78 13 Y 3 100 100 82 10 Y 5 100 100 78 0 Y 5 100 100 75 0 Y 5 100 100 70 0 Y Kesimpulan

• NPC tempur dengan kecerdasan buatan menggunakan algoritma boid dapat merespon lingkungan tempur lebih baik dibandingkan NPC tanpa kecerdasan buatan • Rata-rata jumlah NPC dengan kecerdasan buatan berbasis algoritma boid yang bertahan hidup pada akhir simulasi sebanyak 3,35 kali dari rata-rata NPC tanpa kecerdasan buatan berbasis algoritma boid. Daftar Referensi

• Reynolds, C. W., “Flocks, , and Schools: A Distributed Behavioral Model”, Computer Graphics, 21(4) (SIGGRAPH '87 Conference Proceedings) halaman 25-34, 1987 • Reynolds, C. W., “ : Background and Update”. . Update terbaru: September 6, 2001. • Rae, Alastair., “Quelea ”. • Wikipedia.org. “Red-billed Quelea” • Hutto R., “Foraging Behavior Patterns Suggest a Possible Cost Associated with Participation in Mixed-Species Bird Flocks”. Oikos 51(1): 79–83. 1988. • Raman, T. R. Shankar. “Wildebeest herding and following a few leading zebra in the Masai Mara, Kenya”. Koleksi pribadi. • Biermen, Ed., “A Tornado of Fish”. • National Geographic. “Bluefin Eat Bait Ball” • Pitcher, T.; Magurran, A.; Winfield, I., “Fish in larger shoals find food faster”. Behav. Ecol. and Sociobiology 10 (2): 149–151. 1982. • Reynolds, C. W., “Steering Behaviors For Autonomous Characters”, Game Developers Conference 1999, San Jose, California. Miller Freeman Game Group, San Francisco, California, halaman 763-782, 1999. • Bevilacqua, Fernando., “Understanding Steering Behaviors: Seek”. . 2013 • Bevilacqua, Fernando., “Understanding Steering Behaviors: Flee and Arrival”. . 2013 • Pemmaraju, Vijay., “The Three Simple Rules of Flocking Behaviors: Alignment, Cohesion, and Separation”. . Januari, 2013 • Parker, Conrad., “Boids Pseudocode”.