• Tidak ada hasil yang ditemukan

IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME ARCADE DENGAN MODE AUTOMATIC PLAYER MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL NETWORK (GANN)

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME ARCADE DENGAN MODE AUTOMATIC PLAYER MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL NETWORK (GANN)"

Copied!
67
0
0

Teks penuh

(1)

IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME

ARCADE DENGAN MODE AUTOMATIC PLAYER

MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL

NETWORK (GANN)

TUGAS AKHIR

Oleh :

Ariyandi Restu Kesuma 4311301037

Disusun untuk memenuhi syarat kelulusan Program Diploma DIV

PROGRAM TEKNIK MULTIMEDIA JARINGAN POLITEKNIK NEGERI BATAM

BATAM 2017

(2)

HALAMAN PENGESAHAN

IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME

ARCADE DENGAN MODE AUTOMATIC PLAYER

MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL

NETWORK (GANN)

Oleh :

Ariyandi Restu Kesuma (4311301037)

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

Sarjana Sains Terapan di

PROGRAM STUDI DIPLOMA 4 TEKNIK MULTIMEDIA JARINGAN POLITEKNIK NEGERI BATAM

Batam, 3 Juli 2017 Disetujui oleh; Pembimbing, ___________________ Riwinoto, ST. M. Kom NIP. 197908062012121001

(3)

HALAMAN PERNYATAAN

Dengan ini, saya:

NIM : 4311301037

Nama : Ariyandi Restu Kesuma

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

IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME

ARCADE DENGAN MODE AUTOMATIC PLAYER

MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL

NETWORK (GANN)

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, 3 Juli 2017

Ariyandi Restu Kesuma 4311301037

(4)

ABSTRAK

IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME

ARCADE DENGAN MODE AUTOMATIC PLAYER

MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL

NETWORK (GANN)

Game Arcade adalah jenis game yang tidak terfokus pada cerita, melainkan hanya dimainkan untuk mencari kepuasan dan kesenangan tersendiri “just for fun” atau untuk kejar mengejar point / highscore. Game Arcade ini memiliki ketertarikan tersendiri, yang biasanya digunakan untuk memberikan keseruan dalam bermain

game karena karakter utama dapat melakukan berbagai aksi sesuai pola dari

platform game yang disediakan dan keseruan tentang bagaimana menemukan cara yang paling tepat agar game dapat terus berjalan hingga mendapat skor tertinggi. Karena itu game saat ini tidak hanya sebagai media penghibur, namun di dalam

game kita juga dapat memberikan informasi, dan melatih sistem motoric, reflek, serta bagaimana membaca dan membuat strategi dengan memainkan game tersebut. AI(Artificial Intelligence) merupakan salah satu komponen di dalam game dimana dengan hadirnya Artificial Intelligent permainan akan terasa lebih menarik.

Artificial Intelligent pada dasarnya merupakan bagian dari sistem yang dapat mengambil keputusan sendiri dan biasanya diletakkan pada musuh, namun pada projek ini Artificial Intelligent akan ditempatkan pada karakter game yang bertujuan untuk dapat menunjukkan kemampuan dari karakter dalam memecahkan masalah didalam game. Artificial Intelligence dapat digunakan untuk tujuan yang bermacam-macam termasuk salah satunya adalah membuat karakter dapat beradaptasi dengan masalah yang ada pada game dengan menemukan solusinya sendiri.

(5)

ABSTRACT

IMPLEMENTASI DYNAMIC SCRIPTING PADA GAME

ARCADE DENGAN MODE AUTOMATIC PLAYER

MENGGUNAKAN ALGORITMA GENETIKA DAN NEURAL

NETWORK (GANN)

Arcade Game is a type of game that is not focused on the story, but only played to find satisfaction and pleasure "just for fun" or to chase after the point / highscore. This Arcade game has its own interest, which is usually used to provide excitement in game play. Because the main character can perform various actions according to the pattern of the game platform provided and excitement about how to find the most appropriate way for the game to continue running to get the highest score. Therefore, the current game is not only a media entertainer, but in the game we can also provide information, and train the motor system, reflexes, and how to read and create strategies by playing the game.

AI (Artificial Intelligence) is one component in the game where with the presence of Artificial Intelligent game will feel more interesting. Artificial Intelligent is basically a part of the system that can make its own decisions and is usually placed on the enemy, but in this project Artificial Intelligent will be placed on game characters that aims to show the ability of characters in solving problems in the game. Artificial Intelligent can be used for various purposes including one of which is to make the characters able to adapt to the problems that exist in the game by finding their own solutions.

(6)

KATA PENGANTAR

Bismillahirrahmanirrahim,

Assalamu’alaikum Warahmatullahi Wabarakatuh.

Segala puji bagi Tuhan Yang Maha Esa yang telah memberikan Rahmat dan Karunia-Nya kepada penulis sehingga dapat menyelesaikan Tugas Akhir yang berjudul Implementasi Dynamic scripting pada Game Arcade dengan mode

Automatic Player menggunakan Genetika Algoritma dan Neural Network

(GANN). Game ini diolah untuk mengiplementasikan sebuah game 3D yang di buat dalam engine 3D yaitu dengan program aplikasi Unity 3D.

Tidak lupa penulis sampaikan terima kasih kepada orang tua dan keluarga besar yang selalu memberikan doa, semangat, arahan, kasih sayang, dan dukungan kepada penulis dan dosen pembimbing yang telah membantu serta membimbing dalam mengerjakan tugas akhir ini. Penulis menyadari bahwa dalam penyusunan tugas akhir ini masih jauh dari kesempurnaan, untuk itu penulis sangat mengharapkan kritik dan saran yang berguna untuk kesempurnaan laporan ini. Akhirnya penulis mengharapkan semoga laporan ini dapat memberikan manfaat, terutama pembaca, terima kasih.

Batam, 3 Juli 2017

(7)

DAFTAR ISI

HALAMAN PERNYATAAN ... iii

ABSTRAK ... iv

ABSTRACT ... v

KATA PENGANTAR ... vi

DAFTAR ISI ... viii

DAFTAR GAMBAR ... ix DAFTAR TABEL ... x BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Batasan Masalah ... 4 1.4 Tujuan Penelitian ... 4 1.5 Manfaat Penelitian ... 5 1.6 Tinjauan Pustaka ... 5 1.7 Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 7

2.1 Dasar Teori ... 7 2.1.1 Pengertian Game ... 7 2.1.2 Unity 3D ... 8 2.1.3AI (Artificial Intelligence) ... 11 2.1.4 Bahasa Pemrograman C# ... 11 2.1.5 Dynamic scripting ... 13 2.1.6 Algoritma Genetika ... 15 2.1.7 Neural network ... 17

BAB III ANALISA DAN PERANCANGAN ... 20

3.1 Analisa Sistem ... 20

3.1.1 Analisis Kemampuan Karakter ... 20

3.1.2 Analisa Kebutuhan Fungsional ... 21

(8)

3.2 Analisa Perancangan ... 22

3.3 Sistematika Perancangan ... 22

3.3.1 Genetika Algoritma dan Neural network ... 24

3.4 Perancangan Sitem ... 26 3.4.1 Diagram Usecase ... 26 3.4.2 Diagram Robustnes ... 27 3.4.3 Diagram Sequence ... 28 3.4.4 Diagram Class ... 29 3.4.5 Penambahan Sistem ... 29

3.5 Alat dan Bahan... 31

3.5.1 Kebutuhan Hardware ... 31

3.5.2 Kebutuhan Software ... 31

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 31

4.1 Implementasi ... 31

4.1.1 Implementasi Tampilan Karakter ... 31

4.1.2 Tampilan Layar Bermain ... 32

4.2 Pengujian ... 33

4.2.1 Analisis Hasil Pengujian ... 33

4.3 Hasil Implementasi ... 34

