• Tidak ada hasil yang ditemukan

IMPLEMENTASI DYNAMIC SCRIPTING DENGAN METODE HIGH-FITNESS PENALISING PADA GAME ARCADE

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI DYNAMIC SCRIPTING DENGAN METODE HIGH-FITNESS PENALISING PADA GAME ARCADE"

Copied!
58
0
0

Teks penuh

(1)

IMPLEMENTASI DYNAMIC SCRIPTING DENGAN

METODE HIGH-FITNESS PENALISING PADA GAME

ARCADE

TUGAS AKHIR

Oleh:

Nicko Surya Pratama 4311301074

Disusun untuk memenuhi syarat kelulusan Program Diploma IV

PROGRAM STUDI MULTIMEDIA JARINGAN JURUSAN TEKNIK INFORMATIKA

POLITEKNIK NEGERI BATAM BATAM

(2)

HALAMAN PENGESAHAN

IMPLEMENTASI DYNAMIC SCRIPTING DENGAN METODE HIGH-FITNESS PENALISING PADA GAME ARCADE

Oleh :

Nicko Surya Pratama 4311301074

Tugas Akhir ini telah diterima dan disahkan sebagai persyaratan untuk memperoleh gelar

Sarjana Sains Terapan di

PROGRAM STUDI DIPLOMA IV TEKNIK MULTIMEDIA JARINGAN POLITEKNIK NEGERI BATAM

Batam, 09 Januari 2017 Disetujui oleh;

Pembimbing,

Riwinoto, S. T., M.Kom. NIK. 103025

(3)

HALAMAN PERNYATAAN

Dengan ini, saya:

NIM : 4311301074

Nama : Nicko Surya Pratama

adalah mahasiswa Teknik Informatika Politeknik Batam yang menyatakan bahwa tugas akhir dengan judul:

IMPLEMENTASI DYNAMIC SCRIPTING DENGAN METODE HIGH-FITNESS PENALISING PADA GAME ARCADE

disusun dengan:

1. tidak melakukan plagiat terhadap naskah karya orang lain 2. tidak melakukan pemalsuan data

3. tidak menggunakan karya orang lain tanpa menyebut sumber asli atau tanpa ijin pemilik

Jika kemudian terbukti terjadi pelanggaran terhadap pernyataan di atas, maka saya bersedia menerima sanksi apapun termasuk pencabutan gelar akademik.

Lembar pernyataan ini juga memberikan hak kepada Politeknik Batam untuk mempergunakan, mendistribusikan ataupun memproduksi ulang seluruh hasil Tugas Akhir ini.

Batam, 09 Januari 2017

Nicko Surya Pratama 4311301074

(4)

KATA PENGANTAR

Alhamdulillah, puji syukur kepada Allah SWT, karena atas berkat dan rahmat-Nya penyusunan laporan Tugas Akhir yang berjudul “Implementasi Dynamic Scripting Dengan Metode High-Fitness Penalising Pada Game Arcade” ini dapat terselesaikan dengan baik. Laporan Tugas Akhir ini diajukan sebagai salah satu proses utama untuk memenuhi syarat memperoleh gelar Sarjana Sains Terapan di Program Studi Teknik Informatika Prodi Multimedia Dan Jaringan, Politeknik Negeri Batam.

Penulis menyadari bahwa selama penyusunan laporan, banyak pihak yang telah membantu. Pada kesempatan yang berbahagia ini penulis mengucapkan terima kasih kepada:

1. Bapak Riwinoto, S. T., M.Kom., selaku dosen Pembimbing Utama yang telah memberikan arahan, motivasi, penjelasan, pemahaman, pengalaman serta ilmu yang bermanfaat selama proses pembuatan laporan ini diselesaikan.

2. Bapak Dr.Ir P.H.M Pieter Spronck, selaku pembuat paper difficulty scaling of game AI yang telah membantu dalam memahami isi dari paper yang telah dibuat

3. Ibu Yeni Rokhayati, S.Si.,M.Sc , Selaku Pengampu Tugas Akhir yang sudah bersabar dalam menghadapi penulis dalam mengerjakan tugas akhir ini.

4. Bapak Afdhol Dzikri, S.ST., M.T dan bang Cahya Miranto, S.ST , selaku penguji 1 dan penguji 2 yang telah memberikan masukan yang sangat berharga sehingga hasil tugas akhir ini bisa menjadi lebih baik lagi. 5. Kepada seluruh dosen Teknik Informatika yang telah membimbing

selama menenpuh studi.

6. Semua pihak yang telah ikut membantu dalam penyelesaian penelitian ini dan penyusunan laporan akhir yang tidak dapat disebutkan satu-persatu.

(5)

Penulis berharap Tugas Akhir ini dapat bermanfaat untuk semua pihak dan bidang yang terkait dalam topik skripsi ini. Kritik dan saran yang membangun sangat diharapkan penulis untuk perbaikan di masa mendatang

Batam, 09 Januari 2017

(6)

INTISARI

IMPLEMENTASI DYNAMIC SCRIPTING DENGAN METODE HIGH-FITNESS PENALISING PADA GAME ARCADE

Dewasa ini permainan-permainan banyak yang dimainkan melalui gadget seperti smartphone, laptop , PC dan lain sebagainya. Permainan-permainan seperti ini dibuat dengan menggunakan sistem di dalamnya. Sistem tersebutlah yang mengatur bagaimana permaian itu berjalan nantinya. Artificial Intelligent (AI) merupakan salah satu komponen di dalam game dimana dengan hadirnya AI permainan akan terasa lebih menarik. AI pada dasarnya merupakan bagian dari sistem yang dapat mengambil keputusan sendiri dan biasanya diletakkan pada musuh. AI dapat digunakan untuk tujuan yang bermacam-macam termasuk salah satunya adalah membuat musuh dapat menyesuaikan kemampuannya terhadap kemampuan pemain. Untuk melakukan hal ini maka diperlukannya mechine-learning yaitu Dynamic Scripting dan high-fitness penalising sebagain salah satu metodenya untuk menyesuaikan kemampuan AI dan pemain. Percobaan dilakukan sebanyak 100 pertarungan di setiap satu kali percobaan. Percobaan dilakukan sebayak 100 kali untuk setiap gaya bertarung pemain sehingga menghasilkan data sebanyak 30.000. setelah dilakukannya percobaan ternyada dari ketiga gaya bertarung yang diujikan yakni ofensive, defensive dan openplay ketiganya tidak ada yang berhasil dalam mencapai keadaan yang seimbang. Walau bagaimanapun juga openplay adalah yang memiliki nilai paling dekat dengan standar yaitu 42.96 rata-rata kemenangan yang dimiliki oleh AI.

Kata Kunci : permainan, dynamic scripting, high-fitness penalising, artificial intelligent, AI

(7)

ABSTRACT

IMPLEMENTATION OF DYNAMIC SCRIPTING WITH HIGH-FITNESS PENALISING METHOD ON ARCADE GAME

Nowadays any games played in gadget like smartphone, laptop, pc, etc. Games like this are build in system in it. That system managed how the game should run. Artificial Intelligent (AI) is one of the components in game and the AI can make the game even more interesting. AI basically is part of system that can make decision for itself and mostly AI can be found in enemys.AI are used for many purpose one of them include make the enemy can adjust their skills to the player skills. For doing such a thing so needed mechine-learning called Dynamic Scripting with high-fitness penalising as one of its method for difficulty scaling. One test took 100 encounter and we did 100 test for single tactic so with 3 tactics we collected 30.000 datas. The result of the experiment of the 3 tactics which is offensive, defensive and openplay are failed. The three of them fail to make even game between AI and player. Nevertheless, openplay tactic is the nearest tactic to get even game with 42,96-win average for the AI.

Keywords: Games, dynamic scripting, high-fitness penalising, artificial intelligent, AI

(8)

DAFTAR ISI

HALAMAN PENGESAHAN ... ii

HALAMAN PERNYATAAN ... iii

KATA PENGANTAR ... iv

INTISARI ... vi

ABSTRACT ... vii

DAFTAR ISI ... viii

DAFTAR GAMBAR ... x DAFTAR TABEL ... xi BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Batasan Masalah... 3 1.4 Tujuan Penelitian ... 3 1.5 Manfaat Penelitian ... 3 1.6 Sistematika Penulisan ... 3

BAB II LANDASAN TEORI ... 4

2.1 Tinjuan Pustaka ... 4

2.2 Permainan ... 4

2.2 Dynamic Scripting ... 5

2.3 Difficulty Scaling ... 9

2.4 Unity 3D ... 11

BAB III ANALISIS DAN PERANCANGAN ... 13

3.1 Analisis Sistem ... 13

3.2 Analisis Perancangan ... 15

3.3 Perancangan Sistem ... 20

3.4 Alat dan Bahan ... 26

BAB IV HASIL DAN PEMBAHASAN ... 28

4.1 Inisialisasi Variabel ... 28

