analisis dan implementasi algoritma boids dan …
TRANSCRIPT
1
ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN COLLISION AVOIDANCE
PADA PERGERAKAN NPC DALAM GAME 2D BERBASIS WEB
Rodo Maxmilano
Richard Vinc N. Santoso, S.TI., M.T.I.
INSTITUT BISNIS dan INFORMATIKA KWIK KIAN GIE Jakarta, Indonesia (Telp (021) 081932771899; E-mail :
([email protected], [email protected] )
Abstrak - Seiring dengan perkembangan
pembuatan permainan komputer, penerapan
kecerdasan buatan meningkat dengan pesat.
Penelitian ini bertujuan untuk merancang dan
mencari efektivitas gerombolan Non-Player
Character dengan algoritma Boids agar tidak
saling bertabrakan. Penelitian ini juga bertujuan
untuk mencari tahu berapa waktu yang ditempuh
oleh gerombolan Non-Player Character saat
menggunakan algoritma Boids dan Collision
Avoidance beserta mencari tahu apakah semakin
banyak jumlah Non-Player Character dapat
mengurangi peforma yang dihasilkan oleh
komputer.Peneliti mempelajari teori yang
berkaitan dengan algoritma Boids yang diteliti dan
juga melakukan studi pada 12 jurnal penelitian
terdahulu yang memakai algoritma Boids
didalamnya. Studi ini dilakukan untuk
mengumpulkan data bagaimana algoritma Boids
dapat diimplementasikan ke objek NPC dengan
mempelajari hasil penelitian tersebut. Peneliti
memberikan gambaran umum bagaimana NPC
dalam permainan komputer dapat bergerak
dengan menunjukan contoh algoritma pergerakan
terhadap NPC yang mengejar NPC lainnya.
Peneliti juga menggunakan metode Waterfall
untuk menjalankan penelitiannya. Metode
Waterfall tersebut memiliki urutan proses yaitu
adalah perencanaan, analisis, perancangan dan
pemograman, pengujian dan implementasi.
Algoritma Boids memiliki 3 aturan utama yaitu
Separation, Alignment dan juga Cohesion. Peneliti
melakukan eksperimen algoritma Boids, peneliti
melakukan eksperimen dengan melakukan
eksperimen dengan algoritma Boids dan juga
dengan ditambah Collision Avoidance pada
eksperimennya. Pada Eksperimen menggunakan
algoritma Boids peneliti mengubah variabel
Separation, Cohesion dan juga Alignment sesuai
nilai yang ditentukan. Dari data yang dihasilkan
dapat dilihat bahwa dengan diimplementasikannya
algoritma Boids dapat menurunkan jumlah NPC
yang bertabrakan dan membuktikan bahwa makin
banyak boids dapat menurunkan performa
komputer. Eksperimen ini juga membuktikan
bahwa semakin banyak NPC Boids yang ada,
performa komputer akan menurun dilihat dari
rata-rata Frame rate yang dihasilkan. Dari
penelitian yang dilakukan, dapat dibuktikan
algoritma Boids yang dibantu dengan Collision
Avoidance dapat mengurangi tabrakan pada
kelompok boids yang saling berdekatan.
Eksperimen membutikan bahwa semakin banyak
jumlah NPC Boids dapat mengurangi performa
yang dihasilkan oleh komputer dengan melihat
nilai rata-rata dari Frame Rate per detik yang
dihasilkan.
Kata kunci: NPC, game, kecerdasan buatan,
Algoritma boids, Collision Avoidance, Flocking
1. Pendahuluan
Seiring dengan perkembangan pembuatan
permainan komputer, penerapan kecerdasan
buatan meningkat pesat dengan membuat
permainan komputer yang dimainkan lebih
menyenangkan dan menarik. Penelitian tentang
kecerdasan buatan pada NPC (Non player
character) dalam permainan komputer hingga
saat ini masih terus dikembangkan. NPC adalah
karakter di dalam permainan komputer di mana
karakter tersebut tidak dikendalikan langsung
oleh pemain tetapi dikendalikan oleh komputer.
Kecerdasan buatan tersebut dikembangkan untuk
merancang perilaku pergerakan yang akan
dilakukan NPC.
Salah satu model pergerakan NPC dalam
melakukan gerakan adalah mencegah pergerakan
2
NPC agar tidak bertabrakan dengan NPC lain.
Walaupun penelitian tentang kecerdasan buatan
ini telah meningkat dengan pesat, tetapi masih
saja ada beberapa permainan komputer yang
tidak memakai kecerdasan buatan pada NPC
dalam permainan tersebut. Salah satu masalah
yang terjadi pada saat NPC bergerak secara
bergerombol adalah mereka saling bertabrakan,
menghalangi satu sama lainnya dan kadang dapat
menyerang sesama teman. Hal ini terlihat tidak
menyenangkan. Masalah yang telah di
identifikasikan adalah bagaimana cara merancang
gerombolan Non Player Character dengan
algoritma Boids agar tidak bertabrakan.
Penelitian ini dilakukan dengan batasan
masalah yaitu membuat permainan komputer
yang bersifat single player melawan komputer,
menjalankannya pada browser Google Chrome
dan juga diimplementasikan dengan algoritma
Boids. Penelitian ini juga bertujuan untuk
mengimplementasikan algoritma Boids dan
Collision Avoidance untuk melakukan pergerakan
gerombolan Non Player Character, mencari tahu
apakah algoritma Boids dapat menurunkan
jumlah tabrakan pada sesama NPC, mencari tahu
apakah pengunaan algoritma Boids dan Collision
Avoidance menghasilkan waktu yang ditempuh
menjadi lebih sedikit atau tidak dan juga mencari
tahu apakah semakin banyak jumlah NPC Boids
dapat mengurangi performa yang dihasilkan oleh
komputer dengan melihat nilai rata-rata dari
Frame Rate per detik yang dihasilkan. Manfaat
dari hasil penelitian ini adalah memberikan
kontribusi dan pembelajaran pada pengembang
permainan komputer untuk membuat permainan
komputer yang memiliki kesan nyata dan
menyenangkan pada pergerakan Non Player
Character dalam permainan komputer.
2. Metode Penelitian
Metode pengembangan sistem yang digunakan
adalah metode Waterfall. Peneliti menggunakan
metode Waterfall dikarenakan model metode
Waterfall karena memiliki proses yang urut, mulai
dari penrencanaan dan sampai pemeliharaan jika
ada sesuatu yang salah. Setiap proses dalam
metode Waterfall memiliki spesifikasi sendiri,
sehingga sebuah sistem dapat dikembangkan
dengan tepat sasaran. Waterfall juga memiliki
proses yang tidak tumpah tindih.
Gambar 2. 1 Gambar ilustrasi urutan dari
metode Waterfall
1. Perencanaan
Pada tahap ini, penulis sebagai peneliti
menentukan topik apa yang akan dijadikan
landasan dalam penelitian yang akan dilakukan.
Peneliti disini juga membuat rancangan
bagaimana hasil penelitian tersebut dibuat.
2. Analisis
Peneliti mulai melakukan pengamantan dan
pengumpulan data yang dibutuhkan pada objek
yang akan diteliti.
3. Perancangan dan Pemograman
Pada tahap ini peneliti melakukan pemograman
untuk membuat sistem sesuai perencanaan yang
sebelumnya dibuat.
4. Pengujian
Pada tahap ini peneliti melakukan pengujian
apakah sistem yang dibuat sudah sesuai dengan
data analisis yang telah dilakukan dan juga
melakukan mengamatan apakah sistem tersebut
berjalan seperti kemauan peneliti. Peneliti
melakukan pengujian pada algoritma Boids
3
dengan eksperimen aplikasi simulasi yang telah
dibuat.
5. Implementasi
Pada tahap ini peneliti melakukan implementasi
sistem yang telah dibuat kepada objek yang
diteliti.
6. Pemeliharaan
Pada tahap ini peneliti tidak melakukan
pemeliharaan karena sistem yang dibuat bukanlah
sistem yang bekerja untuk digunakan oleh
perusahaan atau sebagainya.
A. Teknik Pengumpulan Data
Data yang diperlukan pada penelitian ini adalah
data yang berkaitan dengan sistem algoritma
Boids yang pernah diimplementasikan
sebelumnya, dengan begitu penulis dapat
mengetahui bagaimana algoritma Boids tersebut
berkerja dan bagaimana caranya algoritma
tersebut diimplementasikan pada bidang selain
permainan komputer. Berikut penjelasan
bagaimana peneliti melakukan pengumpulan data.
a. Studi Pustaka
Teknik ini dilakukan dengan cara mengumpulkan
data dari sumber yang sudah ada seperti jurnal,
artikel, video tutorial, media internet, buku digital
dan teks dan lain-lain mengenai penelitian sejenis
untuk menjadi dasar dari penelitian yang
dilakukan ini. Peneliti juga melakukan studi
pustaka dengan pergi ke perpustakaan Universitas
Indonesia untuk mencari jurnal penelitian
sebelumnya dan juga buku yang berkaitan dengan
penelitian yang peneliti lakukan.
Beberapa kata kunci yang peneliti gunakan adalah
sebagai berikut:
(1). Algoritma Boids
(2). NPC
(3). Pergerakan NPC
(4). Algoritma Flocking
(5). NPC Movement Algorithm
b. Eksperimen
Teknik pengumpulan data ini adalah dengan cara
mengamati secara langsung proses algoritma
tersebut diimplementasikan, peneliti juga
melakukan pengujian dengan membuat program
simulasi buatan yang dijadikan alat utuk
melakukan testing pada algoritma Boids tersebut
untuk mencari cara bagaimana membuat
algoritma tersebut dapat dipakai dan berjalan
sesuai yang diharapkan atau tidak. Eksperimen ini
dibuat dengan bertujuan untuk mencari perbedaan
hasil dari pergerakan NPC seperti berikut:
(1). Tanpa menggunakan algoritma Boids.
(2). Dengan menggunakan algoritma Boids.
(3). Saat menggunakan algoritma Boids
dengan jumlah agen boids yang berbeda.
(4). Dengan menggunakan algoritma Boids
yang ditambah dengan Collision Avoidance.
Untuk mendapatkan hasil tersebut, penulis
membuat pogram simulasi pergerakan tersebut
lalu menjalankan dengan nilai variabel yang
berbeda tiap simulasi dan mencatat hasil yang
dihasilkan dari aplikasi simulasi yang telah terbuat
tersebut.
B. Teknik Analisis Data
Penulis mendapatkan ilmu pengetahuan yang
dapat digunakaan pada penelitian yang sedang
dijalankan lalu membuat kesimpulan dari data
yang telah dikumpulkan. Kesimpulan tersebut
didapatkan dari data yang dikumpulkan saat
melakukan studi pustaka tentang implementasi
algoritma Boids pada penelitian terdahulu. Untuk
data dari hasil eksperimen, hasil tersebut akan
dilihat manakah hasil yang menghasilkan tabrakan
yang paling sedikit dan performa aplikasi yang
paling baik dari setiap eksperimen yang
menggunakan nilai variabel yang berbeda tiap
simulasinya.
3. Hasil dan Pembahasan
Dalam menjalankan penelitian ini, peneliti
mengikuti metode Waterfall dalam membuat
pogram yang diinginkan. Pada bagian ini penulis
merancang bagaimana sistem dibuat, alur
perancangannya adalah sebagai berikut:
4
A. Perancangan simulasi eksperimen
algoritma Boids
Gambar 3. 1 Gambar desain tampilan aplikasi
simulasi
Simulasi ini akan menggunakan pogram yang
penulis buat dengan bahasa pemograman
JavasScript menggunakan alat bantu Visual
Studio Code dan library P5.js dan dijalankan
menggunakan aplikasi browser Google Chrome
64bit dengan versi rilis 79.0.3945.88. Penulis juga
merekam layar komputer saat berjalannya aplikasi
menjadi sebuah sebuah video dengan bantuan alat
aplikasi bernama OBS (Open Broadcaster
Software), aplikasi gratis dan open source untuk
merekam video.
Pada saat aplikasi dijalankan, posisi awal
sekumpulan boids akan tersebar pada bagian kiri
layar aplikasi, kumpulan obstacle atau halangan
juga disebar pada jalur menuju finish untuk
memberikan pergerakan kumpulan boids yang
menghindar. Sekumpulan boids yang sudah ada
akan melakukan pergerakan menuju kotak finish
yang berada di sisi kanan sambil melakukan
perhitungan gerakan dengan ketentuan tiap
skenario yang telah direncanakan. Jika ada sebuah
boid yang menabrak boid lainnya, boid tersebut
akan diberikan status ‘mati’ begitu juga boid yang
ditabraknya di mana status ‘mati’ ini membuat
boid menjadi tidak dapat bergerak. Saat boid
mencapai area finish, boid tersebut akan diberikan
status ‘finish’.
Untuk skenario bagaimana empat simulasi
tersebut dilakukan, dijelaskan sebagai berikut:
a. Tanpa menggunakan algoritma Boids
NPC boid yang berjumlah 30 buah akan disebar
dari sisi kiri dan NPC obstacle atau penghalang
yang berjumlah 50 akan disebar pada jalur
menuju area finish. NPC pada awalnya akan
diberikan variabel arah geraknya dengan nilai
antara 1.00 sampai 2.00 yang dipilih secara acak
pada awal tiap percobaan simulasi saat setelah
disebar dengan bantuan fungsi JavaScript yaitu
fungsi random(1.00, 2.00) untuk memberikan
efek arah gerak yang berbeda pada tiap iterasi
simulasinya.
NPC boid yang berjumlah 30 buah akan
disebar dari sisi kiri dan NPC obstacle atau
penghalang yang berjumlah 50 akan disebar pada
jalur menuju area finish. Saat melakukan
pergerakan, NPC akan menghitung arah
pergerakan yang akan dilakukan dengan algoritma
Boids yang menggunakan variabel yang telah di
tentukan. NPC pada awalnya akan diberikan
variabel Separation, Alignment, Cohesion dan
Perception yang berbeda pada tiap percobaan
dengan simulasi yang telah dibuat. Berikut tabel
berisikan variabel yang akan menjadi fokus dari
percobaan pada simulasi ini
Nama Variabel
Penjelasan
Tabrakan Jumlah boid yang bertabrakan saat simulasi
Finish Time
Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish
Tabel 3. 1
Tabel penjelasan variabel utama dalam
simulasi
5
Gambar 3. 1
Gambar Flowchart simulasi tanpa
menggunakan algoritma boids
b. Dengan menggunakan algoritma Boids
NPC boid yang berjumlah 30 buah akan disebar
dari sisi kiri dan NPC obstacle atau penghalang
yang berjumlah 50 akan disebar pada jalur menuju
area finish. Saat melakukan pergerakan, NPC
akan menghitung arah pergerakan yang akan
dilakukan dengan algoritma Boids dan Collision
Avoidance dengan menggunakan variabel yang
telah di tentukan. NPC pada awalnya akan
diberikan variabel Separation, Alignment,
Cohesion dan Perception yang berbeda pada tiap
iterasi percobaan dengan simulasi yang telah
dibuat. NPC juga melakukan perhitungan
pergerakan dengan Collision Avoidance di mana
perhitungan ini menggunakan nilai variabel
obs_perception yang sudah ditentukan oleh
penulis yaitu bernilai 100 yang akan digunakan
pada setiap simulasi yang dilakukan.
Nama Variabel
Penjelasan
Perception Radius jarak piksel target pemindaian untuk boid disekitar
Separation Kelipatan dari bobot hasil Separation
Alignment Kelipatan dari bobot hasil Alignment
Cohesion Kelipatan dari bobot hasil Cohesion
Tabrakan Jumlah boid yang bertabrakan saat simulasi
Finish Time Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish
Tabel 3. 2
Tabel penjelasan variabel utama dalam
simulasi algoritma Boids
Tabel 3. 3
Tabel nilai variabel utama dalam simulasi
dengan algoritma Boids
Itera
si
Percepti
on
Separati
on
Aligntm
ent
Cohesi
on
1 10 0.1 0.1 0.1
2 20 0.1 0.1 0.1
3 30 0.1 0.1 0.1
4 50 0.1 0.1 0.1
5 50 0.5 0.1 0.1
6 50 1 0.1 0.1
7 50 1.5 0.1 0.1
8 50 2 0.1 0.1
9 50 2 0.3 0.1
10 50 2 0.6 0.1
11 50 2 1 0.1
12 50 2 1 0.3
13 50 2 1 0.6
14 50 2 1 0.9
15 50 2 1 1.2
6
Gambar 3. 3
Gambar Flowchart simulasi dengan algoritma
Boids
c. Dengan menggunakan algoritma Boids dan
Collision Avoidance
NPC boid yang berjumlah 30 buah akan disebar
dari sisi kiri dan NPC obstacle atau penghalang
yang berjumlah 50 akan disebar pada jalur menuju
area finish. Saat melakukan pergerakan, NPC akan
menghitung arah pergerakan yang akan dilakukan
dengan algoritma Boids dan Collision Avoidance
dengan menggunakan variabel yang telah di
tentukan. NPC pada awalnya akan diberikan
variabel Separation, Alignment, Cohesion dan
Perception yang berbeda pada tiap iterasi
percobaan dengan simulasi yang telah dibuat.
NPC juga melakukan perhitungan pergerakan
dengan Collision Avoidance di mana perhitungan
ini menggunakan nilai variabel obs_perception
yang sudah ditentukan oleh penulis yaitu bernilai
100 yang akan digunakan pada setiap simulasi
yang dilakukan. Berikut tabel berisikan variabel
yang akan menjadi fokus dari percobaan pada
simulasi ini:
Nama Variabel
Penjelasan
Perception Radius jarak piksel target pemindaian untuk boid disekitar
Obs Perception
Radius jarak piksel target pemindaian untuk obstacle disekitar
Separation Kelipatan dari bobot hasil Separation
Alignment Kelipatan dari bobot hasil Alignment
Cohesion Kelipatan dari bobot hasil Cohesion
Tabrakan Jumlah boid yang bertabrakan saat simulasi
Finish Time Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish
Tabel 3. 4
Tabel nilai variabel utama dalam simulasi
dengan algoritma Boids dan Collision
Avoidance
Dalam melakukan simulasi ini, simulasi
akan dilakukan sejumlah 15 kali dan pada tiap
simulasi akan diberikan nilai variabel tiap
pengujiannya. Di ingat bahwa variabel Obs
Perception akan selalu bernilai 100 pada setiap
iterasi simulasi yang dilakukan, hal ini dibuat
karena peneliti lebih berfokus kepada algoritma
Boids dan Collision Avoidance hanya membantu
kumpulan boids tidak menabrak obstacle yang
tersebar pada jalur perjalanan para kumpulan
boids tersebut. Adapun nilai variabel yang akan
digunakan pada simulasi adalah sebagai berikut:
Iterasi
Perception
Obs Perception
Separation
Aligntment
Cohesion
1 10 100 0.1 0.1 0.1
2 20 100 0.1 0.1 0.1
3 30 100 0.1 0.1 0.1
4 50 100 0.1 0.1 0.1
5 50 100 0.5 0.1 0.1
6 50 100 1 0.1 0.1
7 50 100 1.5 0.1 0.1
8 50 100 2 0.1 0.1
9 50 100 2 0.3 0.1
10 50 100 2 0.6 0.1
7
11 50 100 2 1 0.1
12 50 100 2 1 0.3
13 50 100 2 1 0.6
14 50 100 2 1 0.9
15 50 100 2 1 1.2
Tabel 3. 1
Tabel nilai variabel utama dalam simulasi
dengan algoritma Boids dan Collision
Avoidance
Gambar 3. 4
Gambar Flowchart simulasi dengan algoritma
Boids dan Collision Avoidance
d. Dengan jumlah boids berbeda
Simulasi ini dibuat untuk melihat performa
algoritma Boids dan Collision Avoidance dengan
jumlah boids yang berbeda tiap simulasinya.
Peneliti akan melihat berapa rata-rata dari FPS
(Frame rate per second) dari saat awal aplikasi
dimulai sampai semua boids mencapai area finish
atau bertabrakan. Frame rate adalah frekuensi di
mana gambar berurutan yang disebut frames
muncul pada layar.
Istilah FPS ini berlaku untuk kamera film,
video dan grafik komputer gerak di mana FPS
adalah jumlah Frame rate yang dihasilkan
komputer tiap detiknya. FPS yang dihasilkan akan
bervariasi sesuai dengan kompleksnya
perhitungan algoritma dan juga bervariasi dengan
kekuatan dari hardware atau perangkat keras yang
dipakai oleh komputer seperti Processor, RAM
dan GPU. NPC boid yang berjumlah sesuai yang
peneliti berikan akan disebar dari sisi kiri dan
NPC obstacle atau penghalang yang berjumlah 50
akan disebar pada jalur menuju area finish. Saat
melakukan pergerakan, NPC akan menghitung
arah pergerakan yang akan dilakukan dengan
algoritma Boids yang menggunakan variabel yang
telah di tentukan. NPC pada awalnya akan
diberikan variabel Separation, Alignment,
Cohesion dan Perception yang berbeda pada tiap
percobaan dengan simulasi yang telah dibuat.
NPC juga melakukan perhitungan pergerakan
dengan Collision Avoidance di mana perhitungan
ini menggunakan nilai variabel obs_perception
yang sudah ditentukan oleh penulis yaitu bernilai
100 yang akan digunakan pada setiap simulasi
yang dilakukan.
Nama Variabel
Penjelasan
Perception Radius jarak piksel target pemindaian untuk boid disekitar
Obs Perception
Radius jarak piksel target pemindaian untuk obstacle disekitar
Boids Jumlah Boids yang dimasukan ke dalam simulasi
Separation Kelipatan dari bobot hasil Separation
8
Alignment Kelipatan dari bobot hasil Alignment
Cohesion Kelipatan dari bobot hasil Cohesion
FPS Rata-rata dari Frame rate dari awal simulasi dijalankan sampai semua boids sampai pada area finish
Finish Time Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish
Tabel 3. 2
Tabel penjelasan variabel utama dalam
simulasi dengan algoritma Boids dan Collision
Avoidance dengan jumlah boids yang berbeda
tiap simulasinya
Iterasi
Perception
Obs Perception
Boids
Separation
Aligntment
Cohesion
1 10 100 10 2 1 1.2
2 20 100 20 2 1 1.2
3 30 100 30 2 1 1.2
4 50 100 40 2 1 1.2
5 50 100 50 2 1 1.2
6 50 100 60 2 1 1.2
7 50 100 70 2 1 1.2
8 50 100 80 2 1 1.2
9 50 100 90 2 1 1.2
10 50 100 100
2 1 1.2
11 50 100 110
2 1 1.2
12 50 100 120
2 1 1.2
13 50 100 130
2 1 1.2
14 50 100 140
2 1 1.2
15 50 100 150
2 1 1.2
Tabel 3. 3
Tabel nilai variabel utama dalam simulasi
dengan algoritma Boids dan Collision
Avoidance dengan jumlah boids yang berbeda
tiap simulasinya
B. Perancangan game
Penelitian ini dilakukan dengan cara membuat
sebuah permainan komputer yang berfokus untuk
diberikan algoritma Boids pada pergerakan
karakter dan dimainkan secara single player atau
pemain tunggal yang berarti hanya memiliki satu
pemain dalam permainannya. Game ini akan
dibuat menggunakan bahasa pemograman
JavaScript dan dijalankan pada aplikasi Google
Chrome 64bit dengan versi rilis 79.0.3945.88.
Pada permainan computer ini terdapat karakter
pemain utama yang akan dijalakan oleh pemain
game yang diberi nama King Cebong. Dalam
penelitian ini juga memiliki 2 NPC yang
dikendalikan oleh komputer yaitu bernama
Cebong dan Predator. Permainan ini mengisahkan
perjalanan sang karakter pemain utama dalam
memproduksi Cebong sampai batas tertentu
dengan memakan makanan yang tersebar sambil
menghindari musuh Predator agar tidak mati.
Pada saat pertama kali permainan dimulai, pemain
utama yang sebagai King Cebong akan ditemani
oleh enam buah pengikutnya yaitu NPC Cebong.
King Cebong akan dikendalikan oleh pemain
dengan menggunakan mouse dan pasukan Cebong
akan mengikuti ke mana King Cebong pergi. King
Cebong dan pasukan Cebong dapat bergerak
bersamaan sambil melakukan formasi seperti
kerumunan ikan dengan implementasi algoritma
Boids. King Cebong dan pasukan Cebong dapat
memakan makanan bernama Pelet yang tersebar
di area permainan. Setiap jumlah Pelet yang
dimakan mencapai lima buah, akan terbuatlah
sebuah NPC Cebong dan akan ditambahkan pada
pasukan Cebong yang mengikuti King Cebong.
Tujuan utama pemain adalah mengumpulkan
pasukan Cebong sampai berjumlah 30 ekor
pasukan. Jika jumlah kumpulan pasukan Cebong
tersebut sudah mencapai 30 ekor, pemain menjadi
pemenang dan permainan selesai.
Predator adalah musuh yang akan mengejar King
Cebong dan juga pasukan Cebong. Ketika
Predator menyentuh salah satu Cebong dari
pasukan, cebong tersebut akan mati dan
menghilang dari permainan. Jika predator
menyentuh King Cebong, permainan akan selesai
karena King Cebong gagal bertahan hidup.
Selama melakukan pergerakan, King Cebong,
Cebong dan juga Predator akan terhalangi oleh
9
objek bernama Stone yang akan menghalangi
pergerakan mereka sebagai objek atau NPC
obstacle. Untuk menghindari objek Stone ini,
King Cebong, Cebong dan juga Predator akan
menghidari Stone tersebut dengan
diimplementasikannya Collision Avoidance.
Permainan ini dapat berguna untuk memberikan
pelajaran bagaimana algoritma Boids dan
collision avoidance dapat digunakan dalam
permainan komputer. Manfaat lain dari permainan
ini adalah melatih ketangkasan dan kelincahan
pemainan dalam mengarahkan King Cebong
bersama pasukan Cebong agar dapat berkembang
biak sambil menghindari Predator.
Berikut adalah Flowchart dan rancangan tampilan
bagaimana sistem berjalan:
Gambar 3. 5
Gambar Flowchart bagaimana sistem game
berjalan
Gambar 3. 6
Gambar desain tampilan saat game berjalan
Sebelumnya sudah ditunjukan bahwa permainan
komputer ini memiliki 5 karakter yang berada
dalam game, berikut penjelasan lebih detil tiap
karakter tersebut:
a. King Cebong
King Cebong adalah karakter utama yang
dikendalikan oleh pemain, pemain dapat
mengendalikannya dengan mengarahkan kursor
komputer pada game dan King Cebong akan pergi
ke arahnya. King Cebong memiliki sekumpulan
pengikut yaitu NPC Cebong yang berguna untuk
mengecoh NPC Predator sambil melindungi King
Cebong. Jika King Cebong disentuh oleh NPC
Predator, King Cebong akan termakan dan
permainan akan selesai.
King Cebong dapat memakan NPC Pelet
yang tersebar di daerah permainan dengan
menyentuhnya, tiap 5 Pelet yang King Cebong
dan Cebong makan akan membuat King Cebong
mengeluarkan seekor NPC Cebong dan
menambahkannya ke dalam kelompok NPC
Cebong yang mengikutinya.
Berikut adalah Flowchart bagaimana sistem NPC
King Cebong berjalan:
10
Gambar 3.7
Gambar Flowchart desain sistem King Cebong
saat game berjalan
b. Cebong
Cebong adalah karakter NPC yang bergerak
mengikuti King Cebong yang dikendalikan oleh
pemain. Cebong dapat berkumpul menjadi
sekumpulan Cebong dan melakukan Flocking
bersama-sama. Cebong dapat memakan NPC
Pelet dengan cara menyentuhnya, di mana tiap 5
Pelet yang dimakan oleh NPC Cebong dan
karakter King Cebong akan memanggil NPC
Cebong baru dan ditambahkan ke dalam
kelompok Cebong yang sudah ada.
Sekelompok Cebong ini berguna untuk
melindungi King Cebong agar tidak dimakan oleh
NPC Predator dan mengecoh mereka. Cebong
dapat dimakan oleh Predator yang membuat
Cebong yang termakan akan menghilang dari
dalam game. Cebong dapat bergerak dengan
bantuan algoritma Boids yang ditanamkan
kepadanya, mereka dapat melakukan Separation,
Cohesion dan Alignment. Cebong juga dapat
melakukan Collision Avoidance untuk
menghindari NPC Stone atau Obstacle yang
tersebar pada daerah permainan.
Berikut adalah Flowchart bagaimana
sistem NPC Cebong berjalan:
Gambar 3. 8
Gambar Flowchart desain sistem NPC Cebong
saat game berjalan
c. Predator
Predator adalah karakter NPC yang akan bergerak
ke arah King Cebong dan juga NPC Cebong jika
mereka berada pada jarak tertentu. Predator dapat
melakukan pergerakan menghindari NPC Stone
atau obstacle dengan bantuan sistem Collision
Avoidance yang ditanamkan ke dalamnya.
Predator dapat memakan karakter utama
King Cebong dan juga NPC Cebong di mana jika
King Cebong termakan, game akan selesai dan
permain akan kalah.
Berikut adalah Flowchart bagaimana sistem NPC
Cebong berjalan:
11
Gambar 3. 9
Gambar Flowchart desain sistem NPC
Predator saat game berjalan
d. Stone / Obstacle
Stone adalah NPC yang berguna sebagai
penghalang gerak NPC lain saat mereka
melakukan pergerakan. Stone atau disebut
Obstacle adalah hambatan yang tidak
bergerak, di mana NPC lain yang bergerak ke
arahnya harus menghindarinya. Stone tersebar
didaerah permainan.
Fungsi NPC Stone ini adalah membuat
pergerakan dari NPC lain menjadi variatif,
pemain juga dapat menggunakan NPC ini
untuk mengecoh arah gerak dari NPC
Predator saat Predator mengejar King Cebong
ataupun NPC Cebong.
e. Pelet
Pelet adalah NPC yang tersebar pada daerah
permainan, digunakan untuk menjadi
makanan dari King Cebong dan NPC Cebong
dengan cara menyentuhnya untuk
memakannya.
C. Hasil pengujian
Pengujian ini dijalankan dengan aplikasi simulasi
pergerakan dengan algoritma Boids yang
memakai variabel yang telah ditentukan
sebelumnya
a. Tanpa menggunakan algoritma Boids
sd Pengujian ini dilakukan apakah pergerakan
NPC tanpa menggunakan algoritma Boids yang
diprogram sudah berjalan dengan benar atau tidak,
tiap iterasi simulasi semua boids memiliki arah
gerak yang bernilai acak untuk memberikan
variasi gerakan tiap iterasinya. Berikut data yang
didapatkan setelah melakukan simulasi:
Iterasi Tabrakan Finish Time
1 14 7.781 Milidetik
2 10 7.048 Milidetik
3 20 6.169 Milidetik
4 23 8.344 Milidetik
5 16 7.055 Milidetik
6 18 6.528 Milidetik
7 18 6.043 Milidetik
8 22 6.344 Milidetik
9 18 7.756 Milidetik
10 18 6.511 Milidetik
11 12 6.133 Milidetik
12 20 7.880 Milidetik
13 16 7.972 Milidetik
14 22 8.465 Milidetik
15 18 6.242 Milidetik
Tabel 3. 4
Tabel berisikan data yang didapat setelah
melakukan simulasi tanpa algoritma Boids.
Dapat dilihat dari data ini, minimal boids
yang bertabrakan ada 10 boids. Tabrakan ini
terjadi karena kumpulan boids tersebut bergerak
tanpa melakukan pergerakan dengan algoritma
Boids yang berfungsi untuk membuat tiap boids
tidak bertabrakan dengan boids lainnya yang
berposisi dekat dan bergerak secara bersamaan
dengan teratur.
12
Gambar 3. 10
Gambar tangkapan layar saat
menjalankan simulasi tanpa algoritma
boids iterasi ke 3
Dari data ini dapat dilihat bahwa tiap
iterasi menghasilkan Finish Time yang berbeda
tiap iterasinya. Dari simulasi ini juga dapat dilihat
bahwa NPC boids menempel dengan NPC
obstacle dan arah geraknya pun terhalang.
b. Hanya Menggunakan algoritma Boids Pengujian ini dilakukan apakah algoritma Boids
yang di program sudah berjalan dengan benar atau
tidak, tiap iterasi simulasi variabel yang
digunakan algoritma Boids memiliki nilai yang
berbeda di mana nilai tersebut sudah ditentukan
sebelumnya. Pengujian ini juga berguna untuk
memberikan pengetahuan apa yang terjadi jika
nilai variabel pada algoritma Boids memiliki nilai
berbeda. Berikut data yang didapatkan setelah
melakukan simulasi:
Iterasi
Perception
Separation
Aligntment
Cohesion
Tabrakan
Finish Time (milidetik)
1 10 0.1 0.1 0.1 20 5.613
2 20 0.1 0.1 0.1 18 5.571
3 30 0.1 0.1 0.1 12 5.631
4 50 0.1 0.1 0.1 12 6.075
5 50 0.5 0.1 0.1 8 6.447
6 50 1 0.1 0.1 8 5.968
7 50 1.5 0.1 0.1 4 6.435
8 50 2 0.1 0.1 2 6.621
9 50 2 0.3 0.1 2 6.473
10 50 2 0.6 0.1 4 6.660
11 50 2 1 0.1 2 6.524
12 50 2 1 0.3 2 6.703
13 50 2 1 0.6 6 6.500
14 50 2 1 0.9 6 6.694
15 50 2 1 1.2 8 6.344
Tabel 3. 5
Tabel berisikan data yang didapat setelah
melakukan simulasi dengan algoritma Boids
Dari data yang dihasilkan dari simulasi ini,
dapat dilihat bahwa iterasi ke 8, 9, 11, 12
memiliki angka paling rendah pada boids yang
bertabrakan, lalu pada iterasi ke 12 dapat dilihat
bahwa waktu yang ditempuh lebih lama dari
iterasi lainnya. Dari data ini sebenarnya sangat
susah untuk menentukan manakah iterasi yang
terbaik, jika ingin sedikit boids bertabrakan dan
waktu yang ditemput lebih cepat dapat mengikuti
iterasi ke 9 sedangkan jika ingin waktu yang
ditempuh lebih cepat dapat mengikuti iterasi ke 3,
walaupun iterasi ke 2 lebih cepat beberapa
milidetik tetapi jumlah yang bertabrakan lebih
sedikit pada iterasi ke 3 daripada iterasi ke 2.
Dari data ini juga penulis dapat
menyimpulkan bahwa jika nilai Cohesion
dinaikan, jumlah boids yang bertabrakan akan
bertambah. Hal ini terjadi karena Cohesion
berfungsi untuk membuat sebuah boids pergi ke
posisi rata-rata dari kelompok boids lainnya, ini
membuat boids tersebut seperti ditarik ke posisi
kelompok itu dan membuat boids tersebut
bertabrakan karena tidak melakukan Separation
yang cukup. Hal ini bisa diperebaiki dengan
menambah nilai dari Separation tapi dapat
membuat pergerakan dari kelompok boids
tersebut berputar dengan cepat di mana hal ini
terlihat jelek dan tidak realistis.
Untuk Alignment, jika variabel ini
ditambahkan maka jumlah boids yang bertabrakan
ikut berkurang. Hal ini terjadi karena Alignment
digunakan untuk mengubah arah pergerakan
sebuah boids mengikuti arah dari boids yang ada
disekitarnya.
c. Menggunakan algoritma Boids dengan
Collision Avoidance Pengujian ini dilakukan apakah algoritma Boids
dan Collision Avoidance yang diprogram sudah
berjalan dengan benar atau tidak, tiap iterasi
simulasi variabel yang digunakan algoritma Boids
memiliki nilai yang berbeda di mana nilai tersebut
sudah ditentukan sebelumnya. Pengujian ini juga
menjadi cara untuk mengetahui apakah dengan
ditambahkan Collision Avoidance dapat
mengurangi nilai tabrakan ataupun nilai Finish
13
Time. Pengujian ini juga berguna untuk
memberikan pengetahuan apa yang terjadi jika
nilai variabel pada algoritma Boids memiliki nilai
berbeda dan ditambahnya nilai pergerakan dari
Collision Avoidance. Berikut data yang
didapatkan setelah melakukan simulasi:
It
er
as
i
Pe
rce
pti
on
Se
par
ati
on
Ali
gnt
me
nt
Co
he
sio
n
Obs
Perc
eptio
n
Ta
br
ak
an
Finish
Time
(milide
tik)
1 0 0 0 0 100 22 5.390
2 10 0.1 0.1 0.1 100 26 5.439
3 30 0.1 0.1 0.1 100 22 5.605
4 50 0.1 0.1 0.1 100 24 5.561
5 50 0.5 0.1 0.1 100 20 5.792
6 50 1 0.1 0.1 100 20 5.665
7 50 1.5 0.1 0.1 100 14 7.181
8 50 2 0.1 0.1 100 10 7.859
9 50 2 0.3 0.1 100 10 6.970
1
0
50 2 0.6 0.1 100
6 8.463
1
1
50 2 1 0.1 100
4 12.717
1
2
50 2 1 0.3 100
2 7.052
1
3
50 2 1 0.6 100
2 6.246
1
4
50 2 1 0.9 100
10 9.369
1
5
50 2 1 1.2 100
8 6.798
Tabel 3. 10
Tabel berisikan data yang didapat setelah
melakukan simulasi dengan algoritma Boids
dan Collision Avoidance
Dari data yang dihasilkan dari simulasi ini,
dapat dilihat bahwa iterasi ke 1 memiliki waktu
Finish Time yang lebih cepat dari iterasi lainnya,
lalu pada iterasi ke 12 dan 13 dapat dilihat bahwa
yang bertabrakan hanya 2 boids. Dari yang
peneliti lihat, kumpulan boids berhasil melewati
obstacle yang tersebar di daerah simulasi.
Beberapa boids juga menjadi tertarik arah
geraknya oleh boids disekitarnya dikarenakan
oleh Cohesion di mana ini membuat boids ditarik
ke posisi rata-rata dari kelompok boids disekitar.
d. Dengan jumlah Boids yang berbeda Pengujian ini dilakukan apakah algoritma Boids
dan Collision Avoidance yang diprogram sudah
berjalan dengan benar atau tidak, tiap iterasi
simulasi variabel yang digunakan algoritma Boids
memiliki nilai yang berbeda di mana nilai tersebut
sudah ditentukan sebelumnya. Nilai tersebut
adalah nilai yang mempengaruhi jumlah NPC
boids yang ada tiap iterasi pengujiannya.
Pengujian ini juga menjadi cara untuk mengetahui
apakah dengan ditambahkannya jumlah NPC
boids tiap iterasinya akan berdampak pada
performa yang dihasilkan. Pengujian ini dilakukan
dengan spesifikasi perangkat keras dan lunak
komputer utama sebagai berikut:
Perangkat Nama Perangkat / Model
Perangkat
Processor AMD Ryzen 3 2200G quad core
3.5ghz
Processor
Cooler
AMD Stock cooler AMD wraith
stealth
Motherboar
d
ASRock B450 Pro4
RAM Antec 2x4GB 2400mhz
GPU Inno3D Nvidia Gtx 1660ti
Sistem
Operasi
Windows 10 Home (64bit)
Chrome
Versi rilis v79.0.3945.88
Harddisk 1 Seagate ST3500418AS 500gb
7200RPM
Harddisk 2 Western Digital WDC
WD10EZEX-00RKKA0
Power
Supply
600watt Korean brand power
supply
PC Case Cube Gaming ATX PC Case
Cooling fan 2x Mejec 12cm green LED
1200RPM
1x Mejec 12cm red LED
1200RPM
1x Cube Gaming 12cm red LED
1200RPM
1x HP 10cm cooler 2000RPM
1x 10cm cooler 1200RPM
Tabel 3. 11
Tabel berisikan data spesifikasi perangkat
keras dan lunak komputer yang digunakan
untuk melakukan simulasi
14
Komputer yang digunakan adalah
komputer rakitan yang di rakit oleh sang penulis
sendiri. Saat menjalankan aplikasi simulasi, suhu
dari Processor dan GPU bersuhu stabil pada jarak
suhu 50-60 derajat celcius. Berikut data yang
dihasilkan dari simulasi yang telah dijalankan:
It
e
r
a
si
Pe
rc
ep
tio
n
Se
pa
ra
tio
n
Ali
gn
tm
en
t
C
oh
es
io
n
B
o
i
d
s
Rat
a-
rat
a
FP
S
Obs
_pe
rce
ptio
n
Finis
h
Time
(milid
etik)
1 50 2 1 1.
2
1
0
58.
78
100 9.547
2 50 2 1 1.
2
2
0
57.
99
100 7.258
3 50 2 1 1.
2
3
0
57.
05
100 5.818
4 50 2 1 1.
2
4
0
55.
81
100 7.433
5 50 2 1 1.
2
5
0
51.
89
100 10.17
9
6 50 2 1 1.
2
6
0
51.
19
100 14.02
5
7 50 2 1 1.
2
7
0
42.
09
100 10.50
7
8 50 2 1 1.
2
8
0
36.
71
100 11.67
8
9 50 2 1 1.
2
9
0
37.
95
100 16.45
9
1
0
50 2 1 1.
2
1
0
0
31.
50
100 18.92
2
1
1
50 2 1 1.
2
1
1
0
31.
26
100 21.28
5
1
2
50 2 1 1.
2
1
2
0
29.
18
100 22.35
1
1
3
50 2 1 1.
2
1
3
0
25.
84
100 22.59
7
1
4
50 2 1 1.
2
1
4
0
25.
64
100 30.95
0
1
5
50 2 1 1.
2
1
5
0
19.
49
100 24.80
4
Tabel 3. 12
Tabel berisikan data dari hasil simulasi dengan
jumlah boids yang berbeda tiap iterasinya
Dapat dilihat dari hasil yang tertera pada tabel
4.12 bahwa makin banyaknya agen NPC boids,
FPS yang dihasilkan makin menurun. Agen NPC
boids yang lebih banyak inilah sangat berdampak
juga pada waktu yang ditempuh semua NPC boids
tersebut untuk mencapai daerah kotak finish, hal
ini dikarenakan banyaknya boids yang harus
melakukan separation untuk menghindari boids
didepannya di mana hal ini menghasilkan gerakan
boids yang lambat. Waktu yang ditempuh juga
bervariasi dikarenakan banyaknya boids yang
bertetangga atau berdekatan, hal ini membuat
jalur perjalanan mereka menjadi bervariasi dan
juga harus melakukan Collision Avoidance yang
membuat waktu yang ditempuh tersebut
berkurang ataupun bertambah.
D. Implementasi kedalam Game
Berikut tangkapan layar saat game dimainkan oleh
penulis setelah di implementasikan algoritma
Boids dan Collision Avoidance ke dalamnya:
Gambar 3. 11
Gambar tangkapan layar saat game
dimainkan, dapat dilihat bahwa NPC
Predator sedang mentarget NPC
Cebong
15
Gambar 3. 12
Gambar tangkapan layar saat game
dimainkan, terdapat 21 NPC Cebong
dan sedang melakukan Flocking
Gambar 3. 13
Gambar tangkapan layar saat game
selesai dan pemain kalah karena NPC
Predator menyentuh King Cebong
Gambar 3. 14
Gambar tangkapan layar saat game
selesai dan pemain menang
E. Kesimpulan
Dari penelitian yang telah dilakukan dengan
melakukan simulasi pergerakan NPC dengan
algoritma Boids, dapat disimpulkan bahwa
penggunaan algoritma Boids dibantu dengan
Collision Avoidance dapat mengurangi tabrakan
satu sama lain saat sekumpulan NPC bergerak
bersamaan dan berdekatan. Penelitian ini juga
membuktikan bahwa algoritma Boids ini dapat
diimplementasikan ke dalam permainan komputer.
Dari hasil eksperimen yang dilakuan dapat
ditunjukan bahwa dengan diimplementasikan
algoritma Boids, peneliti dapat mengetahui
pebedaan yang dihasilkan jika mengubah nilai
variabel tiga aturan utama yaitu Separation,
Alignment dan Cohesion pada tiap iterasi
eksperimennya. Dari eksperimen yang dilakukan,
dapat dibuktikan bahwa dengan digunakannya
algoritma Boids dapat menurunkan jumlah boids
yang bertabrakan yaitu dari 20 tabrakan menjadi
lebih rendah yaitu 2 tabrakan pada beberapa
eksperimen yang dilakukan.
Eksperimen saat menggunakan algoritma
Boids dan Collision Avoidance menghasilkan
waktu yang ditempuh menjadi lebih sedikit yaitu
paling rendah adalah 5.390 milidetik, tetapi ketika
variabel Separation, Alignment dan juga Cohesion
dinaikan, waktu yang ditempuh menjadi
meningkat menjadi 7.181 milidetik pada iterasi ke
7 dan yang paling tinggi adalah 12.717 pada
iterasi ke 11. Hal ini terjadi karena NPC boids
harus saling menghindari satu sama lain sambil
menghindari obstacle yang menghalang.
Eksperimen juga membutikan bahwa semakin
banyak jumlah NPC Boids dapat mengurangi
performa yang dihasilkan oleh komputer dengan
melihat nilai rata-rata dari Frame Rate per detik
yang dihasilkan. Dengan adanya 10 boids rata-rata
Frame Rate yang dihasilkan adalah 58.78 FPS,
ketika jumlah boids dinaikan menjadi 150 rata-
rata Frame Rate akan turun menjadi 19.49 FPS.
F. Saran
Dalam penelitian ini masuk adanya kekurangan
dalam pembuatannya. Oleh karena itu Saran yang
dapat diberikan kepada penelitian selanjutnya
adalah:
1. Membuktikan apakah algoritma Boids adalah
yang paling efisien dengan
mengkomparasikanya pada algoritma sejenis.
16
2. Mengimplementasikan algoritma Boids bukan
hanya pada permainan komputer saja tetapi
pada objek lainnya.
3. Implementasi selanjutnya bisa dilakukan pada
penelitian untuk evakuasi kebakaran ataupun
semacamnya.
G. Ucapan Terima Kasih Puji syukur saya ucapkan kepada Tuhan Yesus
Kristus, karena atas berkat dan pertolongannya,
saya dapat menyelesaikan skripsi ini. Penulisan
skripsi ini dilakukan dalam rangka untuk
memenuhi salah satu syarat untuk mencapai gelar
sarjana jurusan Teknik Informatika pada Institut
Bisnis dan Informatika Kwik Kian Gie. Dalam
mengerjakan karya skripsi ini banyak sekali
rintangan yang harus saya hadapi, tanpa bantuan
dari berbagai pihak, sulit bagi saya untuk
menyelesaikan skripsi ini. Oleh karena itu, saya
mengucapkan terima kasih yang sebesar-besarnya
kepada:
1. Roni Paolo Marpaung ayah tercinta, Martha
Iriani Ritonga Ibunda tercinta dan Maureen
Rosabel Marpaung adikku tercinta sebagai
keluarga yang telah memberikan doa dan
dukungan penuh selama saya mengerjakan
skripsi ini.
2. Bapak Richard Vinc N. Santoso, S.TI., M.T.I
selaku dosen pembimbing yang telah
menyediakan waktu dan tenaga untuk
membimbing saya dalam menyelesaikan
skripsi ini.
3. Bapak Yunus Fadhilah Soleman, S.Kom.,
M.Kom selaku dosen pembimbing pada saat
awal saya melakukan bimbingan skripsi.
4. Bapak Akhmad Budi, S.Kom, M.M., M.Kom.
selaku Ketua Program Studi Teknik
Informatika Institut Bisnis dan Informatika
Kwik Kian Gie.
5. Dwi Marpaung, Namboru tersayang yang
selalu memberikan doa, dukungan dan
nasehat selama saya mengerjakan skripsi ini.
6. Reymartin Reza Pratama selaku teman dekat
terbaik yang telah membantu dengan memberi
banyak dukungan dan bantuan selama saya
mengerjakan skripsi.
7. Geraldin Everdin Pua selaku teman dekat dan
seperjuangan dalam menyelesaikan skripsi
yang telah memberikan dukungan dan
bantuan.
8. Adbert Lijanto selaku teman dekat yang
memberikan saya bantuan saat mengerjakan
skripsi ini.
9. Teman-teman dekat yang tidak dapat disebut
satu persatu yang selalu memberikan
semangat.
10. Teman-teman jurusan Teknik Informatika
angkatan 2016 yang telah berjuang bersama-
sama saat melakukan perkuliahan.
11. Teman-teman jurusan lain maupun teman luar
kampus yang tidak dapat disebut satu persatu
yang telah memberikan semangat dan bantuan.
Semoga Tuhan membalas segala kebaikan yang
telah mereka berikan kepada saya, baik berupa
moril maupun materiil.
DAFTAR PUSTAKA
Balcerak, S., Chisholm, Y., & Shelby, C. (2017). A
Computational Analysis of the Quadratic
Weighted Assignment of Bird Flocks in North
Carolina. University of North Carolina
Wilmington Department of Computer Science.
Benes, B., & Hartman, C. (2006). Autonomous Boids .
Department of Computer Graphics, Purdue
University, Knoy Hall of Technology.
Bourg, D. M., & Seemann, G. (2004). AI for Game
Developers 1 edition. O'Reilly Media; .
Braga, R. G., da Silva, R. C., & Ramos, A. C. (2018).
Collision Avoidance Based on Reynolds
Rules: A Case Study Using Quadrotors.
Institute of Mathematics and Computer
Science, Federal University of Itajuba,
Itajuba, MG, Brazil .
17
Buckland, M. (2005). Programming Game AI by
Example. 2320 Los Rios Boulevard, Plano,
Texas 75074: Wordware Publishing, Inc.
client-side JS platform JavaScript library for
Processing. (2020, Januari 13). Retrieved
from P5.js Team: http://p5js.org/
Dewi, M., Hariadi, M., & Purnomo, M. H. (2011).
Simulating The Movement Of The Crowd In
An Environment Using Flocking. Department
of Electronics Engineering, Institut Teknologi
Sepuluh Nopember Surabaya, Indonesia.
Harefa, D. R., & Ismiati, M. B. (2019). Penerapan
Algoritma Boids Pada NPC (NON PLAYER
CHARACTER) Dalam Game Menembak
Burung. Program Studi Teknik Informatika
dan Sistem Informasi, Fakultas Sains dan
Teknologi, Universitas Katolik Musi Charitas
Palembang.
Hauert, S., Zufferey, J. C., & Floreano, D. (2007).
Evolved swarming without positioning
information: an application in aerial
communication relay. Laboratory of
Intelligent Systems, Ecole Polytechnique
Fédérale de Lausanne (EPFL-STI-IMT-LIS),
Station 11, 1015 Lausanne, Switzerland.
Hong, j. H., & Cho, S. B. (2005). Evolving reactive
NPCs for the real-time simulation game. 86-
93.
Horia, M. Z., Leon, F., Pal, C., & Pagu, G. (2009).
Agent-Based Simulation of Crowd
Evacuation Behavior. Faculty of Automatic
Control and Computer Engineering
“Gheorghe Asachi” Technical University of
Iaşi.
Husselmann, A. V., & Hawick, K. A. (2011).
Simulating Species Interactions and Complex
Emergence in Multiple Flocks of Boids with
GPUs. Computer Science, Institute for
Information and Mathematical Sciences,
Massey University, North Shore, Auckland,
New Zealand.
Kim, C.-H., Jeong, S.-M., Hur, G.-T., & Kim, B.-G.
(2006). Verification of FSM using Attributes
Definition of NPCs Models. IJCSNS
International Journal of Computer Science
and Network Security, VOL.6 No.7A.
Millington, I., & Funge, J. (2009). Artificial
Intelligence for Games 2nd Edition. 30
Corporate Drive, Suite 400, Burlington, MA
01803, USA: Morgan Kaufmann Publishers.
18
Mototake, Y., & Ikegami, T. (2015). A Simulation
Study of Large Scale Swarms. School of Arts
and Sciences, The University of Tokyo, Tokyo,
Japan.
OBS Free and Open Source Video and live Streaming
Recording application. (2020, Januari 13).
Retrieved from OBS TEAM:
https://obsproject.com/
Parent, R. (2001). Computer Animation: Algorithms
and Techniques (The Morgan Kaufmann
Series in Computer Graphics). 340 Pine Street,
Sixth Floor, San Francisco, CA 94104-3205,
USA: Morgan Kaufmann Publishers.
Ramos, R. P., Oliveira, S. M., Vieira, S. M., &
Christensen, A. L. (2019). Evolving flocking
in embodied agents based on local and global
application of Reynolds’ rules. Instituto
Superior Te´cnico (IST), Lisbon, Instituto de
Telecomunicac¸ões, Lisbon, Portugal,
Embodied Systems for Robotics and Learning
at the Mærsk Mc-Kinney Møller Institute,
University of Southern Denmark (SDU),
Odense, Denmark.
Reynold, C. W. (1987). Flocks Herds, and Schools: A
Distributed Behavioral Model. Symbolics
Graphics Division,1401 Westwood Boulevard,
Los Angeles, California 90024 - Computer
Graphics, Computer Graphics, Volume 21 no.
4 Page 25-34.
Reynolds, C. W. (1999). Steering Behaviors For
Autonomous Characters. Sony Computer
Entertainment America, GDC 1999 Page 763-
782.
Saber, R. O., & Murray, R. M. (2003). Flocking with
Obstacle Avoidance: Cooperation with
Limited Information in Mobile Networks.
Control and Dynamical Systems California
Institute of Technology.
Sommerville, I. (2010). Software Engineering (9th
Edition). Pearson; 9 edition.
Sua, H., Wanga, X., & Chenb, G. (2008). A
connectivity-preserving flocking algorithm for
multi-agent systems based only on position
measurements. Department of Automation,
Shanghai Jiao Tong University, Shanghai,
China; Department of Electronic Engineering,
City University of HongKong, Hong Kong,
China.
19
Suryadi, A. (2017). Perancangan Aplikasi Game
Edukasi Menggunakan Model Waterfall.
Sekolah Tinggi Keguruan dan Ilmu
Pendidikan Garut Jl. Pahlawan Sukagalih
no.32 Tarogong – Garut.