4.3.1 Implementasi Dynamic Scripting pada Game ... 34

4.3.2 Implementasi Genetika Algoritma ... 35

4.3.3 Implementasi Neural Network ... 36

4.4 Pembahasan ... 40

4.5 Analisa Hasil Uji Coba ... 43

BAB V KESIMPULAN DAN SARAN ... 45

5.1 Kesimpulan ... 45

5.2 Saran ... 45

(9)

DAFTAR GAMBAR

Gambar 2.1 Tampilan Unity 3D ... 8

Gambar 2.2 Proses Dynamic Scripting ... 13

Gambar 2.3 Rulebase pada Game Minigate ... 14

Gambar 2.4 Siklus Algoritma Genetika ... 16

Gambar 2.5 Artificial Neural Network ... 17

Gambar 3.1 Desain Penelitian ... 21

Gambar 3.2 Deskripsi Neural Network pada karakter Game ... 23

Gambar 3.3 Pola Neural Network ... 23

Gambar 3.4 Input Neural Network... 24

Gambar 3.5 Ketentuan yang diterapkan Genetika Algoritma ... 24

Gambar 3.6 Diagram Use Case ... 25

Gambar 3.7 Diagram Robustness ... 27

Gambar 3.8 Diagram Sequence... 27

Gambar 3.9 Diagram Class ... 28

Gambar 4.1 Mobil/Karakter Game ... 31

Gambar 4.2 Layar Gameplay ... 32

Gambar 4.3 Tampilan Layar saat dimainkan ... 33

Gambar 4.4 Aksi yan dilakukan Karaker Game ... 34

Gambar 4.5 Diagram perkembangan Bestfitness tiap generasi ... 43

(10)

DAFTAR TABEL

Tabel 3.1 Karakter pada game Steer Car Through Tracks ... 20

Tabel 3.2 Identifikasi Gameplay ... 26

Tabel 3.3 Penambahan aksi ... 29

Tabel 4.1 Contoh tabel pengujian ... 33

Tabel 4.2 Penjelasan fungsi aksi sesuai index ... 34

Tabel 4.3 Index Genetika Algoritma ... 35

Tabel 4.4 Index Genome ... 36

Tabel 4.5 Index Neuron... 37

Tabel 4.6 Index Neural Layer ... 37

Tabel 4.7 Index Neural Network ... 38

Tabel 4.8 Hasil pengujian Game ... 40

(11)

BAB I PENDAHULUAN

1.1 Latar Belakang

Game atau permainan adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga ada yang menang dan ada yang kalah, biasanya dalam konteks tidak serius atau dengan tujuan refreshing (Dawang Muchtar, 2005).

Pieter Spronck (2004) melakukan penelitian dengan teknik baru menggunakan

dynamic scripting untuk adaptasi online dalam permainan Artificial Intelligent,

dynamic scripting mengoptimalkan bermaian game Artificial Intelligent. Pieter Spronck meneliti 3 (tiga) perangkat tambahan yang berbeda untuk teknik dynamic scripting, yaitu High-FitnessPenalising, Weight Clipping dan Top culling.

Menurut Li, Rao dan Wu (2008) mengatakan bahwa kepuasan pemain merupakan hal yang mempengaruhi intensi permainan, semakin puas seorang pemain maka akan merasakan kecanduan dan semakin sering memainkan game tersebut. Pentingnya kepuasan pemain salah satu mempengaruhi masalah tingkat kesulitan pada game, pada kasus Pieter Spronck (2004) mengatakan bahwa umumnya ketidakpuasan pemain game dengan kualitas game Artificial Intelligent yang mengontrol lawan membuat pemain lebih memilih lawan yang dikendalikan oleh manusia, namun lawan yang dikendalikan oleh manusia tidak tersedia.

Menurut Adams (2009) game dibedakan dengan genre, genre diperlukan agar setiap

game bisa dibedakan menurut jenisnya. Genre dalam sebuah game dibagi menjadi beberapa jenis genre yaitu action, adventure, role playing game (RPG), simulation, sport, strategy, arcade dan sebagainya. Pieter Spronck melakukan uji coba dengan menggunakan game RPG, dan pada papernya menyarankan melihat jenis game

(12)

Perkembangan teknologi kini memungkinkan game untuk dapat beradaptasi dengan sendirinya. Artificial Intelligent adalah contoh yang tepat dari perkembangan teknologi game sekarang ini, dengan dynamic scriptinggame baik player, enemy, maupun environtment dapat memiliki kemampuan beradaptasi dengan jalannya permainan.

Pada game yang mengandung Artificial Intelligent, penting untuk menunjukan tingkah laku dari setiap Artificial Intelligence pada game terlihat dan terasa cerdas juga berbeda dan baru saat setiap kali game dimainkan oleh pemain.

Neural network tidak biasanya digunakan dalam game, namun dengan menggunakan neural network sebuah kemampuan beradaptasi dari gameArtificial Intelligent dapat lebih dimaksimalkan. Dengan neural networok game Artificial Intelligent dapat dengan mudah menyesuaikan behavior atau tingkah lakunya berdasarkan tindakan dari pemain atau cara bermain.

Genetika Algoritma (GA) adalah cara untuk lebih mengoptimalkan fungsi neural network. Dengan menambahkan genetika algoritma pada neural network dapat meningkatkan efisiensi dari fungsi neural network, karena neural network tidak mempengaruhi learning performance dari sebuah game secara signifikan. Genetika algoritma dapat digunakan untuk melatih weight dari neural network dan sangat mempengaruhi evolusi dari neural network pada sistem. Genetika algoritma menggunakan konsep biologi dari teori evolusi. Evolusi pada genetika algoritma dilakukan dengan melakukan beberapa langkah seperti: initial population of individuals, langkah ini dilakukan diawal dimana populasi dibentuk dari random individuals. Individu-individu tadi berevolusi lalu digantikan dengan offspring yang baru dari evolusi tadi. Setiap individu lalu dievaluasi dan diberikan penilaian berupa

fitness rank melalui fitness function. Top rank dari individu dipilih lalu dikawinkan atau dipadukan dan menghasilkan offspring melalui proses crossover dan mutation.

Offspring tadi lalu menggantikan worse rangked individual atau rank terburuk dari individu-individu.

(13)

Dari latar belakang diatas penulis tertarik dan merasa game arcade layak untuk di kembangkan dan di teliti. Dengan mengimplimentasikan dynamic scripting

menggunakan neural network dan genetic algoritma pada karakter dalam game, penulis ingin melihat bagaimana hasil dari implimentasi ini nantinya, apakah karakter akan berhasil dalam mengatasi aturan permainan atau tidak, sehingga game

akan berjalan secara otomatis tanpa user control, dan bagaimana karakter dapat memecahkan masalah yanga ada pada game menggunakan dynamic scripting

melalui algortima pendukung yaitu neural network dan genetic algoritma.

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas, maka rumusan masalah yang akan dikaji dalam Tugas Akhir, yaitu:

1. Bagaimana cara mengimplementasikan Dynamic scripting pada game Arcade

dengan genetika algoritma dan neural network (GANN) melalui Unity 3D Platform ?

2. Bagaimana membuat player dapat beradaptasi dengan game secara otomatis melalui proses pembelajaran yang ditanamkan menggunakan implementasi

dynamic scripting?

3. Bagaimana hasil dari proses pengujian game menggunakan Dynamic scripting

pada gamearcade dengan genetika algoritma dan neural network (GANN) ?

1.3 Batasan Masalah

Adapun batasan masalah yang membatasi ruang lingkup yang bersangkutan pada tugas akhir ini adalah:

1. Game ini dimainkan pada PC. 2. Game ini diolah dalam bentuk 3D .

(14)

3. Pengimplementasian dynamic scripting, genetika algortima dan neural network

menggunakan bahasa pemograman C#

4. Game ini masih dalam bentuk trial / demo version