4.2 Hasil Implementasi ... 29

4.3 Pengujian Sistem ... 31

(9)

4.5 Analisis Hasil Uji Coba ... 39

4.6 Diagram Histogram ... 41

BAB V KESIMPULAN DAN SARAN ... 44

5.1 Kesimpulan ... 44

(10)

DAFTAR GAMBAR

Gambar 2.1 : Proses dynamic scripting... 6

Gambar 2.2 : Rulebase pada game minigate ... 7

Gambar 2.3 : Algoritma Weight Adjustment ... Error! Bookmark not defined. Gambar 2. 4 Algoritma Script Generation ... Error! Bookmark not defined. Gambar 2.5 : Diagram weight clipping dan top culling ... 11

Gambar 3. 1 : Desain Penelitian……….15

Gambar 3. 2 : Algortima Team-Fitness Dan komponen A(a) ... 17

Gambar 3. 3 Algoritma Komponen B(g) dan C(g) ... 18

Gambar 3. 4 Formula Mengubah F menjadi F ... 19

Gambar 3. 5 Pencarian Nilai Bobot ... 19

Gambar 3. 6 : Diagram use case... 21

Gambar 3. 7 : Diagram robustness ... 22

Gambar 3. 8 : Diagram sequence ... 23

Gambar 3. 9 : Diagram class ... 24

Gambar 3. 10 : Rulebase Enemy ... 26

Gambar 4. 1 : Aksi yang dapat dipilih Enemy………29

Gambar 4. 2 Skenario Pengujian ... Error! Bookmark not defined. Gambar 4. 3 Contoh Hasil Output setiap pertarunganError! Bookmark not defined. Gambar 4. 4 : Diagram hasil dari permainan minigate (CRPG) ... 40

Gambar 4. 5 : Diagram hasil dari permainan into the space ... 40

Gambar 4. 6 Histogram Ofensive... 41

Gambar 4. 7 Histogram Defensive ... 42

(11)

DAFTAR TABEL

Tabel 2.1 : Tabel Perbandingan Tinjauan Pustaka ... 4

Tabel 3.1 : Musuh pada game into the space ... 14

Tabel 3.2 : Tabel Perbandingan Tinjauan Pustaka ... 21

Tabel 3.3 : Tabel Penambahan Aksi ... 25

Tabel 4. 1 : Instansiasi Variabel……….28

Tabel 4. 2 Penjelasan Fungsi aksi sesuai index... 30

Tabel 4. 3 Tabel Hasil Pengujian ... 36

(12)
(13)

BAB I PENDAHULUAN 1.1 Latar Belakang

Permainan atau game merupakan salah satu kegiatan yang tidak terlepas dari kehidupan masyarakat sehari-hari mulai dari zaman dahulu hingga sekarang. Karena dengan bermain orang-orang dapat menghilangkan sejenak masalah, tekanan ataupun juga stress yang sedang dialami. sehingga bisa menjernihkan pikiran dan bisa menemukan solusi dalam memecahkan masalah.

Pada zaman modern ini, permainan-permainan juga banyak yang di modernisasi. Artinya permainan-permainan yang dulunya menggunakan fisik untuk bermain sekarang digantikan dengan komputer. Permainan- permainan yang dibuat untuk dimainkan di dalam komputer memiliki sebuah sistem dimana di dalamnya memuat aturan-aturan di dalam game, aset-aset, AI (jika ada) dan lain sebagainya.

Banyak peneliti dan juga pengembang game mempertimbangkan game AI, agar tetap menghibur walau sulit untuk dimenangkan (Buro 2013). Walaupun demikian, tidak setiap pemain memiliki kemampuan yang sama dalam bermain, ada yang sudah berpengalaman dan juga yang masih baru bermain. Jika game terlalu sulit maka pemain baru akan mengalami stress dalam memainkannya sedangkan jika permainan terlalu mudah maka pemain yang sudah berpengalaman akan merasa bosan dan tidak terhibur. Untuk itu diperlukannya penyesuaian tingkat kesulitan yang selanjutnya akan disebut dengan “Difiiculty Scaling”.

“Difficulty Scaling” merupakan sebuah adaptasi otomatis di dalam sebuah permainan untuk menyesuaikan tantangan di dalam permainan terhadap pemain (Spronck dkk 2004). Tujuan digunakannya difficulty scaling biasanya untuk menciptakan permainan yang seimbang antara pemain dan sistem sehingga baik pemain yang berpengalaman dan juga yang baru akan sama-sama merasakan tantangan di dalam permainan sehingga permainan

(14)

tersebut tetap menarik. Untuk melakukan difficulty scaling ini maka diperlukannya sebuah teknik mechine-learning.

Pieter Spronck dkk telah mendesain sebuah teknik mechine-learning bernama “Dynamic Scripting”. Dalam bentuk aslinya, dynamic scripting mengoptimalkan kekuatan permainan pada game AI (Spronck dkk 2004). Untuk menciptakan permainan yang seimbang antara pemain dan permainan maka dikembangkan lagi 3 metode berdasarkan teknik mechine-learning dynamic scripting yaitu high-fitness penalising, weight clipping dan top culling.

Pada permainan berjenis CRPG (Computer Role Playing Games), dari tiga difficulty scaling yang telah diuji, high-fitness penalising secara umum gagal namun dua metode lainnya berhasil dengan baik dengan top culling sebagai yang terbaik dalam menciptkan permainan yang seimbang antara pemain dengan permainan (Spronck dkk 2004).

Terdapat berbagai jenis-jenis game seperti RPG, shooter, arcade, console dan masih banyak yang lannya. Jika dilihat dari sisi komersial, permainan berjenis arcade sangat bagus untuk digunakan karena jenis ini dimainkan pada mesin yang didesain khusus untuk permainan tertentu. Jenis permainan ini banyak ditemui di mal-mal dimana kita harus memasukkan koin untuk memainkannya. Oleh karena itu dari sisi komersial permainan berjenis arcade sangat menguntungkan. Selain dari sisi komersil, aspek edukasi sangatlah penting. untuk itu menambahkan aspek edukasi ke dalam game arcade sangat baik karena selain meghibur pemain juga dapat menambah wawasannya.

Untuk itu penulis ingin melakukan percobaan untuk mengimplementasikan dynamic scripting pada game arcade edukasi dengan menggunakan metode high penalising. Hal ini sesuai dengan rekomendasi dari Pieter Spronck dkk yang telah berhasil terlebih dahulu untuk mengimplementasikan tiga metode dari dynamic scripting pada permainan berjenis CRPG dan menginginkan ketiga metode tersebut diimplementasikan pada jenis permainan yang berbeda.

(15)

1.2 Rumusan Masalah

Berdasarkan latar belakang yang diambil maka dapat dirumuskan sebuah rumusan masalah yaitu bagaimana mengimplementasikan dynamic scripting dengan menggunakan metode high-fitness penalising pada game arcade?

1.3 Batasan Masalah

Batasan masalah dalam pembuatan tugas akhir ini antara lain : 1. Hanya menggunakan metode high-fitness penalising

2. Hanya diimplementasikan pada game arcade ”Into The Space” 3. Tidak membahas metode difficulty scaling lainnya

1.4 Tujuan Penelitian

Tujuan dari penulisan tugas akhir ini adalah:

1. Untuk mengimplementasikan dynamic scripting dengan metode high-fitness penalising pada permainan berjenis arcade.

2. Untuk mengukur performa dynamic scripting dengan metode high-fitness penalising pada permainan berjenis arcade.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah jika berhasil dapat menerapkan dynamic scripting dengan metode high-fitness penalising untuk game berjenis arcade.

1.6 Sistematika Penulisan

Agar penelitian ini terlihat baik dan rapi maka diperlukannya sistematika penulisan yang menggambarkan tahapan tahapan dalam pengerjaan penelitian tugas akhir ini. Adapun sistematika penulisan dalam laporan tugas akhir ini adalah :

(16)

BAB II

LANDASAN TEORI 2.1 Tinjuan Pustaka

Pembuatan tugas akhir ini didasari oleh penelitian yang dilakukan oleh pieter spronck yang berjudul “Difficulty Scaling of Game AI”. Game yang digunakan dalam penelitian tersebut adalah minigate yang dibuat dengan bahasa pemograman pascal dengan software borland delphi 5. Game tersebut jenis CRPG yang terinspirasi dari game baldur’s gate.

Tabel 2.1 : Tabel Perbandingan Tinjauan Pustaka

Penelitian Sebelumnya Tugas Akhir Metode - High-fitness

penalising - Weight clipping - Top culling

High Fitness

Nama Game Mini Gate Into the Space

Jenis Game Controlled Role Playing Game (CRPG)

ARCADE

Language Pascal C Sharp

software Borland Delphi 5 Unity 3D V 5.03f

2.2 Permainan

