• Tidak ada hasil yang ditemukan

IMPLEMENTASI DAN PENGUJIAN

4.2 Implementasi Dynamic scripting pada Game

Terdapat beberapa aksi yang akan diimplementasikan pada mobil saat berjalan dalam game antara lain seperti gambar dibawah

Gambar 4.4 aksi yang dilakukan karakter game (sumber: dokumentasi pribadi)

Mobil memiliki beberapa aksi seperti bergerak maju, berputar, rightsteer, leftsteer, righttheta, lefttheta, dan speed. Dari aksi-aksi ini dapat dilihat

45 bagaimana behaviour dari karakter game mobil dalam menyusuri lintasan Berikut ini merupakan penjelasan dari setiap aksi yang dapat dipilih oleh dynamic scripting :

Tabel 4.2 Penjelasan fungsi aksi sesuai index

Index rule Deskripsi

Rule 0 Move Forward (Maju Kedepan)

Rule 1 Leftsteer (berbelok kekiri)

Rule 2 Rightsteer (berbelok kekanan)

Rule 3 Rotate (Berputar)

Pada tabel diatas terdapat keterangan berupa urutan aksi yang akan dilakukan oleh karakter game, dimana urutan diatas akan dikombinasikan menjadi lebih baik lagi setelah melalui proses self-learning yang akan dilakukan oleh fungsi gentika alogritma dan neural network. Pada gambar 4.5 dibawah ini terlihat bagaimana penerapan GANN pada script yang akan dioperasikan pada masing-masing kromosom sehingga tiap kromosom dapat memiliki fungsi learning nya masing-masing.

Gambar 4.5 Script GANN

Fungsi genetika algoritma pada game akan langsung diterapkan saat game berjalan, dimana tiap mobil adalah individu dari kromosom yang dihasilkan oleh fungsi genetika algoritma yang akan diuji dan mencoba mendapatkan nilai fitness terbaik dari setiap ujicoba pada tiap kromosom. Dimana pada genetika algoritma ini ditetapkan :

1 generasi = 1 populasi 1 populasi = 15 kromosom 1 kromosom = 1 currentfitness

47 Melalui neural network game akan memiliki kemampuan untuk beradaptasi dengan track dan menyesuaikan tingkah laku aksinya dengan sendirinya. Dimana seperti yang telah dijelaskan sebelumnya neural network berperan seperti jaringan saraf virtual. Dengan kemampuan ini, mobil dapat berfikir untuk menyesuaikan aksinya terhadap kondisi lintasan, apakah dia akan berbelok kekiri atau kekanan.

Pada fungsi neural network sendiri terdapat beberapa hal yang diatur didalamnya, neural network membutuhkan input agar dapat diolah menjadi output yang baik. Output pada mobil ini berupa leftsteer dan rightsteer, sedangkan input akan didapat dari sensor yang diimplementasikan melalui raycast, dimana raycast akan berfungsi seperti sensor pada mobil untuk mendetaksi jarak antara mobil dan dinding. Berikut adalah struktur neural network pada game :

Terdapat 5 input : Left, Right, Lefttheta, Righttheta, Front Selain itu terdapat 1 hidden layer dan 8 unit per-hidden layer Juga 2 output : Leftsteer dan Rightsteer

Neural network yang berperan sebagai jaringan syaraf tiruan inilah yang akan mengatur pola masukan kepada mobil untuk bergerak kekiri dan Kekanan. Sedangkan genetika algoritma akan berperan untuk mengoptimalisasi bobot weight didalam masing-masing neuron perindividu, sehingga hasil fitness yang didapat perindividu akan berbeda-beda. Genetika algoritma juga akan berfungsi untuk menghasilkan kromosom-kromosom yang baru dan bertanggung jawab terhadap proses evolusi dari setiap generasi. Proses self-learning sendiri akan secara otomatis berjalan ketika game dimainkan, seperti gambar 4.6 dibawah ini.

Gambar 4.6 Proses self-learning pada game

Pada project ini fungsi neural network lebih jelasnya adalah sebagai jaringan saraf tiruan, dimana dia akan menjalankan proses inputan yang akan diolah oleh neuran melalui 1 hidden layer dan 8 per hidden layer lalu akan menghasilkan output yaitu leftsteer dan rightsteer. Sedangkan genetika algoritma akan menjalankan proses evolusi pada neural network tiap-tiap kromosom yang bertugas untuk mengoptimalisasi nilai weight yang akan menjadi olahan neural network. Pada akhirnya keseluruhan proses ini akan menghasilkan nilai fitness untuk masing-masing kromosom dan mencoba untuk mendapatkan best kromosom melalui bestfitness.