5. Game hanya untuk Single Player dengan mode automatic player.

6. Game diuji dengan menerapkan Dynamic scripting dengan algoritma genetika dan neural network.

1.4 Tujuan Penelitian

Adapun tujuan pada tugas akhir ini adalah:

1. Mengimplementasikan dynamic scripting pada game Arcade dengan genetika algoritma dan neural network sebagai bentuk implementasi pembuatan game 3D di Software 3D.

2. Game ini diolah dalam bentuk 3D untuk memberikan kesan grafik yang sederhana namun memiliki konsep adaptasi permainan yang menarik sehingga dapat menjadi acuan penelitian selanjutnya.

3. Mengimplementasi dynamic scripting pada Artificial Intelligence objek player

dengan konsep genetika algoritma dan neural network.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah jika berhasil dapat menerapkan dynamic scripting

dengan mode automatic player untuk game berjenis arcade, serta dapat menjadi acuan untuk penelitian selanjutnya mengenai bahasan yang serupa.

1.6 Tinjauan Pustaka

Libor Zachoval (2016), melalui projeknya di Institute of Technology Carlow melakukan penelitian mengenai perkembanan game computer, dimana ia

(15)

melakukan serangkaian tes untutk membandinkan tingkat efektifitas adaptasi objek terhadap game antara neural network dan scripted Artificial Intelligence.

Pieter Spronck (2004) melakukan penelitian dengan teknik baru menggunakan

dynamic scripting untuk adaptasi online dalam permainan artificial intelligence,

dynamic scripting mengoptimalkan bermaian game artificial intelligence. Pieter Spronck meneliti 3 perangkat tambahan yang berbeda untuk teknik dynamic scripting, yaitu High-Fitness Penalising, Weight Clipping dan Top culling.

Agus Zainal Arifin (2011) telah melakukan penelitian pada realtime pathfinding

menggunakan minimal memory abstraction dan jaringan syaraf tiruan dalam permainan computer. Dalam penelitiannya Ia mengemukakan bahwa neural network dapat digunakan dalam permainan komputer untuk melakukan fungsi path finding yang efektif. Neural network menjadi salah satu solusi yang optimal dalam permainan komputer dengan konsep ini.

1.7 Sistematika Penulisan

Untuk memberikan gambaran umum mengenai penelitian yang dijalankan, sistematika penulisan ini adalah sebagai berikut:

BAB I : PENDAHULUAN

Bab ini berisi penjelasan singkat mengenai latar belakang, rumusan masalah, batasan masalah, tujuan, dan sistematika penulisan.

BAB II : LANDASAN TEORI

Bab ini berisi penjelasan mengenai konsep dasar dan teori-teori yang berkaitan dengan topik yang dilakukan, yang berupa pengertian dan definisi.

(16)

BAB III : ANALISIS DAN PERANCANGAN

Bab ini berisi penjelasan mengenai rancangan secara rinci yang akan dijadikan sebagai landasan dalam proses implementasi.

BAB IV : IMPLEMENTASI DAN PENGUJIAN

Berisi tentang implementasi dan hasil pengujian yang telah diolah dari rancangan pada bab sebelumnya

BAB V : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang di peroleh dari game yang telah diolah, kesimpulan diambil berdasarkan hasil pengujian yang dilakukan. Serta saran-saran menyangkut pengembang sistem kedepannya.

(17)

BAB II

LANDASAN TEORI

2.1 Dasar Teori 2.1.1 Pengertian Game

Game berasal dari kata bahasa inggris yang memiliki arti dasar permainan. Permainan dalam hal ini merujuk pada pengertian “kelincahan intelektual” (intellectual play ability). Game juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Ada target-target yang ingin dicapai pemainnya. Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu untuk dimainkan secara maksimal.

2.1.1.1 Jenis-Jenis Game

Berdasarkan jenis aliran permainannya, game terbagi dalam beberapa jenis diantaranya:

1. Tembak-tembakan (Shooting): Video game jenis ini sangat memerlukan kecepetan refleks, koordinasi mata-tangan dan juga waktu, inti dari game jenis ini adalah tembak, tembak dan tembak. Contoh: GTA dan Crysis.

2. Pertarungan (Fighting): Game yang permainannya memerlukan refleks dan koordinasi mata dan tangan dengan cepat, tetapi inti dari game ini adalah penguasaan hafalan jurus. Contoh: Mortal Kombat dan Tekken.

3. Petualangan (Adventure): Game yang lebih menekankan pada jalan cerita dan kemampuan berfikir pemain dalam menganalisa tempat secara visual, memecahkan teka-teki maupun menyimpulkan berbagai peristiwa. Contoh: Kings Quest dan Space Quest.

4. Simulasi, Konstruksi, Manajemen: Video game jenis ini seringkali menggambarkan dunia di dalamnya sedekat mungkin dengan dunia nyata dan memperhatikan dengan detail berbagai berbagai faktor. Contoh: The Sims.

(18)

5. Strategi : Game jenis ini memerlukan koordinasi dan strategi dalam memainkan permainan. Kebanyakan game strategi adalah game perang. Contoh : Warcraft. 6. Olahraga (Sport): Game ini merupakan adaptasi dari kenyataan, membutuhkan kelincahan dan juga strategi dalam memainkannya. Contoh: Winning Eleven dan NBA

7. Teka-Teki (Puzzle): Game teka-teki, pemain diharuskan memecahkan teka-teki dalam game tersebut. Contoh: Tetris, Minesweeper dan Bejeweled

8. Edukasi (Education) Video game jenis ini diolah dengan tujuan spesifik sebagai alat pendidikan. Developer yang membuatnya, harus memperhitungkan berbagai hal agar game benar-benar dapat mendidik, menambah pengetahuan dan meningkatkan ketrampilan yang memainkannya. Target segmentasi pemain harus pula disesuaikan dengan tingkat kesulitan dan design visual ataupun animasinya. Contoh: Bobi Bola, Dora the explorer, Petualangan Billy dan Tracy.

9. Arcade game adalah genre game yang tidak terfokus pada cerita, melainkan hanya dimainkan untuk kesenangan saja ”just for fun” atau untuk kejar-mengejar point / highscore.

2.1.2 Steer Car Through Tracks

Steer car through tracks adalah nama game 3De dengan tipe balap (racer), game ini dirilis pada tanggal 14 desember 2015 lengkap dengan code dan grafis oleh salah satu mahasiswa luar negeri bernama Sanye, dan game ini dibuat olehnya dengan tujuan pembelajaran. Game steer car through tracks dapat didownload secara gratis serta full project di github dengan link https://github.com/ab9x3jhx6a. Berikut adalah tampilan dari permainan steer car through tracks yang bisa dilihat pada gambar 2.1.

(19)

Gambar 2.1 Game Steer Car Through Tracks

Gamesteer car through tracks ini memiliki tema mobil balap, dimana memiliki 1

player yang akan menyusuri sebuah track, dengan dibatasi oleh dinding track.

Game ini dimainkan perseorangan dengan tujuan untuk menyelesaikan track dengan efisien melalui pergerakan yang mendasar yaitu maju, belok kiri dan kanan, dan berputar.

2.1.3 Unity 3D

Unity 3D adalah sebuah gamedevelopingsoftware. Dengan software ini, kita bisa membuat game 3D, karena game developer ini sangat mudah menggunakannya, dengan GUI yang memudahkan kita untuk membuat mengedit dan membuat script

untuk menciptakan sebuah game 3D. Gambar 2.2 dibawah ini adalah contoh tampilan workspace dari unity 3D.

(20)

Gambar 2.2 Tampilan Unity 3D (sumber : dokumen pribadi )

Selain bisa untuk build game PC, Unity juga dapat digunakan untuk membangun