Game merupakan sebuah sistem dimana pemain turut serta dalam suatu konflik buatan yang memiliki aturan-aturan dan menghasilkan hasil yang dapat dihitung (Salen & Zimmerman, 2004). Dalam definisi tersebut terdapat 6 kata kunci yang sangat penting diantaranya adalah sistem, pemain, buatan, konflik, peraturan dan hasil yang dapat dihitung.

1. Sistem adalah hal yang paling mendasar dalam game, karna game itu bersifat sistematik

2. Pemain adalah pemain berinteraksi dengan sistem game agar merasakan bermain permainan

(17)

4. Konflik yaitu setiap game membuat sebuah kontes kekuatan, kontes tersebut bisa terjadi di dalam berbagai macam bentuk. Bisa solo player dan juga multi player. Konflik merupakan inti dari game.

5. Peraturan merupakan bagian yang penting dari game. Karna dengan adanya peraturan pemain dapat mengetahui apa yang bisa dan tidak boleh dilakukan.

6. Hasil yang dapat dihitung yaitu game mempunyai hasil yang dapat dihitung baik itu menang atau kalah atau juga sebuah score.

Game dapat dikategorikan ke dalam beberapa bagian menurut dari platform yang akan digunakan (adams, ernest, 2010) :

1. Arcade games, yaitu video game dengan mesin yang memang khusus didesain untuk jenis video games tertentu dan memiliki fitur seperti pistol, kursi khusus, sensor gerakan, sensor injakkan dan stir mobil dan lain-lain.

2. PC Games, yaitu video game yang dimainkan menggunakan Personal Computers.

3. Console games, yaitu video games yang dimainkan menggunakan Console tertentu, seperti Playstation 2, Playstation 3, XBOX 360, dan Nintendo Wii.

4. Handheld games, yaitu yang dimainkan di Console khusus video game yang dapat dibawa kemana-mana, contoh Nintendo DS dan Sony PSP.

5. Mobile games, yaitu yang dapat dimainkan atau khusus untuk Mobile phone atau PDA.

Kebanyakan permainan-permainan pada zaman sekarang sudah memiliki AI sehingga dapat membuat permainan lebih hidup. Dengan menggunakan AI kita dapat menerapkan teknik pembelajaran online dan offline sehingga AI akan dapat beradaptasi dengan pemain nantinya.

2.2 Dynamic Scripting

Dynamic scripting adalah sebuah teknik pembelajaran online untuk game yang memiliki AI yang tujuannya adalah untuk mengoptimasi AI

(18)

tersebut. Teknik ini dikembangkan oleh pieter spronck dan kawan-kawan yang terinspirasi oleh reinforcement learning. Dikembangkannya dynamic scripting dikarenakan reinforcement learning yang biasa tidak efisien untuk digunakan sebagai online learning pada game (spronck, 2004). Agar sebuah teknik online learning dapat diterapkan di dalam game setidaknya harus memenuhi 4 persyaratan yaitu cepat, efektif, robust dan efisien.

Gambar 2.1 : Proses dynamic scripting

Gambar diatas menjelaskan tentang proses dynamic scripting dimana setiap setelah pertarungan antara pemain dan musuh maka bobot di dalam rulebase akan diupdate sesuai dengan hasil pertarungan. Selanjutnya setelah rulebase di update maka musuh selanjutnya yang dipanggil akan mendapatkan script sesuai dengan hasil pertarungan sebelumnya.

Rulebase berisikan aturan-aturan atau aksi-aksi tertentu yang didesain dengan menggunakan domain-specific knowledge yang nantinya diantara aksi-aksi tersebut dapat digunakan oleh agent pada AI untuk melawan musuh-musuhnya. Agent di dalam menentukan aksi-aksi yang digunakannya menggunakan weight-update function dan skala prioritas. Sehingga jika seandainya fungsi bobot yang digunakan memiliki nilai yang sama maka aksi dapat ditentukan dengan skala prioritas. Pada skala prioritas, semakin tinggi

(19)

nilai maka aksi tersebut akan lebih diprioritaskan untuk dipilih. Begitu pula sebaliknya.

Gambar 2.2 : Rulebase pada game minigate

Dynamic scripting dapat diimplementasikan ke dalam game AI yang memiliki ciri-ciri sebagai berikut (spronck,2004).

1. Game AI bisa di script

2. Domain knowledge pada karakter yang memiliki script yang sukses dapat diambil / diketahui.

3. Fungsi evaluasi dapat diterapkan untuk menilai script yang berhasil.

Sebagai catatan, kekuatan maximum game AI yang dapat dicapai tergantung dari kualitas domain knowledge yang digunakan di dalam pembuatan rulebase.

2.2.1 Algoritma Weight Adjustment

Algoritma weight adjustment berfungsi untuk mengatur bobot dari rules yang ada pada rulebase. Proses weight adjustment ini terjadi setelah pertarungan selesai lalu berdasarkan hasil dari akhir pertandingan maka akan dimasukkan dan diolah ke dalam algoritma weight adjustment yang kemudian hasilnya akan digunakan untuk meng-update rulebase.

active = 0

for i = 0 to rulecount – 1 do if rule[i].activated then

active = active + 1

end if end for

if active <= 0 or active >= rulecount then

return {No updates are needed.}

end if

nonactive = rulecountactive

adjustment = CalculateAdjustment(Fitness)

compensation = -round(active * adjustment / nonactive)

remainder = -active * adjustment -nonactive * compensation

(20)

for i = 0 to rulecount – 1 do if rule[i].activated then

rule[i].weight = rule[i].weight + adjustment else

rule[i].weight = rule[i].weight + compensation end if

if rule[i].weight < minweight then

remainder = remainder + (rule[i].weightminweight) rule[i].weight = minweight

else if rule[i].weight > maxweight then

remainder = remainder + (rule[i].weightmaxweight) rule[i].weight = maxweight

end if end for

{Division of remainder:}

i = 0

while remainder > 0 do

if rule[i].weight <= maxweight – 1 then

rule[i].weight = rule[i].weight + 1 remainder = remainder – 1

end if

i = (i + 1) mod rulecount end while

while remainder < 0 do

if rule[i].weight => minweight + 1 then

rule[i].weight = rule[i].weight – 1 remainder = remainder + 1

end if

i = (i + 1) mod rulecount end while

2.2.1 Algoritma Script Generation

Setelah rulebase mendapatkan hasil dari pertandingan sebelumnya yang telah melalui proses weight adjustment. Selanjutnya rulebase akan diperbaharui. Selanjutnya rulebase yang telah di update tersebut akan masuk ke dalam tahapan script generation dimana akan dipilih rules yang akan digunakan di dalam pertempuran selanjutnya.

ClearScript()

sumweights = 0

for i = 0 to rulecount - 1 do

sumweights = sumweights + rule[i].weight

end for

for i = 0 to scriptsize - 1 do try = 0

lineadded = false

while try < maxtries and not lineadded do

j = 0 sum = 0

selected = -1

(21)

while selected < 0 do

sum = sum + rule[j].weight

if (sum > fraction) then

selected = j else j = j +1 end if end while lineadded = InsertInScript(rule[selected].line) try = try + 1 end while end for FinishScript() 2.3 Difficulty Scaling

Sebelumnya telah dijelaskan tentang dynamic scripting yang mana dapat mengoptimasi game AI supaya dapat selalu lebih hebat dari pemain. Namun bagaimana dengan pemain yang tidak hebat dalam bermain game? . Untuk pemain yang tidak hebat dalam bermain game, sebuah permainan yang menghibur adalah permainan yang menantang tapi dapat dikalahkan (Scott, 2002). Kebanyakan game memiliki difficulty setting sehingga baik pemain yang hebat dan tidak dapat bermain sesuai dengan kemampuannya. Namun di dalam difficulty setting yang menjadi pembedanya antara tingkatan hanyalah kekuatan lawan. Sangat jarang difficulty setting melibatkan taktik di dalam penggunaannya (Spronck, 2004). Namun masalahnya bukanlah terletak bagaimana komputer dapat menciptakan taktik yang lemah sehingga bisa dikalahkan oleh pemain, tetapi lebih ke arah bagaimana menciptakan peluang kemenangan yang seimbang antara pemain dan komputer. Untuk mengatasinya diperlukannya difficulty scaling.

Difficulty scaling merupakan sebuah adaptasi otomatis di dalam sebuah game, yang mana dapat mengatur tantangan sesuai dengan kemampuan pemain manusia. Dengan kata lain diffiuclty scaling bertujuan untuk menciptakan keadaan yang seimbang antara AI dan pemain manusia. Untuk mengatasai kekurangan yang terdapat di dalam difficulty setting sebenarnya sedikit dapat diatasi dengan dynamic scripting. Namun masalahnya dynamic scripting tidak dapat menciptakan even game. Untuk itu dikembangkan lagi

(22)

menjadi 3 metode yaitu (1) high-fitness Penalising, (2) Weight Clipping, (3) Top Culling.

2.3.1 High-Fitness Penalising