49 4.3 Pembahasan

Pada pengujian dynamic scripting dengan meggunakan mode automatic player dilakukan percobaan sebanyak 50 kali dimana proses pengujian akan dilakukan pada 750 kromosom dan 50 generasi yang berbeda pengujian ini bertujuan untuk mendapatkan nilai bestfitness terbaik terburuk, dan rata-rata dari keseluruhan nilai bestfitness yang diujikan pada game, pada tiap kromosom akan memiliki proses neural network dan genetika algoritma nya sendiri, sehingga masing-masing individu akan menjadi unik, dan tiap generasi akan menghasilkan parent yaitu 2 kromosom alpha dengan nilai fitness yang paling baik diantara kromosom lainnya, lalu parent tadi akan menjalain proses crossover dimana DNA dari masing-masing parent akan diturunkan kepada offspring selanjutnya untuk dilakukan tes kembali, dan proses ini akan terus berulang sampai generasi yang ke 50. Setiap 1 kali percobaan dilakukan tes sebanyak 15 kali dengan jumlah maksimum pertemuan mencapai 750 kali. berikut ini adalah tabel pengujian dari dynamic scripting dengan mode automatic player.

Pada tabel 4.8 akan terlihat data hasil pengujian dynamic scripting, dimana pengujian dilakukan pada 50 generasi yang berbeda dan ditiap generasi terdapat 15 kromosom yang dilambangkan dengan C dimana kromosom ini akan mendapatkan nilai fitness nya sendiri-sendiri lalu akan diambil 1 nilai fitness tertinggi dari tiap generasi untuk dijadikan bestfitness.

Tabel 4.8 Hasil pengujian game

GENERASI Fitness perKromosom BEST

FITNESS C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 1 4 1 3 3 1 1 1 2 1 0,2 0,4 0,1 0,08 1 1 4 2 1,05 1,4 1,1 1,1 1,2 5,9 2,3 3,4 1,1 1,2 3,6 0,5 0,1 1,2 1 5,9 3 21,6 1,2 1,3 3,6 5,1 2,2 7 1,2 1,3 3,6 0,8 0,9 1,2 2,4 2,1 21,6 4 2,6 4,8 3,8 1,1 5,8 3,8 21,5 1,2 6,1 2,3 4,8 1 1,2 0,3 0,4 21,5 5 0,2 2,1 1,2 3,5 4,8 5,8 7,2 12,2 4,7 1,3 3,6 1,1 1,2 1,4 1,2 12,2 6 0,2 1,2 6,1 3,5 8,2 4,8 13,2 0,4 1,7 4,5 0,1 1,1 0,7 0,2 0,7 13,2 7 1,2 21,8 17,3 20,3 4 2,1 13,4 6,2 39,3 8,9 0,1 1,2 2,3 3,5 1,2 39,3 8 18,4 5,2 2,1 4,8 15 16,7 46,9 15,2 0,3 21,3 2,1 1,3 3,7 1,3 2,3 46,9 9 0,7 6,5 1 3,2 6,2 3,1 3,5 0,8 6,5 21,7 0,4 0,9 3,6 1,3 3,3 21,7 10 0,2 21,5 7,1 1,2 0,9 3,5 21,8 8,2 1,3 1,1 1 1 2,2 0,5 0,9 21,8 11 1,7 46,7 20,4 21,6 20.09 1 7,4 5,1 7,4 20,9 1,1 0,9 2,4 1,2 1,5 46,7 12 17,8 5,7 14,4 58,6 2,2 4,6 21,3 13,2 4,4 9,8 1,2 0,8 0,7 1,1 1,3 58,6 13 0,7 20,4 20,9 0,3 26,4 1,3 28,3 17,5 29,6 7,4 2,7 0,1 1,5 1,4 1,2 29,6 14 4,8 4,8 4,2 7,9 4,8 45,7 1,3 21,7 14,5 1,1 1,2 0,4 0,5 1,1 0,9 45,7 15 8,6 6 72,4 21,4 46,3 47,6 20,2 21,3 8,3 1,3 2,4 7,5 1,1 21,2 0,9 72,4 16 46,4 49,3 21,4 46,5 2,1 7,3 28,3 48,6 40,4 15,7 1,1 0,7 0,5 1,3 1,1 49,3 17 47,1 7,4 47,1 1,9 64,7 5,9 7,2 27,1 48,7 14,5 1,3 0,5 0,9 1,3 1,9 64,7 18 7,1 28,3 29,3 7,3 1,7 20,1 47,8 20,3 28,1 13,5 2,1 2,3 4,1 2,1 1 47,8 19 33,9 3,4 27,2 20,3 28,4 29,7 19,5 20,1 40,3 0,9 1,4 3,2 3,4 5,1 2,1 40,3 20 1,3 3,9 43,1 46,2 149,2 15,4 20,4 3,4 3,9 2,1 4,3 5,3 3,3 2,3 1,5 149,2 21 1,5 3,9 4,7 4,6 5,7 20,9 20,5 24,3 41,3 5,9 4,1 2,2 4,7 7,1 1,7 41,3