game console seperti Nintendo Wii, PS3, Xbox 360, juga Ipad, Iphone, & android. Namun masing-masing membutuhkan biaya lisensinya sendiri. Unity lebih kurang sama dengan Blender game engine hanya unity lebih ringan dan diintegrasi lebih didalam suasana grafik. Bahasa pemrograman yang dapat diterima Unity adalah JavaScript, CS Script (C#) & Boo Script. Unity tergolong cukup mudah untuk dikuasai.

Kelebihan unity yaitu multiple platform, maksudnya banyak platform yang disupport oleh Unity, misal Windows, Mac, iPhone, iPad, Android, Nintendo Wii, dan juga browser. Untuk browser, kita memerlukan sebuah plugin, yaitu Unity Web

Player, sama halnya dengan Flash Player pada Browser. Bahasa pemrograman yang digunakan bermacam-macam, mulai dari Javascript, C#, dan Boo.

Unity memiliki beberapa komponen yang harus diketahui oleh perancang dan pengembang game, yaitu:

a. Asset

Asset pada unity sama artinya dengan bahan – bahan yang akan kita gunakan didalam perancangan game. File seperti gambar, model 3D, suara dan lain – lain pada perancangan game disebut sebagai asset didalam unity

(21)

b. Scene

Scene adalah lapisan atau layar yang akan digunakan untuk menampung semua konten dalam game. Didalam scene terdapat satu atau beberapa asset, tergantung dari kegunaan dan fungsi scene itu tersendiri. Scene ini sendiri merupakan tempat untuk memproses bagian game yang akan dipanggil.

c. Game Objek

Game objek adalah hasil penggabungan ketika asset digunakan didalam scene. Ketika asset tersebut dimasukkan kedalam sebuah scene maka unity akan memproses asset tersebut sebagai objek dari game.

d. Coding

Coding merupakan bagian yang paling penting dalam perancangan sebuah

game. Seperti yang telah dijelaskan diatas, bahasa pemograman yang dapat digunakan didalam unity adalah C#, Javascript dan Boo. Penulisan coding dapat menggunakan editor yang sudah disediakan oleh unity yaitu Uniscite.

e. Komponen

Komponen digunakan untuk menciptakan, mendefinisikan aspek – aspek dari fungsi suatu objek dalam game. Dengan menggunkana komponen dalam unity, perancang dapat menciptakan unsur – unsur sederhana pada game, seperti lampu, kamera, effek partikel, animasi, dan lainnya.

f. Prefabs

Prefabs merupakan fitur pada unity yang menyimpan asset yang sudah diimport menjadi suatu objek bentuk yang dapat digunakan sebagai template pada scene. Asset yang diolah menjadi prefabs dapat digunakan secara langsung didalam scene tanpa harus melakukan pengaturan ulang pada asset tersebut.

(22)

2.1.4 Artificial Intelligence (AI)

Artificial Intelligence atau hanya disingkat AI didefinisikan sebagai kecerdasan entitas ilmiah. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Artificial Intelligence dapat dibagi menjadi 2, yang pertama adalah agen, yang berarti karakter virtual dalam dunia game. Biasanya adalah musuh, tapi bisa juga

Non-playable characters, karakter bantuan, atau bisa juga digunakan untuk suatu animasi.

Permasalahan pencarian merupakan yang sering dijumpai oleh peneliti di bidang kecerdasan buatan. Permasalahan ini merupakan hal penting dalam menentukan keberhasilan sistem kecerdasan buatan. Metode pencarian yang pertama adalah metode yang sederhana yang hanya berusaha mencari kemungkinan penyelesaian. Metode yang termasuk pada bagian ini adalah deptfirst search, hill climbing, breadth-first search, beam search dan best-first search.

2.1.5 Bahasa Pemrograman C#

C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini diolah berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain dengan beberapa penyederhanaan. Menurut standar ECMA-334 C# Language Specification, nama C# terdiri atas sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang menandakan angka # (U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik (U+266F), dan tanda pagar

(23)

# (U+0023) tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar.

Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual J++ sebagai sebuah langkah percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan J++, dan beralih untuk membuat pengganti J++, kompilernya dan mesin virtualnya sendiri dengan menggunakan sebuah bahasa pemrograman yang bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut Anders Helsberg, yang merupakan mantan karyawan Borland yang membuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan di dalam J++. Sebagai hasil dari usaha tersebut, C# pun pertama kali diperkenalkan pada bulan Juli 2000 sebagai sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.

Pengalaman Helsberg sebelumnya dalam pendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common Language Runtime (CLR). Dari kutipan atas interview dan makalah-makalah teknisnya ia menyebutkan kelemahan-kelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahan-kelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan baru yang menutupi kelemahan-kelemahan tersebut, dan pada akhirnya memengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection,

(24)

jamak (multiple inheritance). Fitur-fitur tersebut di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.

C# di desain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic). Agar mampu mempromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, mencoba mengajukan standardisasi terhadap bahasa C#. Akhirnya, pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standardization (ISO), dengan nomor standar ISO/IEC 23270:2006.

2.1.6 Dynamic scripting

Dynamic scripting adalah sebuah teknik pembelajaran online untuk game yang memiliki Artificial Intelligence yang tujuannya adalah untuk mengoptimasi Artificial Intelligence 6 tersebut. Teknik ini dikembangkan oleh Pieter Spronck dkk yang terinspirasi oleh reinforcement learning. Dikembangkannya dynamic scripting dikarenakan reinforcement learning yang biasa tidak efisien untuk digunakan sebagai online learning pada game ( Pieter Spronck, 2004). Agar sebuah teknik online learning dapat diterapkan di dalam game setidaknya harus memenuhi 4 persyaratan yaitu cepat, efektif, robust dan efisien.

(25)

Gambar 2.3 Proses Dynamic scripting

Gambar 2.3 diatas menjelaskan tentang proses dynamic scripting dimana setiap setelah pertarungan antara pemain dan musuh maka bobot didalam

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 Artificial Intelligence untuk melawan musuhmusuhnya. 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 7 nilai maka aksi tersebut akan lebih diprioritaskan untuk dipilih, begitu pula sebaliknya.

(26)

Gambar 2.4 Rulebase pada game minigate

Gambar 2.4 diatas merupakan contoh rulebase pada game minigate. Dynamic scripting dapat diimplementasikan ke dalam game artificial Intelligence yang memiliki ciri-ciri sebagai berikut (Pieter Spronck,2004) :

1. Game Artificial Intelligence bisa di script

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

3. Fungsi evaluasi 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.1.6.1 Raycast

Raycasting merupakan cara untuk melakukan pengecekan dengan menggunakan suatu garis lurus yang tidak terlihat untuk mendapatkan object apa saja yang ada di depannya dan dimanakah titik collision yang mengenai Ray.

Berikut beberapa metode raycast yang sering digunakan:

using UnityEngine; using System.Collections;

public class NewBehaviourScript : MonoBehaviour { public float DistanceToGround { get; set; } void Update() {

RaycastHit hit;

if(Physics.Raycast(transform.position, -Vector3.up, out hit)) {

DistanceToGround = hit.distance; }

(27)

}

Penggunaan raycast dari transform.position dari misalkan player. –Vector3.up memiliki value (0,-1,0) yang berarti kearah bawah. out hit merupakan cara untuk mengirim suatu variable secara reference pada C#. pada kasus diatas digunakan untuk mengetahui berapakah jarak antara player ke tanah.

using UnityEngine; using System.Collections;

public class NewBehaviourScript : MonoBehaviour { public float DistanceToGround { get; set; }

void Update() { RaycastHit hit;

if(Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0f)) {

DistanceToGround = hit.distance; }

} }

Sama dengan contoh sebelumnya, namum pada contoh kali ini terdapat parameter tambahan yaitu 100.0F, yang berarti jarak pengecekan maksimal pada raycast

adalah 100 unit. Bila lebih dari itu maka tidak akan terdeteksi. Salah satu kegunaannya adalah untuk pengaplikasian pistol dalam game, dimana rata-rata game yang menggunakan pistol sebenarnya tidak benar-benar meng-spawn objeck peluru, namun dengan cara memperlihatkan efek percikan dekat pistol, dan dengan menggunakan raycast untuk menentukan dimanakah akan mucul bekas decals. Dan biasanya terdapat jarak batas terjauh untuk senjata-senjata tertentu. Jarak pendeteksian yang terlalu jauh juga akan memiliki impact terhadap performa sendiri.

(28)

2.1.7 Algoritma Genetika

Algoritma genetika sebagai cabang dari algortima evolusi merupakan metode adaptive yang biasa digunakan untuk memecahkan suatu pencarian nilai dalam sebuah masalah optimasi. Algoritma ini didasarkan pada proses genetik yang ada dalam mahkluk hidup: yaitu perkembangan generasi dalam sbeuah populasi yang alami, secara lambat laun mengikuti prinsip seleksi alam “siapa yang kuat, dia yang bertahan (susrvive)”. Dengan menitu teori evolusi ini, algoritma genetika dapat

digunakan untuk mencari solusi permasalahan-permasalahan dalam dunia nyata.

Peletak prinsip dasar sekaligus pencipta algoritma genetika adalah John Holland. Algoritma Gentika menggunakan analogi secara langasung dari kebiasaan yang alami yaitu seleksi alam. Algoritma ini bekerja dengan sebuah populasi yang terdiri dari individu-individu, yang masing-masing individu mempresentasikan sebuah solusi yang mungkin bagi persoalan yang ada. Dalam kaitan ini, individu dilambangkan dengan sebuah nilai fitness yang akan digunakan untuk mencari solusi terbaik dari persoalan yang ada.

Sebelum Algoritma Genetika dijalankan, maka sebuah kode yang sesuai (representatif) untuk persoalan harus dirancang. Untuk ini maka titik solusi dalam ruang permasalahan dikodekan dalam bentuk kromosom/string yang terdiri atas komponen genetik terkecil yaitu gen. dengan teori evolusi dan teori genetika, didalam penerapan algoritma genetika akan melibatkan beberapa operator, yaitu:

1. Operasi Evolusi yang melibatkan proses seleksi (selection) di dalamnya. 2. Operasi Genetika yang melibatkan operator pindah silang (crossover)

dan mutasi (mutation).

Untuk memeriksa hasil optimasi, kita membutuhkan fungsi fitness, yang mendandakan gambaran hasil (solusi) yang sudah dikodekan. Selama berjalan induk harus digunakan untuk reproduksi, pindah silang dan mutasi untuk

(29)

menciptakan keturunan. Jika Algoritma Genetika dedesain secara baik, populasi akan mengalami konvergensi dan akan didapatkan sebuah solusi yang optimum.

Gambar 2.5 Siklus Algoritma Genetika (sumber: dokumentasi pribadi)

2.1.8 Neural network

Neural network merupakan kategori ilmu Soft Computing. Neural network

sebenarnya mengadopsi dari kemampuan otak manusia yang mampu memberikan stimulasi / rangsangan, melakukan proses, dan memberikan output. Output

diperoleh dari variasi stimulasi dan proses yang terjadi di dalam otak manusia. Kemampuan manusia dalam memproses informasi merupakan hasil kompleksitas proses di dalam otak. Misalnya, yang terjadi pada anak-anak, mereka mampu belajar untuk melakukan pengenalan meskipun mereka tidak mengetahui algoritma apa yang digunakan. Kekuatan komputasi yang luar biasa dari otak manusia ini merupakan sebuah keunggulan di dalam kajian ilmu pengetahuan.

Fungsi dari Neural network diantaranya adalah: 1. Pengklasifikasian pola

2. Memetakan pola yang didapat dari input ke dalam pola baru pada output Populasi Awal Populasi Baru Evaluasi FItness Seleksi Individu Reproduksi: Cross-Overr dan Mutasi

(30)

3. Penyimpan pola yang akan dipanggil kembali 4. Memetakan pola-pola yang sejenis

5. Pengoptimasi permasalahan 6. Prediksi

Perkembangan ilmu neural network sudah ada sejak tahun 1943 ketika Warren McCulloch dan Walter Pitts memperkenalkan perhitungan model neural network

yang pertama kalinya. Mereka melakukan kombinasi beberapa processing unit sederhana bersama-sama yang mampu memberikan peningkatan secara keseluruhan pada kekuatan komputasi.

Hal ini dilanjutkan pada penelitian yang dikerjakan oleh Rosenblatt pada tahun 1950, dimana dia berhasil menemukan sebuah two-layer network, yang disebut sebagai perceptron. Perceptron memungkinkan untuk pekerjaan klasifikasi pembelajaran tertentu dengan penambahan bobot pada setiap koneksi antar

network.

Gambar 2.6 Perceptron

Keberhasilan perceptron dalam pengklasifikasian pola tertentu ini tidak sepenuhnya sempurna, masih ditemukan juga beberapa keterbatasan didalamnya. Perceptron tidak mampu untuk menyelesaikan permasalahan XOR (exclusive-OR). Penilaian terhadap keterbatasan neural network ini membuat penelitian di bidang ini sempat mati selama kurang lebih 15 tahun. Namun demikian, perceptron berhasil menjadi sebuah dasar untuk penelitian-penelitian selanjutnya di bidang neural network. Pengkajian terhadap neural network mulai berkembang lagi selanjutnya di awal tahun 1980-an. Para peneliti banyak menemukan bidang interest baru pada domain

(31)

ilmu neural network. Penelitian terakhir diantaranya adalah mesin Boltzmann, jaringan Hopfield, model pembelajaran kompetitif, multilayer network dan teori model resonansi adaptif.

Untuk saat ini, neural network sudah dapat diterapkan pada beberapa task, diantaranya classification, recognition, approximation, prediction, clusterization, memory simulation dan banyak task-task berbeda yang lainnya, dimana jumlahnya semakin bertambah seiring berjalannya waktu.

Neural network atau jaringan saraf tiruan juga merupakan salah satu metode dalam soft computing. Penerapan jaringan saraf tiruan sangat banyak misalnya adalah untuk memproses pengenalan sidik jari, tulisan, peramalan, pemodelan dan lain sebagainya. Mesikipun jaringan saraf tiruan sangat baik dalam proses pembelajaran namun tidak seperti algoritma genetika yang handal dalam proses optimalisasi. Jadi itulah perbedaan mendasar dalam algoritma genetika dan jaringan saraf tiruan.

Neural network terdiri dari banyak neuron di dalamnya. Neuron-neuron ini akan dikelompokkan ke dalam beberapa layer. Neuron yang terdapat pada tiap layer dihubungkan dengan neuron pada layer lainnya. Hal ini tentunya tidak berlaku pada layer input dan output, tapi hanya layer yang berada di antaranya. Informasi yang diterima di layer input dilanjutkan ke layer-layer dalam neural network secara satu persatu hingga mencapai layer terakhir / layer output. Layer yang terletak di antara input dan output disebut sebagai hidden layer. Namun, tidak semua neural network

memiliki hidden layer, ada juga yang hanya terdapat layer input dan output saja.

Pola dari neural network menerapkan konsep perceptron seperti yang disebutkan tadi, dimana terdiri dari input lalu diolah melalui koneksi ke hidden layer dan menghasilkan output, seperti gambar 2.7.

(32)

Gambar 2.7 Contoh pola neural network

Ketika genetika algoritma dan neural network (GANN) dipadukan maka akan menjadikannya dynamic scriptitng yang efisien. Ide awal GANN berangkat dari jaringan saraf tiruan yang disupport oleh algoritma genetika. Dalam GANN ada tiga pendekatan yang umumnya dilakukan pertama algoritma genetika untuk optimalisasi input-input jaringan saraf tiruan, kedua algoritma genetika digunakan untuk optimalisasi arsitektur jaringan saraf tiruan, terakhir algoritma genetika digunakan untuk optimalisasi bobot-bobot jaringan saraf tiruan.

Algoritma genetika digunakan sebagai optimalisasi input - input jaringan saraf tiruan maksudnya adalah untuk menyeleksi variabel-variabel mana saja yang dijadikan sebagai input jaringan saraf tiruan. Misalkan dalam jaringan saraf tiruan kita menggunakan 10 variabel input maka algoritma genetika dapat kita gunakan untuk memilih variabel mana saja yang dijadikan input. Tujuan akhir dari optimalisasi input jaringan saraf tiruan adalah untuk mengefisienkan waktu pemrosesan dan melihat input mana saja yang memberikan kontribusi yang signifikan.

(33)

Algoritma genetika digunakan sebagai optimalisasi arsitektur jaringan saraf tiruan maksudnya adalah untuk mencari arsitektur seperti apa yang efisien untuk jariangan saraf tiruan. Misalkan kita ingin mencari berapa banyak node di hidden layer atau berapa banyak hidden layer yang digunakan dalam arsitektur tersebut.

Algoritma genetika digunakan sebagai optimalisasi bobot-bobot jaringan saraf tiruan. Aritnya bobot-bobot dalam jaringan sarat tiruan dioptimalisasi dan diperbaiki menggunakan algoritma genetika. Tujuannya adalah untuk mencari bobot-bobot yang optimal dalam jaringan saraf tiruan tersebut.

(34)

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 menerapkan genetika algortima dan neural network

adalah steer car through tracks.Berikut adalah analisis sistem dari game steer car through tracks.

3.1.1 Spesifikasi Kebutuhan Lingkungan Pengembangan

Adapun spesifikasi kebutuhan lingkungan pengembangan, Software dan

Hardware yang diperlukan pada implementasi dynamic scripting dengan menerapkan genetika algortima dan neural network pada steer car through tracks adalah sebagai berikut:

A. Perangkat Lunak (Software)

Adapun spesifikasi kebutuhan perangkat lunak yang digunakan pada implementasi dynamic scripting dengan menerapkan genetika algortima dan neural network pada steer car through tracks yaitu:

1) Unity