Pengembangan yang pertama adalah high-fitness penalinsing. Pada metode ini sebenarnya hampir sama dengan dynamic scripting. High-fitness penalising menggunakan weight adjustment yang sama dengan dynamic scripting namun menggunakan fungsi F yang berbeda. Pada high-fitness penalising fungsi F pada dynamic scripting digantikan dengan fungsi F’. F pada dynamic scriting diperuntukkan untuk memberikan reward kepada aksi yang bagus dan memberikan penalty kepada aksi yang jelek. Hal ini berguna untuk membuat AI selalu lebih hebat dari pada human player. Namun untuk menciptakan permainan yang seimbang maka fungsi F digantikan dengan F’ dimana pemberian reward tidak diberikan kepada aksi yang bagus melainkan pada aksi yang biasa-biasa saja dan penalty kepada aksi yang bagus. Hal ini bertujuan untuk menghindari AI bermain lebih baik dari pada human player.

2.3.2 Weight Clipping

Pada saat melakukan weight update, nilai maximum weight (Wmax)

akan menentukan tingkatan maximal sebuah taktik dapat dicapai. Jika nilai Wmax kecil maka taktik maximal yang dapat dihasilkan tidak terlalu hebat

walaupun sebenarnya taktik yang dapat dihasilkan bisa lebih hebat lagi. Sedangkan jika nilai Wmax tinggi maka akan mengizinkan weight

berkembang ke nilai yang tinggi yang nantinya rules dengan tingkat efektifitas yang tinggi akan hampir selalu dipilih.

(23)

Gambar 2.3 : Diagram weight clipping dan top culling

2.3.3 Top Culling

Pada metode top culling hampir sama dengan weight clipping, yang menjadi pembedanya adalah jika pada weight clipping nilai weight aksi akan dibatasi oleh Wmax,pada top culling nilai weight tidak dibatasi oleh Wmax

sehingga nilai Weight akan terus bertambah dan melewati Wmax. Namun aksi

tersebut tidak akan dipilih nantinya. Jadi pada saat AI menang terus, aksi yang paling efektif du gunakan untuk menang tidak akan digunakan dipertemuan selanjutnya, AI akan memilih menggunakan aksi yang lemah terhadap human player.

2.4 Unity 3D

Unity merupakan sebuah game engine yang dapat menjadi salah satu pilihan bagi para pembuat game. Unity bisa membuat game dalam format 2D maupun 3D dan dapat dijalankan diberbagai multiplatform. Unity juga punya banyak fitur-fitur yang sangat friendly di dalam membuat sebuah game. contohnya saja untuk memasukkan assest ke dalam scene hanya menggunakan drag and drop saja. Dan otomatis akan ter-import ke dalam unity.

(24)

Unity juga memiliki berbagai macam service untuk meningkatkan game yang dibuat. Jika pembuat game ingin memiliki pemasukan terhadap game yang dibuatnya maka unity memiliki service yang bernama unity ads. Membuat game multiplayer juga bisa dengan bantuan unity multiplayer sehingga memudahkan pengembang game untuk membuat game-nya. Masih banyak lagi servis-servis yang diberikan oleh unity. Itulah mengapa unity merupakan game engine yang sangat baik untuk digunakan sebagai pengembang game.

(25)

BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem merupakan sebuah cara yang dapat digunakan untuk menemukan masalah pada suatu sistem sehingga bisa diperbaiki kedepannya. Teknik yang dilakukan adalah dengan cara memecah suatu sistem yang luas menjadi bagian-bagian kecil sesuai dengan komponen-komponennya sehingga dapat membuat lebih mudah dalam melihat kelemahan yang ada pada sistem tersebut.

Game yang telah ditentukan untuk digunakan dalam melakukan implementasi dynamic scripting dengan menggunakan metode high-fitness penalising adalah “into the space”. Berikut adalah analisis sistem dari game “into the space”.

3.1.1 Menganalisa kekuatan musuh

Untuk melakukan implementasi dynamic scripting dengan menggunakan metode high-fitness penalising, dipilihlah game arcade bernama Into the Space. Permainan ini dibuat oleh “Bug Game” yang dirilis pada tanggal 29 agustus 2014. Permainan ini dapat ditemukan pada website unity dan dapat diunduh secara gratis. Karena tampilan simple serta source code yang sederhana maka dipilihlah game ini untuk dijadikan bahan percobaan untuk mengimplementasikan dynamic scripting dengan menggunakan metode high-fitness penalising.

Pada permainan into the space, terdapat 3 jenis musuh dengan tingkat kekuatan yang berbeda-beda. Musuh yang terlemah adalah pesawat yang berwarna biru, dilanjutkan dengan pesawat hijau dan yang terkuat adalah pesawat berwarna merah.

(26)

Tabel 3. 1 :Musuh pada game into the space

Setelah mengetahui indikator kekuatan musuh yang terdapat di dalam original game “into the space”, maka selanjutnya akan dilakukan analisa kebutuhan fungsional dan non fungsional serta penambahan-penambahan yang perlu dilakukan terhadap game into the space agar dapat diimplementasikan dengan dynamic scripting dengan menggunakan metode high-fitness penalising.

3.1.2 Analisa Kebutuhan Fungsional

Untuk dapat diimplementasikan ke dalam dynamic scripting dengan menggunakan metode high-fitness penalising, game into the space harus memiliki kebutuhan-kebutan fungsional sebagai berikut.

1. Game harus memiliki musuh. 2. Musuh harus memiliki rulebase 3. Musuh dapat menembakkan senjata

4. Musuh secara otomatis turun kebawah (melewati player) dengan berbagai cara

5. Musuh dapat menghindari senjata yang ditembakkan player. 6. Musuh dapat mengaktifkan pelindung agar tidak tertembak player. 7. Pesawat player ditembakkan secara otomatis

Health dan speed

Move Forward FIRE Score Health : 2 Speed : 1  - 15 Health : 2 Speed : 2   25 Health : 4 Speed : 3   35

(27)

8. Pesawat player dapat menerima masukan input horizontal dan vertikal 3.1.3 Analisa Kebutuhan Non Fungsional

Selain kebutuhan fungsional, adapula kebutuhan non fungsional yang pada tugas akhir ini meliputi:

1. Uji coba dilakukan di dalam game engine unity 3D

2. Game didesain untuk dijalankan pada sistem operasi windows 3. Sistem operasi harus menggunakan sistem 64 bit

3.2 Analisis Perancangan 3.2.1 Desain Perancangan

Gambar 3. 1 : Desain Penelitian

Pada pengimplementasian dynaminc scripting dengan menggunakan metode high-fitness penalising digunakanlah sebuah perancangan sistem yang memuat tahapan-tahapan yang perlu dilakukan. Berikut adalah perancangan sistemnya.

(28)

1. Mulai

Memulai melakukan project dan menyusun konsep apa yang akan dibuat nantinya.

2. Mendeteksi Parameter Kekuatan Musuh

Setelah selesai dalam membuat konsep, tahapan selanjutnya adalah menganalisa game yang dipilih untuk diterapkan high-fitness penalising. Setelah mendapatkan game yang sesuai kriteria untuk diterapkan high-fitness penalising. Kemudian dilakukan analisa terhadap musuh-musuh yang ada di dalam game tersebut antara lain:

a. Berbagai macam musuh yang tersedia di dalam game tersebut. b. Tingkatan kekuatan musuh.

c. Pola respawn musuh sesuai tingkatannya. d. Aksi-aksi yang ada pada setiap tingkatan musuh.

Setelah mendapatkan data parameter kekuatan musuh, selanjutnya adalah dilakukan penyesuaian terhadap game tersebut sehingga dapat diimplementasikan metode high-fitness penalising.

3. Menerapkan difficulty scaling (Metode High-Fitness Penalising).

Setelah selesai dengan penyesuaian pada game, selanjutnya adalah mengimplementasikan high-fitness penalising pada game tersebut.

4. Melakukan uji coba

Dalam melakukan uji coba, human player akan bermain dan melawan AI. Dimana AI nantinya diharapkan mampu menyesuaikan kekuatannya dengan human player. Percobaan akan dilakukan sebanyak 100 kali.

5. Menganalisis hasil uji coba

Selanjutnya dalam tahapan ini adalah melihat apakah dynamic scripting dengan menggunakan metode high-fitness penalising dapat menciptakan permainan yang seimbang antara human player dan game AI.

6. Selesai

Membuat kesimpulan terhadap implementasi dynamic scripting dengan menggunakan metode high-fitness penalising.

(29)

3.2.3 High-fitness Penalising

Setelah mengetahui algoritma untuk menyesuaikan bobot (weight adjustment), maka tahapan selanjutnya adalah untuk memasukan formula atau rumus perhitungan yang digunakan di dalam metode high-fitness penalising.

Sebelum dapat menghitung formula dalam metode high-fitness penalising terlebih dahulu kita harus mencari nilai F (fitness). Untuk menghitung nilai F maka digunakanlah algoritma berikut ini.