51 22 34,1 7,3 3,1 4,2 42,7 3,9 21,4 21,3 21,9 4,3 3,7 7,9 9,2 1,1 1,7 42,7 23 4,5 5,7 41,2 7,1 7,3 4,3 20,3 14,7 20,7 7,9 3,8 2,1 1,7 0,5 0,9 41,2 24 14,7 14,9 18,1 40,3 1,2 4,1 40,8 20,9 7,4 14,7 3,7 2,1 7,3 0,9 0,7 40,8 25 4,3 2,1 2,7 20,8 4,3 28,4 4,9 7,7 40,2 21,4 7,8 5,3 4,2 1,3 0,9 40,2 26 2,1 20,3 3,2 4,1 2,3 29,5 1,9 8,7 3,7 8,3 2,1 1,3 2,7 1,7 1,1 29,5 27 14,7 1,3 21,7 9,5 40,3 7,4 18,2 7,1 23,2 8,1 7,1 5,2 4,1 2,3 3,7 40,3 28 3,1 38,3 24,1 21,7 10,1 3,1 3,4 28,3 5,8 8,3 2,1 2,3 3,2 2,4 1,9 38,3 29 7,3 5,1 4,3 5,2 8,2 7,8 18,2 17,9 19,2 3,7 7,9 5,1 1,5 1,3 0,9 19,2 30 15,3 10,3 7,1 4,3 21,4 8,3 37,1 5,7 4,7 5,1 3,2 2,1 2 2,5 1,2 37,1 31 0,5 14,7 1,7 16,8 15,2 47,8 7,3 0,3 14,3 2,7 0,7 0,2 1,2 1,3 1,4 47,8 32 8,2 2,1 30,2 1,1 7,18 7,3 29,2 46,3 1,2 46,7 0,4 0,7 0,3 0,1 1,2 46,7 33 8,3 51,9 29,7 0,9 15,2 27,2 8,1 9,2 17,3 14,3 1 1,2 1,7 1,8 2,1 51,9 34 14,2 12,7 69,2 7,3 21,4 7,4 46,2 9,1 27,3 29,3 0,2 0,4 0,7 0,3 1,2 69,2 35 47,2 16,2 14,5 42,3 1,3 68,08 27,3 1,2 14,2 10,2 19,3 2,7 3,4 0,2 0,7 68,08 36 7,3 7,2 2,3 14,8 51 12,3 13,4 44,8 7,2 45,2 1,2 1,3 1,4 0,2 1,7 51 37 1,3 1,7 8,4 30,2 8,2 9,7 27,3 15,2 69,3 7,8 0,3 0,7 1,2 0,2 0,7 69,3 38 1,4 8,3 22,3 21,2 30,3 7,2 15,3 15,2 3,4 51,2 1,2 1,7 0,8 1,3 1,5 51,2 39 45,2 9,3 22,2 8,7 3,3 1,3 10,2 32,2 25,2 7,2 2,1 1,4 1,5 1,7 1,3 45,2 40 1,8 26,6 6,7 4,6 4,6 6,7 22,3 7,8 8,4 34,3 1,3 1,7 1,4 1,8 0,3 34,3 41 49,7 21,6 1,2 21,2 2,3 2,1 10,2 22,3 8,3 17,3 1,2 1,4 1,7 1,5 0,7 49,7 42 22,3 39,3 46,7 42,3 15,7 12,3 32,1 1,2 1,4 43,7 0,7 1,2 1,3 0,8 0,5 46,7 43 54,7 7,3 52,3 21,2 45,2 1,7 7,8 22,1 21,2 39,2 1,2 1,3 1,4 0,9 0,7 54,7 44 27,3 29,3 16,2 56,8 14,7 56,7 14,9 6,7 6,9 32,3 1,2 1,2 1,7 1,3 1,4 56,8 45 21,3 71,7 3,7 10,7 14,7 20,7 45,2 21,2 46,2 11,2 0,3 1,7 1,4 1,5 1,6 71,7 46 11,7 1,2 4,2 34,2 25,2 21,2 17,2 2,1 46,3 20,2 0,7 1,2 0,9 1,4 1,5 46,3

47 21,2 33,2 3,2 8,3 8,7 29,2 40,2 7,3 11,2 16,2 5,2 13,3 3,2 1,2 0,7 40,2

