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 realtime. 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 nontarget 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 ratarata 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 NPC Boid Jumlah NPC non-boid Sisa NPC Boid Sisa NPC non-boid Menang (Y / N) 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 Uji (menit) Jumlah NPC Boid Jumlah NPC non- Boid Sisa NPC Boid Sisa NPC non-boid Menang (Y / N) 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 <URL: http://www.cs.toronto.edu/~dt/siggraph97-course/cwr87/> Reynolds, C. W., Boids : Background and Update. <URL: http://red3d.com/cwr/boids/>. Update terbaru: September 6, 2001. Rae, Alastair., Quelea Flock. <URL: http://www.flickr.com/photos/merula/342898722/in/set-72157594423311516/ > Wikipedia.org. Red-billed Quelea <URL: http://en.wikipedia.org/wiki/redbilled_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. <URL: http://en.wikipedia.org/wiki/file:wbeest_mara.jpg> Biermen, Ed., A Tornado of Fish. <URL: http://www.flickr.com/photos/edbierman/3200958280/> National Geographic. Bluefin Tuna Eat Bait Ball <URL: http://video.nationalgeographic.com/video/animals/fish-animals/spiny-rayedfish/tuna_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. <URL: http://www.red3d.com/cwr/steer/gdc99/> Bevilacqua, Fernando., Understanding Steering Behaviors: Seek. <URL: http://gamedev.tutsplus.com/tutorials/implementation/understanding-steeringbehaviors-seek/ >. 2013 Bevilacqua, Fernando., Understanding Steering Behaviors: Flee and Arrival. <URL: http://gamedev.tutsplus.com/tutorials/implementation/understanding-steeringbehaviors-flee-and-arrival/ >. 2013 Pemmaraju, Vijay., The Three Simple Rules of Flocking Behaviors: Alignment, Cohesion, and Separation. <URL: http://gamedev.tutsplus.com/tutorials/implementation/the-three-simple-rules-offlocking-behaviors-alignment-cohesion-and-separation/ >. Januari, 2013 Parker, Conrad., Boids Pseudocode. <URL: http://www.kfish.org/boids/pseudocode.html >