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 Herd of land animals
School of fish Flocking 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, Herds, and Schools: A Distributed Behavioral Model”, Computer Graphics, 21(4) (SIGGRAPH '87 Conference Proceedings) halaman 25-34, 1987