48 14,7 1,3 51 21,2 4,5 31,2 2,3 22,3 54,2 9,3 2,3 1,2 0,4 1,5 2,6 54,2

49 42,2 28,2 51,2 27,2 8,3 12,3 46,9 3,4 29,2 2,3 1,2 1,1 3,4 1,5 1,6 51,2

50 14,2 2,3 21,2 2,3 51,2 7,3 47,9 46,2 1,2 0,7 1,3 1,4 0,7 0,8 0,3 51,2

Dari tabel pengujian diatas didapatkan data berupa nilai maximum, minimum dan rata-rata nilai bestfitness dari seluruh generasi, nilai tersebut dapat dilihat pada tabel dibawah ini :

Tabel 4.9 Rangkuman Nilai Bestfitness

KETERANGAN BESTFITNESS

MAX 149,2

MIN 4

AVERAGE 44,8

Dilihat dari data pada tabel rangkuman nilai bestfitness seluruh generasi diatas, dapat diperoleh kesimpulan bahwa nilai MAX fitness dari seluruh generasi adalah 149,2 yang didapat dari ujicoba pada kromosom ke-5 generasi ke-20, sedangkan nilai MIN bestfitness adalah 4 yang didapat dari percobaan pada generasi pertama kromosom pertama, sedangkan rata-rata dari keseluruhan bestfitness adalah 44,8. Nilai ini membuktikan bahwa implementasi dari dynamic scripting menggunakan mode automatic player pada game arcade dapat diimplementasikan dengan baik dan cukup efisien, mengingat perkembangan nilai fitness tiap generasi.

53 4.4 Analisa Hasil Uji coba

Setelah dilakukannya uji coba dynamic scripting dengan menggunakan automatic player maka didapatlah nilai maximum, minimum, dan rata-rata dari nilai bestfitness seluruh generasi. Perkembangan nilai bestfitness keseluruhan generasi adalah random, tergantung bagaimana proses crossover dan mutasi dari tiap-tiap individu dilakukan, namun nilai bestfitness dari generasi pertama sampai generasi terakhir memang memiliki perkembangan. Perkembangan nilai besfitness ke-50 generasi tersebut dapat dilihat pada diagram 4.5 dibawah ini.

Gambar 4.5 : diagram perkembangan bestfitnees tiap generasi

Dilihat dari diagram diatas dimana data vertikal merupakan 50 generasi yang diuji, dan data horizontal adalah nilai fitness yang didapat dari setiap generasi, terlihat perkembangan nilai bestfitness dari pengujian 50 generasi tersebut terdapat perubahan dari generasi 1 sampai generasi 50.

Proses pembelajaran dari tiap-tiap kromosom juga random, jadi hasil fitness dari tiap-tiap individu pasti berbeda, namun dari 50 generasi yang dilakukan percobaan terdapat sedikit kemiripan pada pola dari nilai fitness tiap generasi. Dari 15 kali percobaan tiap generasi, keseluruhan generasi mendapatkan pola yang hampir

sama, hanya berbeda pada generasi pertama, dimana perkembangan nilai fitness kromosom belum terlalu berkembang. Pola pergerakan nilai fitness per-kromosom dari 20 generasi yang diambil sampelnya dapat dilihat pada gambar 4.5 dibawah ini. Dimana tiap warna yang berbeda melambangkan generasi, dan data C1-15 merupakan kromosom dari generasi-generasi tersebut, sedangkan data horizontal merupakan nilai fitness yang didapat dari tiap kromosom.

Gambar 4.5 : diagram pola perkembangan fitness 20 generasi

Dari diagram diatas terlihat pola perkembangan dari kromosom ke kromosom tiap generasi. Terlihat polanya sedikit mirip, dimana pada awal kromosom perkembangan nilai fitness menanjak hingga ke kromosom ke 10, dan di tiap 5 kromosom terakhir nilai fitness selalu menurun drastis. Data ini menunjukkan bahwa perkembangan dari simulasi pembelajaran dan evolusi dari tiap generasi mempunyai keunikan sendiri-sendiri, namun terdapat sedikit kemiripan pada pola crossover dan mutasi kromosom tertentu ditiap generasi. Terlihat bahwa worstkromosom atau kromosom yang buruk rata-rata muncul diakhir generasi, sedangkan best kromosom atau kromosom dengan nilai fitness yang baik biasanya terletak pada awal dan berkembang sampai pertengahan generasi. Lalu proses ini terus berulang dan berulang hingga nilai bestfitness terbaru akan muncul dan menggantikan nilai bestfitness sebelumnya.

55 BAB V

Dokumen terkait