Tabel 3. 2: Algortima Team-Fitness Dan komponen A(a)

Symbol Keterangan

Gwin Group Win

F(G) Fitness Group/team

ht(c) Sisa health untuk character c h0(c) Health awal / maximum

b Break-even

A(a) Kemampuan Bertahan Agent (a) Dmax Nilai Health pada saat awal encounter

//algoritma mencari Fitness //mencari nilai F(g)

If Gwin == ‘true’ then

F(g) = ht(c) /h0(c) + 1 * ½ * Ng; Else

f(g) = 0; end if

//mencari niali A(a) if ht(c) <= 0 then

A(a) = (min of ((D(a)/Dmax),1)) * 1/3; Else if Ht(a) > 0 then

A(a) = (ht(a)/h0(a)) + 2 End if

(30)

// mencari nilai B(g) If ht(c) <= 0 then B(g) = (ht(c)/h0(c) + 1) * ½ * Ng Else B(g) = 0 End if //Mencari niali C(g) If ht(c) <= 0 then C(g) = ½ * Ng * 1 Else C(g) = ((ht(c) / h0(c) ) -1 ) * ½ * N-g //mencari nilai F

F(a,g) = 1/10 * (3*f(a) + 3 * A(a) + 2 B(g) + 2 * C(g))

Tabel 3. 3 : Algoritma Komponen B(g) dan C(g)

Symbol Keterangan

B(g) Rata – Rata setiap health dari semua member team Ng N adalah member dari team g

C(g) Demage yang dihasilkan untuk character c h0(c) Health awal / maximum

A(a) Kemampuan Bertahan Agent (a)

Dengan menggunakan algoritma di atas maka akan mendapatkan nilai F (fitness) yang kemudian dapat digunakan untuk mencari nilai F’ untuk mencari F’ digambarkan dalam algortima di bawah.

//Algoritma mencari nilai F’ If (F <= P )

(31)

Tabel 3. 4 : Formula Mengubah F menjadi F

Symbol Keterangan

F Nilai Fitness

F’ Nilai Fitness setelah dijumlahkan p Reward Peak

Nilai F’ sudah didapatkan, jika menggunakan dynamic scripting menggunakan nilai F saja sudah cukup namun pada high-fitness penalising menggunakan nilai F’. setelah itu nilai F’ dimasukan kedalam algoritma calculate adjustment sebagai berikut.

Tabel 3. 5 :Pencarian Nilai Bobot

Symbol Keterangan

-Pmax Penalty Maximum

Rmax Reward Maximum

F (fitness) pada formula di atas miliki arti bahwa pemberian reward sesuai dengan fitness value yang dimilikinya. Semakin tinggi fitness valuenya maka semakin besar pula reward nya. Hal ini mengakibatkan rule yang dipilih

Algoritma mencari ∆W (delta W) If F< b then

∆W = -Pmax * b-F’/b Else

∆W = Rmax * F’-B / 1-b

(32)

adalah rule yang paling efisien dalam menghadapi lawan sehingga AI akan lebih hebat dari pemain. Namun metode high-fitness penalising bertujuan untuk membuat kekuatan human player dan AI seimbang atau tidak terlalu jauh. Untuk itu perlunya dilakukan modifikasi terhadap F pada formula weight adjustment sebelumnya.

Fungsi F pada formula weight-adjustment digantikan dengan F’ dengan tujuan untuk membuat fitness value yang diberikan reward yang tinggi adalah fitness value dengan nilai yang rata-rata Dan memberikan nilai reward yang kecil bahkan penalty kepada nilai fitness value yang tinggi.

3.3 Perancangan Sistem

Pada dasarnya game into the space dirancang dan dibuat hanya sebagai sarana atau contoh project yang dibuat pada unity 3D. sehingga para pengembang game yang baru belajar menggunakan unity 3D dapat memahami pembuatan game di dalam engine tersebut. Bahasa yang digunakan di dalam script pun masih dapat digolongkan kedalam basic. Oleh karena itu, dengan perubahan yang minimal diharapkan game ini dapat diimplementasikan menggunakan dynamic scripting dengan menggunakan metode high-fitness penalising.

3.3.1 Diagram Use Case

Use case adalah interaksi atau dialog antara sistem dan actor, termasuk pertukaran pesan dan tindakan yang dilakukan oleh sistem. Use case juga menggambarkan hal-hal apa saja yang bisa dilakukan oleh actor terhadap sistem.

Untuk permainan into the space, diagram use case yang digunakan adalah sebagai berikut.

(33)

Gambar 3. 2 : Diagram use case

Untuk menjelaskan diagram use case di atas maka diperlukannya skenario use case. Skenario use case menjelaskan tentang setiap proses yang terjadi pada diagram use case, dimana pengguna / pemain memberikan perintah yang kemudian sistem akan menanggapi atau merespon perintah mereka dan menjalankannya.

Tabel 3. 6 : Tabel Perbandingan Tinjauan Pustaka Identifikasi

Nomor 1 Nama Play

Tujuan Masuk kedalam permainan Aktor Pemain

Kondisi Awal

Pemain Berada Di Menu

Aksi Aktor Reaksi Sistem

1. Aktor menekan tombol bermain

2. menampilkan gameplay dari game into the space

KONDISI AKHIR

Player atau pemain akan langsung memasuki scene bermain dan mulai bermain permainan into the space

(34)

3.3.2 Diagram Robustness

Robustness diagram membantu untuk menghumbungkan atau menjembatani adanya ruang kosong dari analisis desain terhadap implementasi coding-nya. berdasarkan usecase yang telah ada sebelumnya maka dapat dibuat diagram robustness untuk game into the space ini seperti yang ditunjukkan oleh gambar dibawah.

Gambar 3. 3 : Diagram robustness

3.3.3 Diagram Sequence

Sequence diagram menampilakan interaksi antar objek di dalam sistem yang disusun pada sebuah urutan interaksi termasuk pengguna, display yang menggambarkan skenario untuk menghasilkan output tertentu.

(35)

Gambar 3. 4 : Diagram sequence

3.3.4 Diagram Class

Diagram class digunakan untuk menampilkan kelas-kelas yang akan di dalam sistem nantinya. Hubungan antar kelas juga dapat dilihat melalui diagram ini. Diagram class untuk permainan into the space adalah sebagai berikut.

(36)

Gambar 3. 5 : Diagram class

3.3.5 Penambahan Sistem

Setelah mendapatkan informasi tentang kekuatan musuh yang terdapat pada permainan into the space, maka diperlukannya penambahan terhadap aksi-aksi yang dapat dilakukan oleh musuh-musuh tersebut. Penambahan ini diperlukan karena aksi-aksi yang dimiliki aslinya sangatlah minim yang mungkin bisa mengakibatkan minimnya pilihan aksi pada saat diimplementasikan dynamic scripting dengan menggunakan metode high-fitness penalising di dalamnya.

Pada diagram UML telah dijelaskan bahwa adanya penambahan aksi dan class rulebase yang akan menampung aksi-aksi tersebut. untuk memperjelas penambahan aksi yang dilakukan terhadap game into the space bisa dilihat dari tabel berikut.

(37)

Tabel 3. 7 : Tabel Penambahan Aksi

Sebelum Sesudah

Musuh bergerak maju 

Musuh bisa menembak 

Musuh bisa bergerak dengan kecepatan double

Musuh bisa bergerak serong kanan dan kiri

Musuh bisa memiliki pelindung Musuh bisa menghindari tembakan

player

Musuh bisa menambrakan diri dengan player

3.3.6 Rulebase

Rulebase berisikan aturan-aturan yang berfungsi untuk menjadi aksi yang dapat digunakan musuh dalam melawan lawannya. Aksi-aksi yang telah terdapat pada musuh baik sebelum dan sesudah modifikasi dipindahkan ke dalam script rulebase dan nantinya dengan menggunakan algoritma weight adjustment dan juga script generation musuh dapat memilih aksi dari dalam rulebase untuk digunakan. Rulebase yang telah dirancang untuk game into the space adalah seperti berikut.

(38)

Gambar 3. 6 : Rulebase Enemy 3.4 Alat dan Bahan

Agar implementasi dynamic scripting dengan menggunakan metode high-fitness penalising ini dapat diselesaikan maka haruslah didukung dengan perangkat keras dan perangkat lunak yang sesuai. Karena kebutuhan ini sangat penting untuk menentukan proses keberhasilan. Alat-alat yang dibutuhkan dalam implementasi dynamic scripting dengan menggunakan metode high-fitness penalising ini baik perangkat keras ataupun perangkat lunak antara lain.

3.4.1 Kebutuhan Hardware

Perangkat keras yang dibutuhkan untuk implementasi dynamic scripting dengan menggunakan metode high-fitness penalising ini adalah sebuah perangkat komputer maupun laptop yang memiliki spesifikasi minimal sebagai berikut:

1. Processor core I 3 generasi 4 2. Harddisk 500 GB