2) Adobe Ilustrator CS 6

(35)

25 B. Perangkat Keras (Hardware)

Adapun spesifikasi kebutuhan perangkat keras yang digunakan pada implementasi dynamic scripting dengan menerapkan genetika algortima dan neural network pada steer car through tracks yaitu:

1) Processor : Intel core i5-2410M CPU @2.30GHz

2) RAM : RAM 6GB DDR3

3) Graphic card : NVDIA GeForce GT 525M 4) OS : Windows 7 Ultimate

3.1.2 Spesifikasi Kebutuhan Penggunaan Permainan

Adapun spesifikasi kebutuhan penggunaan permainan, Software dan

Hardware yang diperlukan pada implementasi dynamic scripting dengan menerapkan genetika algortima dan neural network pada game steer car through tracks adalah sebagai berikut:

A. Perangkat Lunak (Software)

adapun spesifikasi kebutuhan perangkat lunak yang digunakan untuk menjalankan gamesteer car through tracks dengan implementasi dynamic scripting dengan menerapkan genetika algortima dan neural network yaitu,

Sistem Operasi Windows 7.

B. Perangkat Keras (Hardware)

adapun spesifikasi kebutuhan perangkat keras yang digunakan untuk menjalankan gamesteer car through tracks dengan implementasi dynamic scripting dengan menerapkan genetika algortima dan neural network

yaitu:

1) Processor : Intel(R) Core(TM) i3-311-M CPU @ 2.40GHz

2) RAM : RAM 2GB DDR3

3) Graphic card : Radeon Graphics

(36)

3.1.3 Analisa Kemampuan Karakter

Untuk melakukan implementasi dynamic scripting genetika algoritma dan

neural network, dipilihlah gamearcade sederhana bernama Steer car trhough tracks. Permainan ini diolah oleh “Sanye” salah satu game programer yang dirilis pada tanggal 14 desember 2016. Permainan ini dapat ditemukan di github dan dapat diunduh secara gratis. Karena tampilan simple serta source code yang sesuai dengan tujuan penelitian maka dipilihlah game ini untuk dijadikan bahan percobaan untuk mengimplementasikan dynamic scripting genetic algoritma dan neural network.

Pada permainan steer car trhough tracks, terdapat sebuah mobil dan satu lintasan serta checkpoint disepanjang lintasan. Dimana pada lintasan ini nantinya mobil tersebut diharapkan dapat menyelesaikan track dan bertahan selama mungkin tanpa menabrak dinding lintasan. Mobil memiliki kemampuan untuk terus berjalan dan berbelok kiri dan kanan dan berputar, seperti diterangkan pada tabel 3.1.

Tabel 3.1 Karakter pada game steer carr through tracks

Bergerak Maju Belok Kanan

Belok Kiri Berputar

Ya Ya Ya Ya (90◦)

Game sebelumnya bergerak dalam lintasan yang kaku dan tidak mempunyai proses self-learning yang efisien, pada projek kali ini akan ditambahkan sebuah proses self-learning dalam game. Proses self-learning ini berupa dynamic scripting yang akan diterapkan pada karakter utama game. Setelah mengetahui indikator kemampuan mobil yang terrdapat dalam original game “steer car

(37)

27

through tracks”, maka selanjutnya akan dilakukan Analisa kebutuhan fungsional dan non-fungsional serta penambahan-penambahan yang perlu dilakukan terhadap gamesteer carr through tracks.

3.1.4 Analisa Kebutuhan Fungsional

Untuk dapat diimplementasikan ke dalam dynamic scripting dengan menggunakan genetika algoritma dan neural network, gamesteer car through tracks harus memiliki kebutuhan-kebutuhan fungsional sebagai berikut : 1. Mobil akan secara otomatis mati dan memulai kembali dari awal apabila

menabrak dinding pembatas track.

2. Game memiliki checkpoint sebagai salah satu acuan keberhasilan proses

self-learning pada game.

3. Mobil dapat menerima 5 masukan untuk berbelok kekiri dan kekanan yang ditempatkan pada sensor raycast yang terdapat pada bagian depan mobil.

3.1.5 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.2 Lokasi dan Waktu Penelitian

Penelitian ini dilaksanakan di gedung tower A Politeknik Negeri Batam, pulau Batam, Kepulauan Riau, dimulainya pengujian ini dibagi menjadi 2 bagian, pada bagian pertama dari tanggal 17 Mei 2017 – 23 Mei 2017, dan pada bagian ke dua dari tanggal 1 Juni 2017 – 3 Juni 2017, dengan total jumlah peserta sebanyak 2 orang.

(38)

3.3 Analisa Perancangan 3.4 Sistematika Perancangan

Gambar 3.1 Desain Penelitian (sumber: dokumentasi pribadi)

Pada peng-implementasian dynaminc scripting dengan menggunakan mode

automatic player digunakanlah sebuah perancangan sistem yang memuat tahapan tahapan yang perlu dilakukan. Berikut adalah perancangan sistemnya.

Berikut ini adalah penjelasan dari desain perancangan pada gambar 3.1: 1. Mulai

Memulai melakukan project dan menyusun konsep apa yang akan diolah nantinya. Pada projek kali ini pengujian dari hasil implementasi dynamic scripting bertujuan untuk mencari hasil dari nilai fitness yang paling besar diantara nilai bestfitness seluruh generasi. Tiap kromosom nantinya akan mendapatkan current fitness nya masing-masing yaitu berupa nilai dari berapa lama mereka berada di track, dan bestfitness merupakan penilaian paling baik diantara currentfitness yang ada, sedangkan kromosom

(39)