3. Graphic card middle class dengan VRAM 1 GB 4. RAM 4 GB

(39)

3.4.2 Kebutuhan Software

Untuk kebutuhan Software atau perangkat lunaknya baik yang digunakan pada Komputer maupun laptop adalah sebagai berikut:

1. Sistem operasi Windows maupun machintos pada perangkat komputer atau laptop

2. Unity 3d V 5.03f 3. Borland delphi 5 4. Notepad ++

(40)

BAB IV

HASIL DAN PEMBAHASAN

Tahapan implementasi merupakan tahapan lanjutan dari tahapan perancangan yang telah dijelaskan sebelumnya. tahapan dalam mengimplementasikan dynamic scripting dengan metode high-fitness penalising ini antara lain membuat rulebase yang berisikan aksi-aksi yang dapat digunakan oleh dynamic team, mengimplementasikan algoritma script generation yang berfungsi untuk menentukan aksi-aksi apa saja yang nantinya akan digunakan oleh dynamic team , mengimplementasikan algortima weight adjustment yang berfungsi untuk melakukan penyesuaian bobot aksi-aksi yang terdapat di dalam rulebase. Memodifikasi game Into The Space agar dapat diujikan terhadap algoritma yang telah diterapkan sebelumnya.

4.1 Inisialisasi Variabel

Inisalisasi variabel merupakan pemberian nilai awal untuk variabel-variabel tertentu. Sehingga pada saat pertama kali diujikan variabel- variabel tersebut sudah memiliki nilai masing-masing yang nantinya akan digunakan di dalam proses penyesuaian bobot dan juga di dalam memilih aksi-aksi yang akan digunakan nantinya. Berikut adalah nilai awal dari variabel-variabel tersebut.

Tabel 4. 1 : Instansiasi Variabel

Variabel Value Variabel Value

Wmax 2000 Pmin 0.65

Winit 100 Pinc 0.01

Wmin 0 B 0.3

Pinit 0.7 Scriptsize 3

(41)

4.2 Hasil Implementasi

4.2.1 Implementasi Aksi Pada Dynamic Team

Jika pada awalnya aksi pada dynamic team sudah ditentukan, maka setelah ditambahkan aksi yang terdapat di dalam rulebase maka dynamic team akan dapat memilih aksi-aksi mana saja sesuai dengan yang telah dihasilkan oleh algortima script generation.

Gambar 4. 1 : Aksi yang dapat dipilih Enemy

Seperti yang terlihat pada gambar di atas bahwa salah satu dari dynamic team sudah memiliki Rules (aksi) yang nantinya akan dapat aktif dan non-aktif sesuai dengan hasil dari script generation . pada perancangan sudah didesain 7 aksi namun di dalam pengimplementasiannya rule ditambah hingga terdapat 10 rule yang dapat dipilih. Dalam penggunaan aksi, dynamic team dapat memilih lebih dari 1 aksi namun tidak lebih dari scriptsize. jika nantinya dari aksi yang dipilih terdapat 2 yang serupa atau dapat mengganggu aksi lainnya untuk berjalan maka rule tersebut dinon-aktifkan.

Berikut ini merupakan penjelasan dari setiap aksi yang dapat dipilih oleh dynamic team.

(42)

Tabel 4. 2 Penjelasan Fungsi aksi sesuai index

Index Rule Deskripsi

Rule 0 Move Forward (Maju Kedepan) Rule 1 Right Slice (Bergerak diagonal kanan) Rule 2 Left Slice (Bergerak diagonal kanan) Rule 3 Shield (memunculkan pelindung)

Rule 4 Nembak

Rule 5 Avoid (menghindar dari peluru player) Rule 6 Harakiri (musuh bergerak menuju player) Rule 7 Accurate Fire (musuh menembak sesuai dengan posisi

player)

Rule 8 Nembak Lv2 (Menembak 3 peluru dalam 1 waktu dengan 3 arah yang berbeda)

Rule 9 Double Speed (Maju Kedepan Dengan Kecepatan 2x lipat

Rule 10 Mechine Gun (Menembak dengan interval perluru yang lebih kecil

Rule 11 Deadly Harakiri (Langsung bunuh player jika terkena) Rule 12 Nembak Lv2 (Dengan Interval yang lebih cepat)

Dapat dipilihnya lebih dari satu aksi dapat menciptakan suatu taktik bertarung yang baru. Misalnya rule yang dipilih adalah harakiri dan double speed yang mengakibatkan kekuatan dari harakiri sendiri menjadi 2x lipat.

Saat pertama kali dijalankan atau diujikan maka tentunya belum ada aksi yang terpilih karena algortima baru berjalan setelah pertarungan pertama maka dari itu diperlukannya aksi default yang dipasang jika tidak ada rule yang terpilih yaitu Rule 0 yang isinya adalah bergerak maju.

(43)

4.3 Pengujian Sistem

Pengujian dynamic scripting dengan metode high-fitness penalising pada game berjenis arcade ini dilakukan sebanyak 100 kali percobaan dimana dalam 1 kali percobaan terdapat 150 kali pertarungan antara static team dengan dynamic team Sehingga maximal pertarungan yang dapat terjadi adalah sebanyak 15.000 kali. Dan data yang diambil adalah dari data ke 51 kali pertemuan. Pertemuan yang sebelumnya dianggap sebagai pemanasan sistem.

1 Percobaan = 150 Encounters

100 percobaan = 15000 Encounters Max 1 Encounter = 4 Enemy

Jika static team dapat melewati 1 encounters maka pemain tersebut menang jika tidak maka kalah.

Pemain tidak harus menghancurkan semua dynamic team agar dapat menang , menghindar dari dynamic team juga dianggap menang.

Setelah dilakukan pengujian terhadap game Into The Space sebanyak 100 kali percobaan, sebanyak 15000 pertarungan terjadi. Berikut adalah contoh data dari hasil pertempuran dengan dynamic team.

IMPLEMENTASI DYNAMIC SCRIPTING MENGGUNAKAN METODE HIGH-FITNESS PENALISING || NICKO SURYA PRATAMA 4311301074

GAMES : 5 ENCOUNTER : 17 KALAH : 0 ENEMY FITNESS : Enemy 0: 0.168 Enemy 1: 0.163 Enemy 2: 0.161 Enemy 3: 0.168 Penalising (f) : 0.75 BreakEven : 0.3 ========================================== WEIGHT PADA ENEMY 0

(44)

WEIGHT RULE : 158 WEIGHT RULE : 104 WEIGHT RULE : 163 WEIGHT RULE : 174 WEIGHT RULE : 231 WEIGHT RULE : 103 WEIGHT RULE : 143 WEIGHT RULE : 145 WEIGHT RULE : 141 WEIGHT RULE : 169 ========================================== WEIGHT PADA ENEMY 1

========================================== WEIGHT RULE : 188 WEIGHT RULE : 157 WEIGHT RULE : 157 WEIGHT RULE : 128 WEIGHT RULE : 152 WEIGHT RULE : 138 WEIGHT RULE : 190 WEIGHT RULE : 125 WEIGHT RULE : 150 WEIGHT RULE : 173 ========================================== WEIGHT PADA ENEMY 2

========================================== WEIGHT RULE : 161 WEIGHT RULE : 132 WEIGHT RULE : 129 WEIGHT RULE : 175 WEIGHT RULE : 165 WEIGHT RULE : 126 WEIGHT RULE : 184 WEIGHT RULE : 178 WEIGHT RULE : 145 WEIGHT RULE : 172 ========================================== WEIGHT PADA ENEMY 3

========================================== WEIGHT RULE : 159

WEIGHT RULE : 188 WEIGHT RULE : 202

(45)

WEIGHT RULE : 157 WEIGHT RULE : 116 WEIGHT RULE : 151 WEIGHT RULE : 114 WEIGHT RULE : 104 WEIGHT RULE : 197 WEIGHT RULE : 143 ========================================== RULE YANG DI PILIH

========================================== RULE PADA ENEMY 0

========================================== RULE 0 : False RULE AKTIVE 00 : 0 RULE 1 : False RULE AKTIVE 01 : 0 RULE 2 : False RULE AKTIVE 02 : 0 RULE 3 : True RULE AKTIVE 03 : 1 RULE 4 : True RULE AKTIVE 04 : 1 RULE 5 : False RULE AKTIVE 05 : 0 RULE 6 : False RULE AKTIVE 06 : 0 RULE 7 : False RULE AKTIVE 07 : 0 RULE 8 : True RULE AKTIVE 08 : 1 RULE 9 : False RULE AKTIVE 09 : 0 ========================================== RULE PADA ENEMY 1

========================================== RULE 0 : False RULE AKTIVE 10 : 0 RULE 1 : False RULE AKTIVE 11 : 0 RULE 2 : True RULE AKTIVE 12 : 1 RULE 3 : True

(46)

RULE AKTIVE 13 : 1 RULE 4 : False RULE AKTIVE 14 : 0 RULE 5 : True RULE AKTIVE 15 : 1 RULE 6 : False RULE AKTIVE 16 : 0 RULE 7 : False RULE AKTIVE 17 : 0 RULE 8 : False RULE AKTIVE 18 : 0 RULE 9 : False RULE AKTIVE 19 : 0 ========================================== RULE PADA ENEMY 2

========================================== RULE 0 : False RULE AKTIVE 20 : 0 RULE 1 : False RULE AKTIVE 21 : 0 RULE 2 : True RULE AKTIVE 22 : 1 RULE 3 : False RULE AKTIVE 23 : 0 RULE 4 : False RULE AKTIVE 24 : 0 RULE 5 : False RULE AKTIVE 25 : 0 RULE 6 : True RULE AKTIVE 26 : 1 RULE 7 : True RULE AKTIVE 27 : 1 RULE 8 : False RULE AKTIVE 28 : 0 RULE 9 : False RULE AKTIVE 29 : 0 ========================================== RULE PADA ENEMY 3

========================================== RULE 0 : False

RULE AKTIVE 30 : 0 RULE 1 : False

(47)

RULE AKTIVE 31 : 0 RULE 2 : False RULE AKTIVE 32 : 0 RULE 3 : True RULE AKTIVE 33 : 1 RULE 4 : False RULE AKTIVE 34 : 0 RULE 5 : True RULE AKTIVE 35 : 1 RULE 6 : False RULE AKTIVE 36 : 0 RULE 7 : False RULE AKTIVE 37 : 0 RULE 8 : False RULE AKTIVE 38 : 0 RULE 9 : True RULE AKTIVE 39 : 1 4.4 Pembahasan

Pada pengujian dynamic scripting dengan meggunakan metode high-fitness penalising dilakukan percobaan sebanyak 100 kali dengan 3 cara yang berbeda yaitu 100 kali dilakukan dengan mode “OFENSIVE” dimana static team berada diposisi yang lebih maju kedepan dan akan lebih memilih untuk menghancurkan dynamic team dari pada menghindar. Cara kedua adalah 100 kali mencoba melakukan mode “DEFENSIVE” dimana posisi static team berada dipaling bawah/ belakang dan static team akan terus bergerak dengan maksud untuk menghindari musuh dan yang ketiga adalah mode “OPENPLAY” dimana static team menggabungkan kedua mode sebelumnya sehingga static player bermain menghindar sekaligus menyerang. Setiap 1 kali percobaan dilakukan tes sebanyak 100 kali dengan jumlah maximum pertemuan mencapai 15000 kali. berikut ini adalah tabel rasio kemenangan antara player dengan dynamic team.

(48)

Tabel 4. 3 Tabel Hasil Pengujian

NO OFENSIVE DEFENSIVE OPENPLAY

W L W L W L 1 19 81 29 71 41 59 2 31 69 28 72 36 64 3 19 81 33 67 37 63 4 27 73 27 73 38 62 5 23 77 33 67 41 59 6 24 76 31 69 39 61 7 25 75 31 69 38 62 8 21 79 33 67 45 55 9 18 82 36 64 41 59 10 27 73 35 65 42 58 11 27 73 30 70 40 60 12 24 76 31 69 44 56 13 27 73 31 69 37 63 14 25 75 30 70 39 61 15 31 69 32 68 36 64 16 31 69 32 68 43 57 17 28 72 29 71 35 65 18 20 80 31 69 37 63 19 18 82 32 68 38 62 20 25 75 32 68 37 63 21 23 77 30 70 39 61 22 29 71 34 66 39 61 23 27 73 32 68 39 61 24 22 82 30 70 38 62 25 28 72 29 71 37 63 26 28 72 31 69 45 55 27 22 78 32 68 36 64 28 28 72 35 65 37 63 29 21 79 34 66 36 64 30 26 74 30 70 35 65 31 27 73 33 67 32 68 32 25 75 29 71 46 54 33 21 79 33 67 40 60 34 26 74 29 71 42 58 35 22 78 36 64 40 60 36 20 80 32 68 39 61 37 23 77 34 66 38 62

(49)

38 25 75 32 68 43 57 39 25 75 31 69 37 63 40 22 78 35 65 38 62 41 26 74 31 69 37 63 42 21 79 33 67 38 62 43 24 76 35 65 39 61 44 21 79 29 71 47 53 45 25 75 32 68 40 60 46 26 74 33 67 42 58 47 28 72 29 71 42 58 48 18 82 29 71 40 60 49 24 76 30 70 40 60 50 23 77 35 65 39 61 51 20 80 33 67 39 61 52 22 78 32 68 52 48 53 21 79 36 64 43 57 54 20 80 32 68 42 58 55 21 79 31 69 47 53 56 22 78 32 68 46 54 57 28 72 32 68 45 55 58 28 72 32 68 47 53 59 28 72 31 69 45 55 60 19 81 34 66 51 49 61 31 69 29 71 50 50 62 24 76 28 72 46 54 63 21 79 31 69 48 52 64 14 86 30 70 49 51 65 24 76 29 71 51 49 66 21 79 31 69 50 50 67 21 79 29 71 48 52 68 30 70 31 69 48 52 69 23 77 27 73 47 53 70 21 79 33 67 46 54 71 23 77 32 68 45 55 72 23 77 33 67 45 55 73 18 82 32 68 45 55 74 22 78 30 70 48 52 75 20 80 32 68 46 54 76 22 78 29 71 49 51 77 21 79 28 72 50 50 78 21 79 29 71 51 49

(50)

79 25 75 34 66 45 55 80 31 69 29 71 46 54 81 20 80 32 68 46 54 82 21 79 31 69 45 55 83 23 77 33 67 50 50 84 19 81 34 66 43 57 85 18 82 30 70 46 54 86 26 74 29 71 45 55 87 18 82 34 66 50 50 88 27 73 31 69 44 56 89 19 81 32 68 51 49 90 18 82 33 67 41 59 91 29 71 34 66 42 58 92 28 72 36 64 41 59 93 26 74 34 66 52 48 94 23 77 35 65 49 51 95 17 83 32 68 43 57 96 21 79 30 70 50 50 97 17 83 36 64 47 53 98 26 74 34 66 47 53 99 24 76 36 64 47 53 100 28 72 35 65 43 57

Dari tabel di atas dapat disimpulkan bahwa bermain dengan cara yang offensive terhadap dynamic scripting sangat efisien untuk mengalahkan dynamic scripting. Kemudian dengan mode defensive dynamic team sedikit memiliki peningkatan dalam mengalahkan static team. Dan yang terakhir, dengan mede openplay pertarungan antara static dan dynamic sedikit lebih berimbang walaupun masih jelas terlihat bahwa static team yang lebih unggul.

Untuk melihat apakah metode high-fitness penalising dapat menciptakan keadaan yang seimbang diantara player dan dynamic team maka berikut ini adalah tabel yang berisikan rata-rata kemenangan dan juga standart deviasi dari hasil eksperimen yang telah dilakukan.

(51)

Tabel 4. 4 Rata-Rata Kemenangan HIGH-FITNESS PENALISNG Wins St.dev. OFFENSIVE 23,49 3,75 DEFENSIVE 31,75 2,23 OPENPLAY 42,96 4,79

Untuk dapat mengukur nilai imbang pada permainan ini maka diputuskan bahwa nilai yang berada diantara 45 hingga 55 dapat dikatakan seimbang. Setelah dilakukan 100 kali percobaan dengan data hingga dapat menghasilkan 30.000 data pertempuran maka dapat disimpulkan bahwa untuk membuat permainan yang seimbang diantara pemain dan sistem dengan menggunakan dynamic scripting metode high- fitness penalising tidak efisien. Terbukti dengan hasil percobaan dimana dari antara ketiga jenis percobaan hanya satu cara saja yang sedikit mendekati nilai tolak ukur untuk permaianan yang imbang yaitu 42,96. Pada penelitian sebelumnya juga pada permainan CRPG, high-fitness penalisng juga tidak dapat mengimbangi permaian dari player.

4.5 Analisis Hasil Uji Coba

Setelah dilakukannya uji coba dynamic scripting dengan menggunakan metode high-fitness penalising maka didapatlah nilai kemenangan rata-rata dan standart deviasi terhadap 3 gaya bermain pemain yaitu ofensive, defensive dan openplay.

Pertama, hasil high-fitness penalising terhadap ofensive adalah 23,49 dengan standart deviasi sebesar 3,75. Hal ini berarti HF(high-fitness penalising) tidak mampu menghadapi melawan pemain yang memiliki sifat menyerang. Sebaliknya, pada permainan CRPG yang diujikan oleh pieter spronck, HF melawan taktik offensive mendapatkan rata-rata kemenangan yang lebih besar yaitu sebesar 46.0 (spronck, 2004).

(52)

Kedua adalah hasil HF melawan defensive. Jika melawan pemain yang lebih cenderung bertahan/menghindar, maka perlawanan HF sedikit meningkat dari lawan sebelumnya yaitu 31,75 dengan standart deviasi 2,23. Sebaliknya, pada uji coba spronck HF melawan taktik defensive maka nilai rata-ratanya menurun menjadi 39.7 (spronck, 2004)

Ketiga adalah melawan openplay. Ketika HF melawan openplay hasil yang ditunjukkan sangat signifikan yaitu dengan nilai kemenangan rata – rata 42,96 dengan standart deviasi 4,79. Hal ini juga berbeda dari hasil permainan CRPG yaitu sebesar 37,7 (spronck, 2004).

Ketika melihat perbandingan antara permainan arcade dan CRPG maka terlihat jelas bahwa pada permainan arcade melawan ketiga taktik tersebut nilai yang dihasilkan meningkat sedangankan pada CRPG menurun.

Gambar 4. 2 : Diagram hasil dari permainan minigate (CRPG)

Gambar 4. 3 : Diagram hasil dari permainan into the space

0 10 20 30 40 50

OFENSIVE DEFENSIVE RANDOM

MINIGATE (CRPG)

0 20 40 60

OFENSIVE DEFENSIVE RANDOM

(53)

Perbedaan yang terjadi selain karna memang berbeda jenis permainan, bisa jadi disebabkan pada sisi pemainnya. Karna pada minigate pertarungan yang terjadi adalah multiplayer sedangkan pada into the space adalah single player. Contohnya pada saat taktik bertahan. Pada permainan multiplayer akan ada banyak player lain yang dapat membantunya dalam bertahan yang mengakibatkan HF sulit untuk mengalahkannya. Sedangkan pada single player tidak ada backup yang akan datang sehingga bertahan bukanlah suatu pilihan yang tepat.

Namun meskipun kurang baik (dapat dikatakan gagal) dalam menghasilkan permainan yang seimbang antara player dan AI, jika melihat nilai standart deviasi setiap percobaan maka dapat dikatakan HF pada permainan berjenis arcade lebih stabil dari CRPG. Hal ini terjadi bisa karena berbagai macam hal seperti gameplay yang berbeda, rulebase, dan lain sebagainya. Pada permainan into the space sendiri rulebase yang digunakan lebih sedikit dari pada CRPG.

4.6 Diagram Histogram

Variasi kemenangan di dalam percobaan dynamic scripting dengan menggunakan metode high-fitness penalising dapat dilihat berdasarkan diagram histogram.

(54)

Pada histogram ofensive, terlihat bahwa rata-rata kemenangan HF dari 100 percobaan dengan nilai terkecil adalah 14 dan yang tertinggi adalah 33,6. Namun kebanyakan hasil rata-rata setiap percobaan berada diantara 19,6 hingga 28. Sekali lagi membuktikan bahwa HF kewalahan dalam menghadapi ofensive script.

Gambar 4. 5 Histogram Defensive

Pada histogram defensive, nilai terkecil dari rata-rata kemenangan dalam 100 kali percobaan adalah 27 dan yang tertinggi adalah 37,2. Dalam melawan defensive script, HF lebih memiliki peluang untuk mencapai kemenangan. Kebanyakan rata-rata kemenangan berada dinilai 30,4 hingga 32,1 sebanyak 35 kali dari 100 percobaan.

(55)

Gambar 4. 6 Histogram Openplay

Histogram terakhir adalah hasil dari openplay script. Jika dilihat dari hasil histogram. HF dalam melawan openplay script sebenarnya dapat membuat permainan yang seimbang. Terbukti dengan hasil histogram dimana ada sebanyak lebih kurang 25 kali percobaan yang dapat menghasilkan permainan yang seimbang yaitu antara 45 hingga 55. Namun kebanyakan hasilnya di bawah standar tersebut sehingga pada hasil akhir perhitungan, rata-rata kemenangan tetap berada di bawah standar yaitu 42,96.

(56)

BAB V

KESIMPULAN DAN SARAN 5.1 Kesimpulan

Berdasarkan tujuan yang ingin dicapai dalam pembuatan tugas akhir ini, maka dapat disimpulkan bahwa penggunaan dynamic scripting dengan menggunakan metode high-fitness penalising pada game arcade “into the space” untuk menciptakan permainan yang seimbang antara player dan AI sangat tidak disarankan karena rata-rata kemenangan tidak mencapai 45 hingga 55 seperti yang telah ditetapkan. Berdasarkan hasil dari uji coba yang telah diperoleh yaitu offensive (23,49), defensive (31,75) dan openplay (42,96).

5.2 Saran

Setelah selesainya percobaan yang dilakukan maka penulis menyarankan untuk peneliti selanjutnya untuk menggunakan lebih banyak rule karena jika dengan rule yang sedikit maka jika semua bobot dibawah 0 maka akan terjadi yang namanya infinity loops .

(57)

DAFTAR PUSTAKA

Adams. Ernest., 2010, Fundamentals of Game Design, Second Edition, New Riders Publishing, Berkley CA, USA.

Buro, M. 2003. “RTS Games as a Test-Bed for Real-Time AI Research.” Proceedings of the 7th Joint Conference on Information Science (eds. K. Chen et al.), pp. 481–484.

Pamungkas, F.J. (2013). Pembangunan Game Tradisional Kelereng Pada Perangkat Mobile. Universitas Komputer Indonesia.

Spronck, P., I. Sprinkhuizen-kuyper and E. postma 200. “Difficulty Scaling of Game AI”. University Maastricht/IKAT, pp. 1-5

Satrio, Primawan, Agung Toto Wibowo dan Bayu Munajat. 2014. Implementasi Adaptive Artificial Intelligence pada game Capture The Flag dengan metode Dynamic Scripting. Bandung. Universitas Telkom

Manuel, Ladebeck. 2008. Applying Dynamic Scripting to “Jagged Alliance 2”. German. Technische Universität Darmstadt

Spronck, P., I. Sprinkhuizen-kuyper and E. postma. 2003. Online Adaptation of Game Opponent AI In Simulation And In Practice. Proceedings of the 4th International Conference on Intelligent Games and Simulation (GAME-ON 2003) (eds. Quasim Mehdi and Norman Gough), ISBN: 90-77381-05-8, pp. 93-100. EUROSIS, Belgium.

Scott, B. 2002. “The Illusion of Intelligence”. AI Game Programming Wisdom (ed. S. Rabin). Charles River Media, pp. 16–20.

Feldman, Ari. 2001. Designing Arcade Computer Game Graphics. Texas. Wordware Publishing, Inc

Spronck, P., I. Sprinkhuizen-kuyper and E. postma. 2004. Online Adaptation of Game Opponent AI With Dynamic Scripting. International Journal of Intelligent Games and Simulation (eds. N.E. Gough and Q.H. Mehdi), March/April 2004, Vol.3, No.1, ISSN: 1477-2043, pp. 45-53. University of Wolverhampton and EUROSIS.

(58)

Spronck, P., I. Sprinkhuizen-kuyper and E. postma. 2006. Adaptive Game AI with Dynamic Scripting. Machine Learning, Vol. 63, No. 3, pp. 217-248. (Springer DOI: 10.1007/s10994-006-6205-6).

Gambar

Tabel 2.1 : Tabel Perbandingan Tinjauan Pustaka
Gambar 2.1 : Proses dynamic scripting
Gambar 2.2 : Rulebase pada game minigate
Gambar 2.3 : Diagram weight clipping dan top culling
+7

Referensi

Dokumen terkait

Menurut Fazlur Rahman bahwa kemunduran kualitas ilmu pengetahuan Islam adalah kekeringan yang gradual dari ilmu-ilmu keagamaan karena pengucilannya dari kehidupan

Dari penelitian ini diperoleh hasil, ternyata dispepsia organik dapat diderita oleh semua orang tanpa memandang faktor usia, pendidikan dan pekerjaan, pada

Fungsi ini bertugas membuat daftar gaji dan daftar tambahan penghasilan berdasarkan surat keputusan direktur Rumah Sakit Umum daerah Dr. Moewardi Surakarta, serta

1) Perhatian manajemen dititikberatkan pada maksimalisasi laba atas modal yang diinvestasikan. 2) ROA dapat dipergunakan untuk mengukur efisiensi tindakan-tindakan yang

Istilah Atraksi juga di gunakan untuk pertunjukan yang berkaitan dengan budaya daerah seperti musik, tarian, tradisi, warisan sejarah, dan kekayaan alam yang menjadi

Keyword : DM, Pulmonary TB, Random blood glucose levels , X-ray chest. Universitas

a. Bapak Munir selaku guru Madrasah Ibtidaiyah Negeri 4 Tulungagung yang mengajar mata pelajaran Al- Qur’an Hadits dikelas 5 pada jam 12.30 menggunakan model kooperatif

Sumber data berasal profil kesehatan 2010, registrasi penyebab kematian yang telah diimplementasikan sejak 2010 di Kabupaten Gianyar serta Survei Demografi dan Kesehatan Indonesia