29 merupakan individu yang akan dites dari populasi yang telah ditetapkan pada game ini, dimana terdapat 15 individu pergenerasi”. Pada projek kali ini pengujian dari hasil implementasi dynamic scripting bertujuan untuk mencari hasil dari nilai fitness yang paling besar diantara nilai bestfitness seluruh generasi. Tiap kromosom nantinya akan mendapatkan currentfitness nya masing-masing yaitu berupa nilai dari berapa lama mereka berada di track, dan bestfitness

merupakan penilaian paling baik diantara currentfitness yang ada, sedangkan kromosom merupakan individu yang akan di tes dari populasi yang telah ditetapkan pada game ini, dimana terdapat 15 individu pergenerasi. Data yang ada pada dynamic scripting ini menggunakan tipe belajar supervised dimana input data (training set) dari game ini memiliki label yaitu terdapat 2 outputleftsteer dan

rightsteer dimana jika mobil ingin berbelok kekanan maka ia harus menghasilkan output 1 dan jika kekiri maka output nya adalah 0.

//Pseudocode Getoutput neuralnet Update()

//pertama NN akan mendapatkan 5 input dari raycast yang bekerja sebagai sensor yang mengetahui jarak

Inputs ( L ); Inputs (FL); Inputs ( F ); Inputs ( FR ); Inputs ( R ); Neuralnet.setinput; Neuralnet.refresh;

//lalu ditetapkan nilai output nya yaitu 1 apabila kekanan dan 0 apabila kekiri

Leftforce = neuralnet.getoutput (0); Rightforce = neuralnet.getoutputt (1);

(40)

2. Mendeteksi Parameter Environtment (Track)

Setelah selesai dalam membuat konsep, tahapan selanjutnya adalah menganalisa game yang dipilih untuk diterapkan dynamic scripting dengan mode automatic player. Setelah mendapatkan game yang sesuai kriteria untuk diterapkan dynamic scripting dengan mode

automatic player. Kemudian dilakukan analisa terhadap elemen-elemenyang ada di dalam game tersebut antara lain:

a. Satu buah track yang tidak putus dengan berbagai lekukan pada jalur track.

b. Checkpoint yang berada disepanjang lintasan

Setelah mendapatkan data parameter environtment / track, selanjutnya adalah dilakukan penyesuaian terhadap game tersebut sehingga dapat diimplementasikan dynamic scripting dengan mode automatic player.

3. Menerapkan dynamic scripting dengan mode automatic player.

Setelah selesai dengan penyesuaian pada game, selanjutnya adalah mengimplementasikan dynamic scripting dengan mode automatic player pada game tersebut.

4. Melakukan uji coba

Dalam melakukan uji coba, Artificial Intelligence player akan bermain secara otomatis dengan menerapkan dynamic scripting. Dimana Artificial Intelligence nantinya diharapkan mampu menyesuaikan tingkah lakunya dengan kondisi track. Percobaan akan dilakukan sebanyak 750 kali.

(41)

31 Selanjutnya dalam tahapan ini adalah melihat apakah dynamic scripting dengan menggunakan mode automatic player dapat menciptakan permainan yang dapat beradaptasi dengan sendirinya melalui self-learning dari penerapan genetika algoritma dan neural network.

6. Selesai

Membuat kesimpulan terhadap implementasi dynamic scripting

dengan menggunakan mode automatic player.

3.4.1 Perancangan Desain Track

Pada projek ini akan dirancang sebuah track yang akan ditelusuri oleh karakter game dimana pada track ini akan dibuat lebih banyak lekukan yang bertujuan untuk mengetahui seberapa efisien neural network dapat beradaptasi terhadap lintasan yang memiliki banyak lekukan. Sedangkan checkpoint akan ditempatkan disepanjang lintasan sebagai acuan jalur yang harus dilewati oleh karakter mobil tersebut sehingga dapat dikatakan berhasil menyelesaikan seluruh lintasan. Pada gambar 3.2 dibawah ini adalah desain track beserta penempatan checkpoint yang akan diterapkan pada game.

Gambar 3.2 desain track dan penempatan checkpoint

(42)

3.4.2 Genetika Algoritma dan Neural network

Untuk membuat game berjalan dengan mode automatic player pada game arcade ini akan menggunakan penerapan Neural network sedangkan untuk proses simulasi pembelajaran dimana tiap kromosom yang berupa individu karakter akan di jalankan berdasarkan genetika algoritma. Pada gambar 3.3 dibawah ini adalah penerapan pola neural network pada game.

Gambar 3.3 deskripsi neural network pada karakter game

(sumber: dokumentasi pribadi)

Melalui karakter mobil, neural network akan mengatur jaringan saraf virtual dengan membuat pola neural network menggunakan 5 input yang didapat melalui raycast yaitu jarak dari mobil ke dinding track yang ditempatkan dibagian depan mobil diberbagai arah, 1 hidden layer dimana terdapat 8 neuron

pada hidden layer tersebut untuk memungkinkan neural network melekukan

behavior yang lebih kompleks, dan 2 output yang mana akan menentukan keputusan pada mobil untuk berbelok kekiri atau kekanan. Pola tersebut bisa terlihat pada gambar 3.4 dibawah ini.

Gambar 3.4 Pola Neural network pada game

(43)

33

Neural network akan diterapkan pada tiap-tiap agen perindividu dimana nantinya script akan ditempatkan pada mobil dan menghasilkan 5 buah input

dari raycastfront (depan), front left (depan kiri), left (kiri), front right (depan kanan), dan right (kanan). Berikut adalah tampilan input dari raycast yang akan diolah oleh neural network seperti gambar 3.5 dibawah ini.

Gambar 3.5 InputNeural network

(sumber: dokumentasi pribadi)

Saat game dijalankan, masing-masing raycast akan menerima input tentang jarak dari sensor ke dinding track dan mengkalkulasikannya melalui dengan

hidden layer melalui 8 unit per hidden layer dan menghasilkan 2 output berupa belok kekiri dan kekanan.

(44)

//Pseudocode dari GANN Start ()

genAlg = new GA

//saat game dimulai, sistem akan langsung membuat pola genetika algoritma yaitu membuat populasi yang tiap populasi terdapat 15 individu yang akan dipilih secara bergantian pada game.

Create Population

genAlg = new Genetika Algoritma; genAlg.GenerateNewPopulation (15); currentAgentFitness = 0

//setelah jumlah populasi ditetapkan maka proses selanjutnya akan memilih kromosom yang akan dimainkan dari populasi tadi

Select genome ;

//setelah itu proses pembuatan pola neural network dilakukan berdasarkan kromosom yang dipilih

Create Nnet base on genome

//lalu pola dari neural network akan dibuat, dimana terdapat 1 hidden layer, 5 input dari raycast yaitu berpa jarak dari mobil ke dinding lintasan, 8 node per hidden layer dan 2 output yaitu leftsteer dan rightsteer, dan pola ini yang akan dites pada tiap-tiap kromosom yang terpilih

neuralNet = new NNet Nnet.createNet (1,5,8,2) ; Test Agent in NN ;

// lalu tiap agent akan berinteraksi pada gameobject yaitu checkpoint dimana jika kromosom mengenai checkpoint maka nilai checkpoint akan terupdate Hit = gameObject Checkpoints = hit.checkpoints Update Checkpoints = hit.checkpoints If (testAgent.hasfailed) {

(45)

35

// dan jika kromosom meng-hit dinding lintasan maka agent yang dites tadi dinyatakan gagal dan system akan langsung memeriksa jumlah populasi yang ada dan melahirkan kromosom yang baru serta melakukan tes pada subject selanjutnya. If (genAlg.GetcurrentGenomeIndex() = 15-1) { EvolveGenomes; Return; } NextTestSuject; }

//setiap kromosom memiliki nilai fitness nya masinng-masing, dan jika nilai fitness kromosom yang sedang dites lebih besar dari bestfitness yang ada maka nilai fitnessnya akan menjadi nilai bestfitness sekarang. currentAgentFitness = Test Agent;

if (currentAgenFitness > bestfitness) { bestfitness = currentAgentFitness; }

}

Saat game akan dijalankan maka proses neural network yang didukung oleh simulasi learning dari genetika algoritma akan secara otomatis berjalan. Pada genetika algoritma, individuals per populasi ditetapkan 15, yang artinya ada 15 individu / kromosom per generasi untuk menghasilkan atau memilih dua

kromosom alpha dengan nilai fitness teratas untuk di seleksi dan menghasilkan

offspring pada generasi selanjutnya. Proses ini akan terus berlanjut sampai menghasilkan nilai fitness terbaik yaitu catatan waktu mobil dalam memainkan atau menyusuri track tanpa menabrak dinding pembatas. Informasi diatas akan ditampilkan saat game dimainkan seperti yang terlihat pada gambar 3.6.

(46)

Gambar 3.6 Informasi yang didapatkan dari Genetika Algoritma (sumber: dokumentasi pribadi)

Nantinya kromosom atau individu dengan nilai fitness terbaik akan menjadi

parent untuk dimutasikan pada generasi selanjutnya, sehingga child atau

offspring di generasi selanjutnya akan mempunya DNA gabungan dari parent digenerasi sebelumnya. Genetik algoritma pada game ini bertugas untuk mengoptimalkan nilai weight dari neural network, sehingga neural network

pada tiap kromosom dapat menjalankan fungsi dan menghasilkan output yang lebih kompleks dan efisien. Fungsi GANN akan membuat game arcade

berjalan secara otomatis dan mempunyai proses simulasi self-learning melalui proses evolusi untuk menghasilkan nilai fitness yang tinggi dengan menyeleksi tiap kromosom per populasi.

3.5 Perancangan Sistem

Pada dasarnya game car steer through tracks dirancang dan diolah hanya sebagai sarana atau contoh project yang diolah 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 implementasi

dynamic scripting dengan mode automatic player.

3.5.1 Diagram Use Case

Use case adalah interaksi atau dialog antara sistem dan actor,termasuk pertukaran pesan dan tindakan yang dilakukan oleh sistem. Usecase juga menggambarkan

(47)

hal-37 hal apa saja yang bisa dilakukan oleh actor terhadap system. Untuk permainan steer car through tracks, diagram use case yang digunakan adalah sebagai berikut.

Gambar 3.7 Diagram use case (sumber: dokumentasi pribadi)

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. 2 Identifikasi Gameplay

Identifikasi Nomor 1 Nama Play

Tujuan Masuk kedalam permainan

Aktor Pemain

Kondisi Pemain Berada Di Track Awal

Aksi Aktor Reaksi Sistem

1. Aktor menekan tombol bermain

2. menampilkan gameplay

dari game steer car through tracks

(48)

Player atau pemain akan

langsung memasuki scene

KONDISI AKHIR bermain dan mulai bermain

permainan steer car through tracks

3.5.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 diolah diagram

robustness untuk game steer car through tracks ini seperti yang ditunjukkan oleh gambar dibawah.

Gambar 3.8 Diagram Robustness (sumber: dokumentasi pribadi)

3.5.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. Berikut adalah diagram sequence dari permainan steer car through tracks.

(49)

39 Gambar 3.9 Diagram Sequence

(sumber: dokumentasi pribadi)

Pada diagram sequence play, dapat kita lihat urutan dalam pergerakan game steer car

through tracks dimainkan. Ketika system pertama kali dijalankan, maka game akan

menampilkan layar permainan yaitu player yang diambil dari kromosom, lintasan dan

chceckpoint yang ada didalamnya, serta mendapatkan score berupa nilai fitness untuk

masing-masing kromosom yang dimainkan pada game. Selanjutnya penambahan fungsi yang mengatur aksi-aksi yang dibutuhkan player dalam menyusuri track.

3.5.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 steer car through tracks adalah sebagai berikut.

(50)

Gambar 3.10 Diagram Class (sumber: dokumentasi pribadi)

3.5.5 Penambahan Sistem

Setelah mendapatkan informasi tentang kemampuan karakter yang terdapat pada permainan steer car through tracks, maka diperlukannya penambahan terhadap aksi-aksi yang dapat dilakukan oleh karakter 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 mode automatic player di dalamnya.

(51)

41 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 steer car through tracks bisa dilihat dari tabel berikut.

Tabel 3. 3 Penambahan Aksi

Sebelum Sesudah

Mobil bergerak maju OK

Mobil bisa berbelok kekiri OK

Mobil bisa berbelok kekanan OK

Mobil bisa bergerak serong kanan dan kiri

Mobil bisa menghindari dinding Pembatas

Mobil bisa hit checkpoint

BAB IV

(52)

4.1 Implementasi

Tahapan implementasi merupakan tahapan lanjutan dari tahapan perancangan yang telah dijelaskan sebelumnya. tahapan dalam mengimplementasikan dynamic scripting dengan mode automatic player menggunakan genetika algoritma dan

neural network ini antara lain membuat rulebase yang berisikan aksi-aksi yang dapat digunakan oleh dynamicteam, mengimplementasikan algoritmagenetika dan

neural network yang berfungsi untukmenentukan aksi-aksi apa saja yang nantinya akan digunakan oleh dynamicteam, mengimplementasikan weight adjustment yang berfungsi untuk melakukan penyesuaian bobot aksi-aksi yang terdapat di dalam

rulebase. Memodifikasi game steer car through tracks agar dapat diujikan terhadap algoritma yang telah diterapkan sebelumnya

4.1.1 Tampilan Karakter

Berikut adalah tampilan dari karakter mobil yang akan diimplementasikan dynamic scripting kedalamnya:

Gambar 4.1 Mobil / karakter game

(sumber: dokumentasi pribadi)

Karakter berupa mobil balap yang akan bermain dengan mode automatic player

menggunakan dynamic scripting, dimana nantinya saat game dijalankan mobil akan berjalan dengan sendirinya tanpa ada user control.

Pada bagian depan mobil ditempatkan 5 buah sensor dari raycast yang mana akan menghasilkan input data untuk diolah oleh neural network. Mobil hanya bisa

Gambar

Gambar 2.1 Game Steer Car Through Tracks
Gambar 2.2 Tampilan Unity 3D  (sumber : dokumen pribadi )
Gambar 2.3 Proses Dynamic scripting
Gambar 2.4 Rulebase pada game minigate
+7

Referensi

Dokumen terkait

Apabila user memasukkan nomor pilihan yang tidak sesuai dengan nomor pilihan seperti yang terdapat pada Form Pilihan, Form Nilai Mata Kuliah, dan Form Indeks Prestasi Semester,

Gejala utama kelelahan umum adalah suatu perasaan letih yang luar biasa dan terasa tidak biasa. Semua aktivitas menjadi terganggu dan terhambat karena munculnya

Dengan terbentuknya Kota Sungai Penuh sebagai daerah otonom, Pemerintah Provinsi Jambi berkewajiban membantu dan memfasilitasi terbentuknya Kelembagaan Dewan

Gelembung-gelembung tersebut akan menghalangi arus listrik sehingga elemen volta hanya bisa digunakan sebagai sumber energi listrik dalam waktu yang singkat..

Mengetahui, Bekasi, Juli 2009 Kepala Sekolah SD/MI Guru Kelas / Guru

The findings showed some potential contaminations such as (1) the indicators of the biological quality of the water were the number and growth of bacteria in the biofilms

Kurikulum yang sejalan dengan idealitas Islami adalah kurikulum yang mengandung materi (bahan) ilmu pengetahuan yang mampu berfungsi sebagai alat untuk tujuan

sebagaimana firman Allah SWT di dalam Al-Qur’an Surah Ar-Rad Ayat 11 dimana ayat tersebut dengan jelas mengisyaratkan kepada manusia agar berusaha sebaik mungkin