• Tidak ada hasil yang ditemukan

Implementasi algoritma Neural Network dalam AI Bot Game FPS

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi algoritma Neural Network dalam AI Bot Game FPS"

Copied!
133
0
0

Teks penuh

(1)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Neural Network atau juga disebut jaringan saraf tiruan merupakan salah

satu metode yang sudah digunakan secara luas pada berbagai macam bidang komputasi, salah satunya adalah metode backpropagation yang mengunakan pelatihansupervised dan didesain untuk operasi pada jaringanfeed forward multi lapis, dengan sistem kerja jika keluaran memberikan hasil yang salah, maka penimbang dikoreksi agar galatnya dapat diperkecil dan respon jaringan yang akan diberikan selanjutnya diharapkan akan lebih mendekati nilai yang paling benar.

Keunggulan JST(Jaringan Saraf Tiruan) dalam pengambilan keputusan yang cukup handal tidak menutup kemungkinan bahwa JST dapat diimplementasikan ke dalam game, terutama untuk game bergenre FPS yang memerlukan pengambilan keputusan yang cepat dan tepat, dalam salah satu jurnal [1] dibahas mengenai penggunaan JST dalam NPC (Non Playable Character) game FPS, dan hasilnya sangat mengesankan, NPC dapat merespon dengan sangat

baik, sehingga dikatakan “dapat menyerupai kemampuan manusia sebenarnya”. Selain itu, di dalam jurnal mengenai penerapan AI dalam game, Bots

Trained to Play Like a Human are More Fun, Soni Bhuman 2008, dikatakan

(2)

2

Selain itu JST dengan sifat backpropagation dipilih dalam game FPS karena sifatnya yang terbimbing, dapat dibayangkan apa yang akan terjadi apabila JST yang digunakan bersifat mandiri. kemampuan yang dimiliki NPC akan terlampau tinggi, sehingga akan menimbulkan masalah baru, yaitu game akan terlalu sulit untuk dimainkan dan menyebabkan pemain kehilangan minat untuk memainkan permainan tersebut.

Namun dalam penerapanya, terdapat satu kelemahan, yaitu waktu pemrosesan data learning yang cukup memakan banyak waktu dan resources

yang cukup banyak yang mengakibatkan adanya pelambatan pada performa game, sehingga dibutuhkan cara lain untuk menangani masalah tersebut, yaitu dengan

menggunakan metodefeed forward yang memiliki kemampuan pemrosesan yang cepat, namun hasil yang didapat memiliki ketepatan yang kurang optimal.

Permasalahan baru yang muncul tersebut dapat diatasi dengan memanfaatkan kelebihan dari algoritma neural network multi level feed forward

yang memiliki kecepatan pemrosesan yang cepat dan tidak memakan banyak

resources, maka digunakanlah teknik learning berulang, yaitu dengan melakukan

proses learning berulang (beberapa kali proses dalam sekali tahapan learning) sehingga didapatkan hasil yang optimal yang mendekati hasil yang diperoleh algoritma neuralnetwork backpropagation.

Tentu saja dalam game Neural network tidak dapat berdiri sendiri, karena peruntukanya yang hanya untuk menentukan keputusan apa yang harus dilakukan oleh NPC, Setelah NPC menentukan atau mengambil keputusan, maka NPC harus dapat bergerak secara cepat dan efisien untuk mengeksekusi keputusan yang diambil, maka untuk melakukanya digunakan Implementasi A* (A Star),

algortima ini nantinya akan diterapkan terhadap Non playable character

(NPC) untuk melakukan pencarian rute terpendek terhadap target yaitu

player. Berdasarkan latar belakang tersebut, maka dibuatlah sebuah game

first person shooter look like Call of duty® yaitu adaptasi sistem testing pada

(3)

3

1.2 Rumusan Masalah

Berdasarkan uraian latar belakang masalah di atas, maka dapat

dirumuskan masalahnya adalah Bagaimana cara pengimplementasian algoritma

Neural networkdalam pengambilan keputusan dalam game FPS, sehingga tingkat

kesulitan permainan dapat disesuaikan dengan kemampuanplayer.

1.3 Maksud dan Tujuan

Maksud dari pengembangan ini diharapkan dapat menjadi sebuah awal baru dalam pengembangan AI dalam game FPS yang menggunakan algoritma neural network sebagai handlernya sebagai pengambil keputusan sehingga AI dapat bertindak secara dinamis dan tingkat kesulitan yang ada sesuai dengan kemampuan player, sedangkan tujuan yang ingin dicapai dalam tugas akhir ini adalah untuk mendapatkan hasil respon dari AI BOT yang sesuai dengan kemampuanplayer.

1.4 Batasan Masalah

Berdasarkan latar belakang yang telah diuraikan sebelumnya, maka penulis membatasi permasalahan penelitian agar ruang lingkup game ini jelas batasannya. Dalam penelitian ini, masalah dibatasi sebagai berikut :

1. Game yang dibuat berbasis desktop.

2. Game akan dibangun hanya sampai dengam tahapan beta

3. Game yang dibangun akan memiliki kemiripan (look like) Call of duty® series

(4)

4

5. algoritma neural network feed forward diimplementasikan pada segmen testing dan preceptron selama prosses pengambilan keputusan dalam permainan utama, yang diterapkan terhadap NPC untuk menentukan keputusan ketika berhadapan dengan target yaitu player.

6. Input yang dijadikan data learning berupa total tembakan, akurasi tembakan, waktu menyelesaikan stage dan health point.

7. Output akan berupa data yang telah di optimalisasi dengan nilai bias yang telah memenuhi syarat.

1.5 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam mengerjakan laporan

penelitian ini adalah metode deskriptif, yaitu metode penelitian yang

menggambarkan secara sistematika dan akurat mengenai keadaan -keadaan

nyata yang berjalan pada saat penelitian. Gambaran tersebut diperoleh dengan

cara mengumpulkan, mengklasifikasikan, menyajikan, serta

menganalisis data sehingga dapat ditarik suatu kesimpulan [2].

1. Tahap Pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini

adalah sebagai berikut:

. a. Studi Pustaka

Studi Pustaka yang dilakukan ialah dengan mempelajari

berbagai literatur, seperti buku-buku, artikel-artikel, e-book,

website, dan sumber- sumber yang berkaitan dengan

game yang akan dibangun, meliputi kecerdasan buatan,

desain, tools dan juga pemodelan dengan UML.

b. Observasi

Teknik pengumpulan data dengan mengadakan pengamatan

langsung dan mengindra terhadap game serupa yang sudah

(5)

5

yang dibangun berupa masalah algoritma kecerdasan buatan,

desain, tools dan juga pemodelan dengan UML.

2. Tahap pembuatan perangkat lunak

Model yang akan digunakan dalam pembangunan dan

pengembangan game ini adalah model sequential Linear. Model

ini mengusulkan sebuah pendekatan kepada perkembangan

software yang berada dalam tahap pengembangan dan mengalami

banyak perubahan yang mulai pada tingkat dan kemajuan

sistem pada seluruh analisis, pembangunan, evaluasi, kode,

pengujian, dan evaluasi ulang. Dimodelkan setelah siklus

rekayasa konvensional, model sequential Linear melingkupi

aktivitas-aktivitas sebagai berikut:

a. System Engineering

Karena sistem merupakan bagian dari sebuah sistem yang

lebih besar, kerja dimulai dengan membangun syarat dari

semua elemen sistem dan mengalokasikan beberapa subset

dari kebutuhan ke software tersebut. Pandangan sistem ini

penting ketika software harus berhubungan dengan

elemen-elemen yang lain seperti software, manusia,

dan database. Rekayasa dan anasisis sistem menyangkut

pengumpulan kebutuhan pada tingkat sistem dengan

sejumlah kecil analisis serta disain tingkat puncak. Rekayasa

informasi mancakup juga pengumpulan kebutuhan pada

(6)

6

b. Analysis

Merupakan tahap menganalisis hal-hal yang diperlukan

dalam pelaksanaan proyek pembuatan perangkat lunak.

c. Design

Desain software sebenarnya adalah proses multi langkah

yang berfokus pada empat atribut sebuah program yang

berbeda; struktur data, arsitektur software, representasi

interface, dan detail (algoritma) prosedural. Proses desain

menterjemahkan syarat/kebutuhan ke dalam sebuah

representasi software yang dapat diperkirakan demi

kualitas sebelum dimulai pemunculan kode. Sebagaimana

persyaratan, desain didokumentasikan dan menjadi bagian dari

konfigurasi software.

d. Coding

Desain harus diterjemahkan kedalam bentuk mesin yang bisa

dibaca. Langkah pembuatan kode melakukan tugas ini. Jika

desain dilakukan dengan cara yang lengkap, pembuatan kode

dapat diselesaikan secara mekanis.

e. Testing

Sekali program dibuat, pengujian program dimulai. Proses

pengujian berfokus pada logika internal software,

memastikan bahwa semua pernyataan sudah diuji, dan pada

eksternalfungsional, yaitu mengarahkan pengujian untuk

menemukan kesalahan-kesalahan dan memastikan bahwa input

yang dibatasi akan memberikan hasil aktual yang sesuai dengan

(7)

7

Gambar 1.1 Diagram Metode sequential Linear[2]

1.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan

gambaran umum tentang tugas akhir yang dijalankan. Sistematika

penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Menguraikan tentang latar belakang permasalahan, perumusan

masalah, maksud dan tujuan, batasan masalah, metode penelitian

serta sistematika penulisan.

BAB II LANDASAN TEORI

Membahas berbagai konsep dasar dan teori tentang teorigame,

pengertian game, sejarah game, sejarah game di Indonesia,

jenis-jenis game, genre game, unsur game, kecerdasan buatan,

perbandingan kecerdasan buatan dengan kecerdasan alamiah,

teknik dasar pencarian, algoritma pencarian, metode pencarian ,

pencarian buta, pencarian terbimbing, Algortima A*, BFS, AI

yang digunakan, A*, neural network, OOP, UML, C#, Javascript,

Unity, 3ds Max.

system enginering

requirement

(8)

8

BAB III ANALISIS DAN PERANCANGAN

Berisi Analisis Sistem, Analisi Masalah, Analisis game yang

dibangun, Analisis Kebutuhan Fungsional, Analisis Kebutuhan

Non-Fungsional, dan Perancangan Sistem

BAB IV IMPLEMENTASI DAN PENGUJIAN

Berisi tentang implementasi dari hasil analisis dan perancangan yang

telah dibu at ke dalam bentuk aplikasi pemrograman, kemudian

dilakukan pengujian terhadap aplikasi yang dibangun.

BAB V KESIMPULAN DAN SARAN

Berisi kesimpulan yang di dapat selama penulisan laporan tugas

akhir dan saran yang diperlukan untuk pengembangan aplikasi

(9)

9 BAB II

LANDASAN TEORI

2.1 NEURAL NETWORK

Pembuatan struktur jaringan saraf tiruan diilhami oleh struktur jaringan biologi, khususnya jaringan otak manusia, dimana neuron adalah satuan unit pemroses terkecil pada otak, bentuk sederhana sebuah neuron tersebut dapat diproyeksikan sebagai berikut:

(10)

10

Neural network backpropagation merupakan salah satu alternatif baru

dalam penanganan perilaku karakter, hal ini didasari oleh banyaknya keluhan dari para pemain game FPS yang mengeluhkan respon dari AI NPC game FPS yang statis, yang mengakibatkan monotonya gameplay yang berarti kejenuhan dalam permainan.

Sifat Neural Network yang dinamis, baik dalam proses learning maupun dalam pengambilan keputusan dapat menjadi titik awal baru dalam perkembangan game FPS dengan AI NPC yang bersifat dinamis, atau dengan kata lain dengan kemampuan yanghampir medekati kemampuan human player, bahkan dapat melebihi kemampuan dari human player pada umumnya.

Jaringan saraf tiruan (JST) atau neuralnetwork adalah suatu metode komputasi yang meniru sistem jaringan saraf biologis. Metode ini menggunakan elemen perhitungan non-linier dasar yang disebutneuronyang diorganisasikan sebagai jaringan yang saling berhubungan, sehingga mirip dengan jaringan saraf manusia. Jaringan saraf tiruan dibentuk untuk memecahkan suatu masalah tertentu seperti pengenalan pola atau klasifikasi karena proses pembelajaran.

Layaknyaneuronbiologi, JST juga merupakan sistem yang bersifat fault

tolerantdalam 2 hal. Pertama, dapat mengenali sinyalinputyang agak berbeda

dari yang pernah diterima sebelumnya. Sebagai contoh, manusia sering dapat mengenali seseorang yang wajahnya pernah dilihat dari foto atau dapat mengenali sesorang yang wajahnya agak berbeda karena sudah lama tidak menjumpainya. Kedua, tetap mampu bekerja meskipun beberapaneuron-nya tidak mampu bekerja dengan baik. Jika sebuahneuronrusak,neuronlain dapat dilatih untuk menggantikan fungsineuronyang rusak tersebut. JST menyerupai otak manusia dalam dua hal, yaitu:

a. Pengetahuan diperoleh jaringan melalui proses belajar

b. Kekuatan hubungan antar sel syaraf (neuron) yang dikenal sebagai

(11)

11

Menurut (Siang, 2004) JST ditentukan oleh 3 hal: a. Pola Hubungan Antar Neuron

b. Metode untuk menentukan bobot penghubung neuron c. Fungsi Aktivasi

Salah satu dari jenis Neural network, yaitu Multi layer Feed forward atau yang lebih dikenal sebagai MLF neural network merupakan jenis Neural network

yang menggunakan proses terbimbing dengan tujuan utama meminimalisir nilai

mean square eror, dimulai dengan pemunculan nilai random sebagaiweight yang

akan diproses melalui tahapan iterasi bertingkat.

Langkah yang dilakukan dalam algoritma MLF tidak jauh berbeda dengan yang digunakan dalam algoritma backpropagation, yang membedakan hanya tidak adanya proses propagasi balik yang memungkinkan algoritma memiliki waktu proses yang lebih cepat bila dibandingkan algoritma backpropagation, berikut adalah flowchartnya:

(12)

12

Adapun tahapannya adalah:

a. Inisialisasi bobot dan bias, bobot dan bias dapat di set secara sembarang dengan menggunakan angka acak, namun pada kasus ini nilainya dibatasi antara -1 hingga 1.

b. Setiap unit input yang telah ditentukan sebelumnya menerima sinyal input dan menyebarkanya ke seluruh unit yang ada padahidden layer, adapun input yang digunakan adalah inputan yang berasal dari input

data trainingyang sudah diskalakan.

c. Setiaphidden unitakan menjumlahkan sinyal sinyal input yang sudah memiliki bobot, begitupula dengan biasnya.

U_in = U

0j

+

XiUij

Dimana U_in = sinyal input U

U0j = Bias pada lapisan tersembunyi U

Xi = Unit input

Uij = Bobot pada lapisan tersembunyi U

d. Penggunaan fungsi aktivasi yang telah ditentukan untuk menghitung sinyal output darihidden unityang bersangkutan lalu mengirimkan sinyal output ke seluruh unit pasa unit output

U = 1/1+e

-U_in

e. Setiap unit output akan menjumlahkan sinyal sinyal input yang sudah berbobot, termasuk biasnya .

U3 = f(U3_in)

Dimana f(Un_in) adalah nilai aktifasi unit hiden U (dimana n = 1,2,3)

f. Bila proses penghitungan sinyal input sudah selesai secara keseluruhan, maka langkah selanjutnya adalah penghitungan MSE yang memiliki fungsi

MSE=0,5 x {(t

k1

-y

k1

)

2

+ (t

k2

-y

k2

)

2

+…+ (t

km

-y

km

)

2

}

(13)

13

g. Apabila nilai MSE masih belum lebih kecil dari nilai yang ditentukan, maka akan dilakukan pembaharuan bobot dan bias, yang memiliki fungsi

- Unit output

wjk(baru)=wjk(lama) +wjk - hiden unit

vij(baru)=vij(lama) +vij

Kemudian proses akan terus berlanjut hingga syarat terpenuhi atau jumlaheppochmaksimal default tercapai, yaitu 20.000eppoch.

Selain itu terdapat beberapa kelebihan dan kekurangan dari MLF[3], yaitu: Kelebihan:

a. Proses learning yang memiliki kemampuan untuk beradaptasi secara mandiri walaupun tanpa pengawasan dari user.

b. Nonlinearity, yaitu memposisikan neuron sebagai unit non linear,

hal ini merupakan sebuah properti yang sangat penting, karen a relasi antara input dan output yang dihasilkan bersifatnon linear. c. Input Output mapping, memungkinkan MLF untuk mempelajari

data yang ada melalui struktur antara input dan output yang dihasilkan saat mencapai nilai yang stabil.

d. Robustness, memiliki kemampuan pemrosesan yang cepat. Kekurangan:

a. Perlunya perancangan struktur layer yang sesuai dengan data inputan untuk mencegah nilai bias yang memiliki nilai statis bahkan membesar pada proses iterasi yang dilakukan

(14)

14

2.2 Algoritma Pendukung

Selain penggunaan neural network dalam pengambilan keputusan,

dibutuhkan pula algoritma pencarian rute, metode pencarian sangat penting untuk menyelesaikan permasalahan karena setiap state atau keadaan menggambarkan langkah-langkah untuk menyelesaikan permasalahan. Dalam sebuah permainan, metode pencarian akan menentukan apa yang harus dilakukan dimana setiap state menggambarkan kemungkinan posisi pada suatu saat. Metode pencarian adalah bagian dari kesimpulan dimana setiap state menggambarkan hipotesis dalam sebuah rangkaian deduktif.

Gambar 2.3 Bagan Metode Pencarian [4]

Pada gambar di atas, metode penulusuran dibagi menjadi dua

golongan, yakni pencarian buta (blind search) dan pencarian terbimbing

(heuristic search). Beberapa contoh algoritma pencarian yang menggunakan

metode heuristic search adalah : Best First Search, Greedy Search, A* (A

(15)

15

2.2.1 Pencarian Buta

Pencarian buta (Blind Search) adalah pencarian solusi tanpa adanya informasi yang dapat mengarahkan pencarian untuk mencapai goal

state dari current state [4]. Informasi yang ada hanyalah definisi goal

state itu sendiri sehingga algoritma dapat mengenali goal state. Apabila tidak

ada informasi maka pencarian buta dalam kerjanya akan memeriksa node-node secara tidak terarah dan kurang efisien untuk kebanyakan kasu s karena banyanknya node yang dikembangkan. Beberapa contoh algoritma yang termasuk blind searchadalah Breadth First Search, Uniform Cost Search,

Depth First Search, Depth Limited Search, Interative Deepening Search dan

Bidirectional Search [4].

2.2.2 Pencarian Terbimbing

Kata heuristik berasal dari kata kerja bahasa Yunani, heuriskein, yang berarti mencari atau menemukan. Dalam dunia pemograman, sebagian orang menggunakan kata heuristik sebagai lawan kata dari algoritmik, dimana kata heuristik ini diartikan sebagai suatu proses yang mungkin dapat menyelesaikan suatu masalah tetapi tidak ada jaminan bahwa solusi yang dicari selalu dapat ditemukan. Di dalam mempelajari metode – metode pencarian ini, kata heuristik diartikan sebagai suatu fungsi yang memberikan suatu nilai berupa biaya perkiraan (estimasi) dari suatu solusi [4].

Pencarian terbimbing (Heuristic Search) mempunyai informasi tentang biaya untuk mencapai goal state dari current state. Pencarian terbimbing dapat melakukan pertimbangan untuk mengembangkan atau memeriksa node-node yang mengarah ke goal state. Pencarian terbimbing untuk menghitung

cost ke goal state digunakan fungsi heuristic. Fungsi heuristic berbeda dari

(16)

16

2.2.3 Algoritma A*(A Star)

Algoritma A* (A Star) merupakan perbaikan dari metode BFS dengan memodifikasi fungsi heuristicnya. A* (A Star) akan meminimumkan total biaya lintasan. Pada kondisi yang tepat, A* akan memberikan solusi yang terbaik dalam waktu yang optimal. Pencarian menggunakan algoritma A* mempunyai prinsip yang sama dengan algoritma BFS hanya saja dengan dua faktor tambahan yaitu:

1. Setiap sisi mempunyai cost yang berbeda-beda, seberapa cost untuk

pergi dari satu simpul ke simpul lain.

2. Cost dari setiap simpul ke simpul tujuan bisa diperkirakan. Ini

membantu pencarian sehingga lebih kecil kemungkinan kita mencari

ke arah yang salah.

Cost untuk setiap simpul tidak harus berupa jarak. Cost bisa saja

berupa waktu bila ingin mencari jalan dengan waktu tercepat untuk dilalui.

Algoritma A* bekerja dengan prinsip yang hampir sama kecuali dengan dua

perbedaan yaitu :

1. Simpul-simpul di list terbuka diurutkan oleh cost keseluruhan dari

simpul awal ke simpul tujuan, dari cost terkecil sampai cost terbesar.

Cost keseluruhan dihitung dari cost dari simpul awal ke

simpul sekarang (current node) ditambah cost perkiraan menuju

simpul tujuan.

2. Simpul di list tertutup bisa dimasukkan ke list terbuka bila jalan

terpendek menuju simpul tersebut ditemukan.

Cost antara simpul adalah jaraknya dan perkiraan cost dari suatu simpul kesimpul tujuan adalah penjumlahan jarak dari simpul tersebut ke simpul tujuan. Untuk lebih mudah dimengerti, berikut rumusnya.

(17)

17

keterangan :

f(n) = fungsi evaluasi

g(n) = biaya yang sudah dikeluarkan dari keadaan awal sampai

keadaan h(n) = estimasi biaya untuk sampai pada suatu

tujuan mulai dari n

Node dengan nilai terendah merupakan solusi terbaik untuk diperiksa pertama kali pada g(n) + h(n). Dengan fungsi heuristic yang memenuhi kondisi tersebut maka pencarian dengan algoritma A* dapat optimal.Keoptimalan dari A* cukup langsung dinilai optimal jika h(n) adalah

admissible heuristic yaitu nilai h(n) tidak akan memberikan penilaian lebih

pada cost untuk mencapai tujuan. Salah satu contoh dari admissible

heuristic adalah jarak dengan menarik garis lurus karena jarak terdekat dari

dua titik adalah dengan menarik garis lurus [4].

Beberapa terminologi dasar yang terdapat pada algor itma ini adalah starting point, current node, simpul, neighbor node, open set, closed

set, came from, harga (cost), walkability, target point.

1. Simpul awal adalah sebuah terminologi untuk posisi awal sebuah benda.

2. Current node adalah simpul yang sedang dijalankan dalam

algoritma pencarian jalan terpendek.

3. Simpul adalah petak-petak kecil sebagai representasi

dari area pathfinding. Bentuknya dapat berupa persegi,

lingkaran, maupun segitiga.

4. Neighbor node adalah simpul-simpul yang bertetangga dengan

current node.

5. Open List adalah tempat menyimpan data simpul yang

(18)

18

6. Closed List adalah tempat menyimpan data simpul sebelum

current node yang juga merupakan bagian dari jalur

terpendek yang telah berhasil didapatkan.

7. Parent adalah tempat menyimpan data ketetanggaan dari suatu

simpul, misalnya y parent x artinya neighbor node y dari

current node x.

8. Harga (F) adalah nilai yang diperoleh dari penjumlahan nilai G, jumlah nilai tiap simpul dalam jalur terpendek dari

starting point kecurrent node, dan H, jumlah nilai perkiraan

dari sebuah simpul ketarget point.

9. Target point yaitu simpul yang dituju.

10. Walkability adalah sebuah atribut yang menyatakan apakah

sebuah simpul dapat atau tidak dapat dilalui olehcurrent node.

Algoritma A* secara ringkas langkah demi langkahnya adalah sebagai berikut:

1. Tambahkan simpul awal ke dalam open list.

2. Ulangi langkah berikut sampai pencarian berakhir:

a. Carilah simpul n dengan biaya F(n) paling rendah, dalam open

list.Simpul dengan biaya F terendah kemudian disebut current

node.

b. Keluarkan current node dari open list dan masukkan ke dalamclosed list.

c. Untuk setiap 8 simpul (neighbor node) dari current node

lakukan langkah berikut:

1). Jika sudah terdapat dalam closed list atau tidak walkable, maka abaikan, jika tidak lanjutkan.

(19)

19

3). Jika sudah ada dalam open list, periksa apakah ini jalan dari simpul ini ke current node yang lebih baik dengan menggunakan biaya G sebagai ukurannya. Simpul dengan biaya G yang lebih rendah berarti bahwa ini adalah jalan yang lebih baik. Jika demikian, buatlah simpul ini

(neighbor node) sebagai parent dari current node, dan

menghitung ulang nilai G dan F dari simpul ini.

d. Berhenti ketika:

1. Menambahkan target point ke dalam closed list, dalam hal

ini jalan telah ditemukan, atau,

2. Gagal untuk menemukan target point, dan open list kosong. Dalam kasus ini, tidak ada jalan.

e. Walaupun telah mencapai target point, jika masih ada

neighbor node yang memiliki nilai yang lebih kecil, maka

simpul tersebut akan terus dipilih sampai bobotnya jauh lebih besar atau mencapai target point dengan bobot yang lebih kecil dibanding dengan simpul sebelumnya yang telah mencapai target point.

f. Pada saat pemilihan simpul berikutnya, nilai F(n) akan dievaluasi, dan jika terdapat nilai F(n) yang sama maka akan dipilih berdasarkan nilai G(n) terbesar.

3. Simpan jalan. Bekerja mundur dari target point, pergi dari masing- masing simpul ke simpul parent sampai mencapai starting

(20)

20

Secara umum dapat digambarkan dengan flowchart sebagai berikut:

(21)

21

2.3 Pengertian Game

Game adalah kebutuhan dasar setiap manusia untuk menikmati hidup dan sebagai media pembelajaran. Game adalah aktifitas yang melibatkan satu atau lebih pemain.Gamedapat pula diartikan sebagai tujuan yang ingin dicapai pemain atau sekumpulan aturan yang menandakan apa yang dilakukan pemain dan yan tidak dapat dilakukan. Gamedimainkan terutama untuk hiburan,kesenangan,tetapi dapat juga berfungsi sebagai sarana latihan,pendidikan dan simulasi

Pengertian game pada umumnya berarti aktifitas yang bisa berupa tindakan nyata ataupun tindakan di dalam suatu sistem/aplikasi yang dapat membawa kesenangan/hiburan bagi penggunanya. Dimana hiburan yang didapat tetap mempunyai aturan dan target.

2.4 Unsur Game

Dalam sebuah game terdapat unsur-unsur yang melengkapinya. Berikut beberapa unsur dalam suatu game yaitu [6]:

1. Warna

Warna mempunyai kemampuan untuk membuat orang tanggap terhadap semua yang dilihat karena tidak ada seseuat hal bermakna tanpa warna. Warna terlihat sebelum penampakan gambar. Mata manusia tertarik oleh warna pada suatu level

(22)

22

Gambar 2.5 Warna Primer dan Sekunder [6]

2. Komposisi

Komposisi adalah pengaturan segala elemen didalam sebuah karya desain yang sedemikian rupa dengan tujuan tertentu.Komposisi yang baik adalah komposisi yang mampu memenuhi kebutuhan dan tujuan desain, mudah dipahami dan membentuk kesatuan yang serasi dan harmonis. Kemudian layout yaitu perencanaan, penempatan semua unsur mulai dari tulisan, gambar, ilustrasi, teks, nama dan sebagainya dengan pengkuran secara seksama, komposisi yang sesuai dengan anak-anak adalah komposisi yang sederhana dan tidak menggunakan petunjuk terlalu rumit. Kesederhanaan diwujudkan dengan penggunaan visual 2D dan penerapan warna -warna dalam seluruh aspek desain.

3. Bentuk dasar

Bentuk dasar adalah bentuk-bentuk yang mudah ditemui dalam kehidupan sehari-hari seperti kotak, lingkaran, segitiga dan lain sebagainya.

(23)

23

4. Tipografi

Tipografi merupakan representasi visual dari sebuah bentuk komunikasi verbal dan merupakan property visual yang pokok dan efektif. Huruf memainkan peranan penting dalam keberhasilan suatu bentuk komunikasi grafis. Dalam media pembelajaran untuk anak-anak, sebuah huruf harus legible yaitu jelas dan memiliki tingkat kemudahan untuk dibaca.

5. Audio

Audio adalah sinyal elektrik yang digunakan untuk membawa suara dalam batas pendengaran manusia. Audio merupakan komponen sistem yang sudah termasuk didalamnya atau dapat ditambahkan pada komputer.

2 . 5 Jenis-jenis Game

Berikut ini beberapa jenis game berdasarkan cara pembuatannya, cara pemasarannya dan mesin yang menjalankannya [6]. Jenis-jenis game

tersebut adalah : 1. Game PC

Game PC adalah game yang dimainkan pada PC (Personal Computer) yang memiliki kelebihan yaitu tampilan antarmuka yang baik untuk input maupun output. Output

(24)

24

2. Game Console

Game console adalah game yang dijalankan pada suatu mesin

spesifik yang biasanya tersedia di rumah seperti Xbox, Nintendo Wii

dan lain-lain.

3. Game Arcade

Game arcade adalah game yang dijalankan pada mesin dengan

input dan output audio visual yang telah terintegrasi dan tersedia

ditempat -tempat umum.

4. Game Online

Game online adalah game yang hanya dapat dumainkan

secara onlinemelaui LAN atau internet.

2.6 Genre Game

Berdasarkan genre, game dapat dibagi menjadi beberapa genre yaitu [6] :

1. Action Game

Action game dikategorikan sebagai game play dengan model

pertarungan. Berikut beberapa macam game yang termasuk dalam

genre action gameyaitu :

a. Action Adventure Game

Genre game yang berfokus pada eksplorasi dan biasanya

mempunyai unsur item gathering, penyelesaiaan puzzle

simple dan pertarungan. Contoh game dari genre ini adalah

The Legend Of Zelda series danMetroid series.

b. Stealth Game

Termasuk dalam genre terbaru, biasanya digolongkan dalam

mata-mata yang bias melakukan aksinya secara rahasia. Contoh

(25)

25

c. Survival Horror Game

Genre game yang berusaha membuat pemain menjadi tegang

dan takut dengan elemen-elemen horror. Contoh game dari genre

ini adalah Resident Evil series danAlone in The Dark.

d. Beat’em Up Game

Genre game combat dimana satu orang melawan banyak

musuh yang telah disediakan. Contoh game dari genre ini

adalah Dynasty Warrior seriesdanfinal fight

e. Fighting Game

Game pertarungan dua pemain dengan jurus-jurus yang

biasa dikeluarkan dengan menekan beberapa tombol pada

keyboard dengan urutan tertentu. Contoh game dari genre ini

adalah Street Fighter danTekken series.

f. Maze Game

Genre game yang membutuhkan kecepatan berpikir dan

bereaksi serta berunsur ketepatan menavigasi. Contoh game dari

genre ini adalah Pac- Man.

g. Platfrom Game

Genre Game dengan game playberlari, melompat, mengayun dan

sebagainya. Contoh game dari genre ini adalah Donkey Kong

dan Ray Man.

h. Shooter

a) First Person Shooter Game

Genre game yang mengutamakan shooting dan combat

dari perspektif langsung mata karakter yan bertujuan untuk

memberikan pemain perasaan berada ditempat itu dan bisa fokus

(26)

26

b) Massively Multiplayer Online First Person Shooter Game

Genre game yang mengkombinasikan game play first person

shooter dengan dunia virtual dimana banyak player juga ikut

bermain melaui internet. Contoh game dari genre ini adalah

Counter Strike Online.

c) Third Person Shooter Game

Genre game yang sama seperti first person shooter gameyaitu

mengutamakan shooting dan combat dari perspektif karakter yang

bertujuan untuk memberikan pemandangan yang lebih luas dan

(27)

27

2.7 OOP (Object Oriented Programming)

Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku. Dalam kehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata seperti manusia, hewan, mobil, komputer, handphone, pena, ataupun benda yang tidak nyata atau konsep, seperti halnya tabungan bank, sistem antrian, sistem internet banking, dan sebagainya. Jadi pengertian OOP adalah konsep yang membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (konsep). Jika kita menggunakan OOP maka akan ada enam keuntungan yang dapat diperoleh, yaitu [7]

1. Alami (Natural).

2. Dapat diandalkan (Reliable).

3. Dapat digunakan kembali (Reusable).

4. Mudah untuk dalam perawatan (Maintainable). 5. Dapat diperluas (Extendable).

6. Efisiensi waktu.

Berikut ini beberapa bahasa pemrograman yang sudah menggunakan konsep OOP, adalah :

1.C++.

2. Visual C++.

(28)

28

2.8 UML (Unified Modeling Language)

UML adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sebuah sistem. UML adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya [8]. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut.

UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar

OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM. UML menyediakan 10 macam diagram yang dapat digunakan untuk memodelkan aplikasi berorientasi objek yang dibuat, yaitu :

2.8.1 Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan

dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang atau sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.

Use case diagram dapat sangat membantu menyusun requirement

sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test caseuntuk semua feature yang ada pada sistem.

Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case

(29)

29

Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.

Sebuah use case juga dapat meng-extend use case lain dengan

behaviour- nya sendiri. Sementara hubungan generalisasi antar use case

menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain [8].

2.8.2 Class Diagram

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan

sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

Class diagram menggambarkan struktur dan deskripsi class, package

dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain [8].

2.8.3 Statechart Diagram

Statechart diagram menggambarkan transisi dan perubahan keadaan

(dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat

dari stimuli yang diterima. Pada umumnya statechart diagram

menggambarkan class tertentu (satu class dapat memiliki lebih dari satu

statechart diagram).

(30)

30

2.8.4 Activity Diagram

Activity diagram menggambarkan berbagai alur aktivitas dalam

sistem yang sedang dirancang, bagaimana masing-masing alur berawal,

decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity

diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada

beberapa eksekusi.

Activity diagram merupakan state diagram khusus, dimana sebagian besar

state adalah action dan sebagian besar transisi di-trigger oleh selesainya state

sebelumnya (internal processing). Oleh karena itu activity diagram tidak

menggambarkan behaviour internal sebuah sistem (dan interaksi antar

subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan

jalur-jalur aktivitas dari level atas secara umum [8].

2.8.5 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan

di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message

yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi

vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa

(31)

31

2.8.6 Collaboration Diagram

Collaboration diagram juga menggambarkan interaksi antar objek

seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message. Setiap message

memiliki sequence number, di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama [8].

2.8.7 Component Diagram

Component diagram menggambarkan struktur dan hubungan antar

komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code

maupun binary code, baik library maupun executable, baik yang muncul

padacompile time, link time, maupun run time.

Umumnya komponen terbentuk dari beberapa classdan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain [8].

2.8.8 Deployment Diagram

Deployment/physical diagram menggambarkan detail bagaimana

komponen di-deploy dalam infrastruktur sistem, di mana komponen akan

terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal

Sebuah node adalah server, workstation, atau piranti keras lain yang

digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga

(32)

32

2.9 C#

C# merupakan sebuah bahasa pemrograman yang berorientasi objek yangdikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET

Framework [8]. C# adalah Java versi Microsoft, sebuah bahasa multi

flatform yang didesain untuk bisa berjalan di berbagai mesin. C# adalah pemrograman berorientasi Object (OOP). C# memiliki kekuatan bahasa C++ dan portabilitas sepertiJava. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection,

reflection, akar kelas (root class), dan juga penyederhanaan terhadap

pewarisan jamak (multiple inheritance).

Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana. C# ditujukan agar cocok digunakan untuk menulis

program aplikasi baik dalam sistem clien-server (hosted system)

maupun sistem embedded (embedded system), mulai dari program

aplikasi yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada program aplikasi yang sangat kecil.

Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran program

(33)

33

2.10 Unity

Unity Game Engine adalah software atau game engine yang

digunakan untuk membuat video game berbasis dua atau tiga dimensi dan dapat digunakan secara gratis. Selain untuk membuat game, unity juga dapat digunakan untuk membuat konten yang interaktif lainnya seperti, visual arsitektur danreal-time 3D animasi.

Unity adalah sebuah sebuah tool yang terintegrasi untuk membuat

game, arsitektur bangunan dan simulasi. Unity bisa digunakan untuk

games PC dan games online. Untuk games online diperlukan sebuah plugin, yaitu Unity Web Player, yang sama halnya dengan flash

player pada browser. Bahasa pemrograman yang digunakan

bermacam-macam, mulai dari javascript, C#, danboo [10].

Unity tidak bisa melakukan desain atau modelling, dikarenakan

unitybukan merupakan tools untuk mendesain. Banyak hal yang bisa

di lakukan di unity, ada fitur audio reverb zone , particle effect , sky box

untuk menambahkan langit, dan masih banyak lagi, dan juga bisa langsung edit texture dari editorseperti photoshop dll.

Features (Scripting) di dalamunity adalah sebagai berikut:

1. Mendukung 3 bahasa pemrograman, JavaScript, C#, dan Boo.

2. Flexible and EasyMoving, rotating, dan scaling objects hanya perlu

sebaris kode. Begitu juga dengan duplicating, removing, dan changing

properties.

3. Multi Platform Game bisa di deploy di PC, Mac, Wii, iPhone, iPad dan

browser, android.

4. Visual Properties Variables yang di definisikan dengan scripts

ditampilkan pada editor. Bisa digeser, didrag and drop, bisa memilih warna dengan color picker.

5. Berbasis .NET, penjalanan program dilakukan dengan Open Source

(34)

34

2.11 3ds Max

3ds Max atau 3D Studio Max adalah salah satu software atau

perangkat lunak yang sering digunakan oleh perancang produk untuk membuat animasi atau pemodelan dalam bentuk 3 dimensi. Aplikasi canggih ini dirilis oleh salah satu perusahaan Autodesk Media & Entertainment yang pada mulanya dikenal sebagai Discreet and Kinetix. 3D Max merupakan salah satu dari sekian banyak aplikasi modeling untuk membuat model 3D dan paling

banyak digunakan oleh perancang yang tersebar di seluruh dunia [11].

Sejalan dengan berkembangnya teknologi termasuk juga dalam bidang komputerisasi. 3D Max pun mengalami perubahan-perubahan untuk menyesuaikan dengan kemampuan komputer yang semakin tinggi dalam hal grafis. 3D Max dikembangkan dari aplikasi sebelumnya yang bernama 3D

Studio for Dos, tetapi aplikasi ini hanya diperuntukan untuk platform Win32.

Dengan semakin canggihnya kemampuan software ini, maka tidak

aneh 3D Max menjadi program animasi komputer 3D dengan penjualan

terbesar dunia. Software ini memiliki kemampuan modeling yang kuat dan merupakan plugin architecture yang fleksibel dan bekerja dengan

platform Microsoft Windows. 3D Studio Max banyak digunakan oleh para

pembuat dan perancangvideo game, visual architecture, design product

(35)

35

BAB III

ANALISIS DAN PERANCANGAN

SISTEM

3.1 Analisis Masalah

Neural network atau lebih dikenal sebagai jaringan saraf tiruan (JST)

merupakan jaringan dari sekelompok unit pemroses kecil yang didasari oleh jaringan saraf manusia yang dapat mengubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang berada dalam jaringan tersebut.

Adapun inspirasi awal dari pembentukan algoritma ini sendiri yaitu sistem pemrosesan informasi yang ada pada otak manusia, sel syaraf memilii cabang struktur input (dendrites), dimana sebuah inti sel dan percabangan struktur

output (axon) terhubung dengan dendrites yang lain melalui sebuah synapse. Sehingga ketuka sebuah sel aktif, akan muncul sinyal elektronik pada axon

denga batasan yang disebuttreshold.

JST pada umumnya digunakan dalam pemecahan kasus yang dapat dikatakan kurang praktis jika dikerjakan secara manual, seperti pengambilan keputusan, optimasi nilai dan masih banyak yang lainya,sehingga tidak menutup kemungkinan JST dapat digunakan dalam bidang game. Namun pada saat ini perkembangangame yang menggunakan algoritma neural network didalamnya masih dirasakan kurang berkembang, sehingga perlu diadakan pengembangan lebih lanjut baik oleh pihak developer maupun perseorangan.

(36)

6

Adapun jaringan syaraf tiruan dan sistem konvensional sendiri tidak saling bersaing, melainkan saling melengkapi, sistem konvensional melakukan proses

control terhadap jaringan sistem tiruan sehingga memberikan efisiensi yang maksimal, tepat dan memberikan sebuah hasil dengan ketepatan tinggi sesuai dengan tujuan utama penggunaan sistem jaringan syaraf tiruan.

Dari segi performa, JST sudah tidak diragukan lagi dalam pengambilan keputusan dan penentuan perilaku, namun dalam implementasi JST dalam game, tentu saja harus diadakan berbagai macam penyesuaian, baik dari proses, cara kerja, maupun inputan yang diberikan sebagai data awal training, baik secara langsung melaluigameplaymaupun data yang sudah di implementasikan di dalamnya sebelumgamedimulai.

3.2 Karakteristik Game

Dalam pembahasan karakteristik game akan dijelaskan mengenaigame sejenis yang menjadi inspirasi dalam proses desain maupun fitur yang terdapat didalamnya, dimana yang menjadi acuan adalah game Call Of Duty Modern Warfare 2. Adapun

game ini sendiri merupakan game bergenre First Person Shooter (FPS) yang menceritakan tentang perselisihan blok barat dan timur, game ini dilengkapi dengan kemampuan untuk menentukan tingkat kesulitan berdasarkan kemampuan pemain dengan media testing di awal permainan. Berikut adalah beberapa cuplikan permainan dari Call Of Duty Modern Warfare 2 :

(37)

✁ ✂

Gambar 3.2 tampilantesting range Call Of Duty Modern Warfare 2

Tingkat kesulitan di dalamgameini terbagi menjadi 4, yaitu: 1. Recruit

Merupakan tingkat kesulitan termudah dalam game ini, pemain akan menghadapi BOT dengan tingkat kesulitan termudah dengan damage

yang kecil dan akurasi yang buruk. 2. Regular

Tingkat kesulitan dari tingkat ini merupakan “medium difficulty” dari

gameini, merupakan tingkatan yang direkomendasikan bagiplayeryang sudah mengenal game FPS.

3. Hardened

Tingkat kesulitan yang akan menguji sejauh mana kemampuan player

dalam menghadapi musuh yang ada, dengan kemampuan BOT yang diklasifikasikan baik, dengan tingkatdamageyang sama dengandamage

(38)

✄8

4. Veteran

Merupakan tingkatan tersulit dalam game ini, bentuk dari simulasi real

condition, yaitu dengan tingkathealthseparuh darihealthnormal, tingkat

damage yang mencapai 150%damagenormal dan tingkat akurasi BOT

antara 95–99%.

Tingkat kesulitan yang akan dimainkan olehplayersepanjang alur permainan didapatkan berdasarkan persentase antara waktu penyelesaian stage dan akurasi, dengan asumsi semakin singkat waktu penyelesaianstagedan semakin baik akurasi yang didapatkan maka akan semakin sulit tingkat kesulitan permainan yang di

dapatkan, dan semakin panjang waktu penyelesaian stage dan semakin buruk akurasi yang didapatkan, maka akan semakin mudah tingkat kesulitan yang akan didapatkan.

Untuk alur cerita Call Of Duty Modern Warfare 2 yang pada umumnya bertipe wipe out enemy game yang dibangun akan menggunakan tipe yang sama untuk alur ceritanya, namun untuk hasil daritesting rangeterdapat perbedaan, yaitu pada game yang dibangun, tingtkat kesulitan tidak didapatkan berdasarkan pengelompokan tingkat kesulitan berdasarkan hasil testing, namun tingkat kesulitan akan disesuaikan dengan kemampuan pemain itu sendiri atau dengan kata lain dinamis menyesuaikan dengan kemampuan pemain itu sendiri.

Untuk input daritesting arenadalam game Call Of Duty Modern Warfare 2 sendiri terdiri atas akurasi tembakan, yaitu presentase antara jumlah tembakan yang dilakukan dengan jumlah tembakan yang mengenai target, waktu penyelesaian stage secara keseluruhan, dan juga jumlah korban sipil yang tertembak, dimana dalam kasus ini apabila mengenai target non musuh, maka akan diberikan pinalti berupa penambahan total waktu penyelesaian stage, dan juga otomatis angka korban sipil dalam data test akan bertambah.

Untuk output yang dihasilkan, setelah player menyelesaikan rangkaian test, maka akan muncul rekomendasi tingkat kesulitan yang didapatkan melalui perhitungan dari input yang diperoleh dari hasil testing. Penentuan tingkatan

(39)

☎9

waktu penyelesaian stage, hal ini dikarenakan semakin cepat waktu penyelesaian stage, maka semakin baik akurasi dari player dan semakin sedikit korban sipil yang tertembak.

Penentuan keputusan pergerakan dari BOT dalam game Call Of Duty Modern Warfare 2, tidak digunakan nilai parameter tertentu, hanya menggunakan sistem

cover pointdan BOT akan melakukan keputusan pergerakan secara random hanya

saja tingkat kecepatan dan rangkaian aksi yang akan dilakukan bot akan berbeda mengikuti tingkat kesulitan yang dipilih oleh player.

Gambar 3.3 Gambaran kalkulasi penentuan tingkat kesulitan Call Of Duty Modern Warfare 2

Penerapan AI yang digunakan dalam game ini terbagi menjadi 2 kelompok, yaitu enemy AI dan friendly AI, dimana enemy AI merupakan AI yang akan menyerang player dan merupakan AI yang harus dieliminasi oleh player, sedangkan

friendly AImerupakan support bagiplayer, AI yang akan membantuplayerselama

(40)

✆✝

3.3 Analisis Game

Pada analisis game neural network digunakan untuk pengenalan pola

permainan bagi AI , baik dalam hal penentuan pola gerakan maupun akurasi

dalam menyerang yang tentu saja memerlukan data awal sebagai starter untuk

dimulainya proses learning yang disebut dengandata training.

Data training dalamgameini sendiri diperoleh melalui proses testing awal

yang dilakukan pada menu awal, dimana selama proses ini terjadi pengumpulan

data status dari pemain, baik total tembakan, akurasi, waktu rata-rata, maupun

health pointdari pemain itu sendiri.

3.3.1 Analisis Proses Testing

Proses testing merupakan sebuah tahapan inisialisasi data training yang

akan digunakan untuk menentukan keputusan AI BOT dalam permainan utama,

data training ini hanya digunakan sebagai awalan sebelum player melakukan

tembakan di dalam permainan utama, karena data training akan kembali di

updatedengan variabel-variabel serupa yang ada di dalam permainan utama.

a. Total Tembakan (X1)

Nilai dari total tembakan yang dilakukan dalam proses testing

merupakan sebuah variabel yang didapatkan melalui proses penghitungan

dari jumlah peluru yang ditembakan selama berlangsungnya proses

testing, baik peluru yang mengenai target sasaran maupun yang meleset,

variabel ini didapatkan melalui proses pembacaan input player berupa

mouse click event, atau dalam kata lain pembacaan setiap klik kiri pada

mouse yang dilakukan oleh player selama berlangsungnya proses testing

yang kemudian akan tersimpan secara otomatis ke dalam data training saat

(41)

✞✟

Variabel ini dipilih karena total tembakan yang dilakukan

menggambarkan bagaimana style serangan tembakan yang dimiliki oleh

player, yang merupakan salah satu faktor penting dalam penentuan

keputusan yang akan diambil oleh AI BOT. Sebagai gambaran, terdapat

beberapa style yang umum digunakan dalam game bertipe FPS,

diantaranya:

a. Tipe tembakan on target, yaitu tembakan secara langsung ke arah

target dengan arah yang jelas dan terarah.

b. Tipe tembakan spekulasi, yaitu tipe tembakan dengan menggunakan

tembakan percobaan, yang akan menjadi acuan untuk melakukan

tembakan selanjutnya.

c. Tipe tembakanlure to kill, yaitu tipe tembakan yang dilakukan secara

beruntun hingga mengenai target dalam satu waktu.

Gambar 3.4 proses perhitungan jumlah tembakan yang dilakukanplayer

(42)

✠✡

b. Akurasi tembakan

Nilai dari akurasi pada proses testing merupakan perbandingan antara tembakan yang mengenai target dengan tembakan yang tidak mengenai target selama proses testing berlangsung, variabel ini diperoleh melalui perbandingan hasil pembacaan target colider yang terkena tembakan dengan jumlah tembakan yang dilakukan selama berlangsungnya proses testing yang kemudian akan tersimpan secara otomatis ke dalam data training saat player melakukan mouse click,

variabel ini dipilih karena akurasi merupakan sebuah “identitas” bagi seorangplayer dalam game FPS selain tipe tembakan, hal ini dikarenakan

semakin tinggi tingkat akurasi yang dimiliki oleh seorang player, maka akan semakin sulit untuk melawan player tersebut,yang akan mempengaruhi bagaimana BOT AI menentukan lokasi dan cara bersembunyi dari player tersebut yang tentu saja terlepas dari tingkat

awarenesdariplayeritu sendiri.

Gambar 3.5 proses perhitungan akurasi tembakan yang dilakukan

(43)

☛☞

c. Waktu rata rata

Waktu rata-rata pada proses testing merupakan perbandingan antara jumlah stage dalam proses testing dengan total waktu yang diperlukan untuk menyelesaikan keseluruhanstage, variabel ini diperoleh dengan cara membaca waktu total keseluruhan yang diperlukan oleh player dalam menyelesaikanstage testing, dibagi dengan jumlahstage yang berjumlah

4stage.

Variabel waktu rata-rata ini dipilih karena waktu yang dibutuhkan

dalam menyelesaikan setiap stage memberikan gambaran mengenai seberapa cepat dan tepatplayerdalam menembak target yang telah diatur

sedemikian rupa dengan pengaturan posisi dan tingkat kesulitan yang berbeda.

(44)

✌ ✌

d. Health point

Nilai health point dalam proses testing merupakan nilai health

pointyang dimiliki olehplayerselama proses testing, variabel ini diperoleh

melalui proses pembacaan nilaihealth pointdariplayersetelah dikurangi dengan kerusakan yang dialami oleh player apabila menyentuh objek rintangan yang ada dalam proses testing, variabel ini dipilih karena nilai

health point yang dimilikiplayerakan menggabarkan kemampuanplayer

dalam mengendalikan pergerakan karakter yang dimainkan, dimanaplayer

dalam hal ini mengendalikan karakter agar tidak mengenai objek rintangan

Gambar 3.7 proses perhitunganhealth pointplayer dalam proses testing

3.3.2 Analisis ProsesIn Game

(45)

✍✎

a. Total tembakan

nilai total tembakan yang dilakukan dalam prosesin game, variabel ini diperoleh melalui proses perhitungan jumlah mouse click event yang dilakukan olehplayerselama berlangsungnya permainan utama.

Gambar 3.8 proses perhitungan jumlah tembakan yang dilakukan

playerdalam permainan utama

b. Akurasi Tembakan

Nilai akurasi pada permainan utama adalah perbandingan antara

(46)

✏6

Gambar 3.9 proses perhitungan akurasi tembakan dalam

permainan utama

c. Waktu rata-rata

Nilai waktu rata-rata dalam permainan utama merupakan waktu yang diperlukan player untuk melakukan tembakan yang mengenai BOT AI, variabel ini diperoleh melalui proses pembacaan nilai timer waktu pada saat tembakan player mengenai collider BOT AI. Pada proses ini timer

akan kembali pada posisi awal (nilai 00:00) pada saat tembakan player

(47)

✑✒

Gambar 3.10 proses perhitungan waktu rata-rata dalam permainan

utama

d. Health Point

Nilai health point pada permainan utama merupakan nilai health

pointyang dimilikiplayerselama permainan utama berlangsung, variabel

inidiperoleh melalui proses perhitungan nilai health point player dikurangi dengandamagedari serangan BOT AI, variabel ini dipilih karenaHealth point

dari player selama berlangsungnya permainan akan menentukan tingkat

(48)

✓8

Gambar 3.11 proses perhitunganhealth point playerdalam

permainan utama

Data yang diperoleh kemudian akan diolah melalui algoritma neural

network multi level feedforward sehingga dapat muncul output yang akan

dijadikan acuan dalam penentuan keputusan perilaku bot.State yang diapatkan

diambil berdasarkan pada pola padadata trainingyang dikombinasikan dengan

data testing, sebagai gambaran, apabila pada data training kondisi total

tembakan bejumlah banyak, akurasi rendah, waktu rata rata tinggi dan health

poin pemain rendah, maka respon yang akan diberikan bot dalam penentuan

keputusan akan menjadi cenderung untuk menyerang pemain, hal ini

dikarenakan status permainan pemain yang lemah.

Tentu saja hal ini akan terbalik apabila status permainan pemain kuat, yaitu

jumlah tembakan sedikit, akurasi tinggi, waktu rata rata rendah danhealth poin

tinggi, maka bot akan cenderung bertahan untuk mengimbangi kemampuan dari

pemain itu sendiri, hal ini dimaksudkan untuk memberikan efekbalanceselama

proses permainan berlangsung, yang pada umumnya hanya di organisir dengan

sistem dificulty , atau dalam kata lain dengan tingkat kesulitan yang sudah

(49)

✔9

Dalam implementasinya algoritma JST akan berperan penuh dalam pengambilan keputusan BOT dalam bergerak, yang dalam kasus ini memiliki 3 parameter, yaitu menyerang, bertahan dan berlari. Namun secara keseluruhan proses pengambilan keputusan sangat ditentukan oleh waktu penyelesaian stage

dan akurasi.

Selain dari penggunaan JST dalam penentuan keputusan, komponen lain akan ditangani oleh bantuan sistem, termasuk penentuan akurasi BOT, gerakan yang dilakukan dan kecepatan gerakan BOT, hal ini dikarenakan pada kasus ini AI yang

dibangun hanya terfokus untuk penentuan keputusan yang akan diambil BOT saat bertemu denganplayer.

Gambar 3.12 Gambaran kalkulasi penentuan aksi BOT dengan menggunakan JST

Multi level feed forward

Adapun di dalam permainan, terdapat paramater lain yang digunakan sebagai

pendukung neural network, salahsatu di antaranya adalah parameter jarak serang,

parameter ini digunakan sebagai batas jarak trigger AI BOT untuk melakukan

interaksi dengan player, dengan kata lain sebagai jarak batas minimal antara player

dan AI BOT agar AI BOT memberikan respon, yang bertujuan untuk membatasi

jarak serang AI BOT . Berikut adalah gambaran flowchart interaksi AI BOT dan

(50)

✕✖

(51)

51 3.3.3 Analisis Masukan

Dalam implementasi algoritma neural network feed forward pada AI game FPS yang akan menjadi inputan adalah akurasi menembak dan waktu respon dalam prosestestinggame untuk mendapatkan data inputlearning.

Adapun penjelasan mengenai inputan yang akan dijadikan bahan dalam proses learning yaitu :

a. Total tembakan (X1)

Total tembakan diperoleh melalui proses perhitungan total seluruh tembakan yang dilakukan selama proses testing dengan pembagi 100 dalam sebuah stage, berikut adalah contoh perbandingan yang didapatkan:

5 kali menembak dalam 1 stage = 5/100 ( 0.05) 12 kali menembak dalam 1 stage = 12/100 (0.12) 15 kali menembak dalam 1 stage = 15/100 (0.15) Dst.

Adapun untuk nilai yang didapatkan dalam proses In Gameakan ditambahkan secara langsung ke dalam nilai total tembakan yang didapatkan dalam proses testing, misal:

30 kali menembak dalam prosestesting = 30/100 (0.3) 7 kali menembak dalam prosesIn Game= (30+7)/100 (0.37)

b. Akurasi tembakan (X2)

Akurasi didapatkan melalui proses penghitungan perbandingan antara jumlah tembakan meleset dan jumlah tembakan total yang dilakukan dalam sebuah stage, berikut adalah beberapa contoh perbandingan yang didapatkan

(52)

✗✘

1 kali mengenai target : 5 kali total tembakan = 1/5 (20% atau 0.2) 1 kali mengenai target : 2 kali total tembakan = ½ (50% atau 0.5) 1 kali mengenai target : 3 kali total tembakan = 1/3 (≈33% atau 0.33) Untuk nilai akurasi yang didapatkan dalam proses In Game akan di

ambil nilai rata rata dari hasil penjumlahan nilai akurasi proses

Testingdan prosesin Game, misal:

1 kali mengenai target testing : 5 kali total tembakan = 1/5 (20%) 1 kali mengenai target In game : 1 kali total tembakan = 1/1 (100%) Maka nilai akurasi yang didapatkan adalah (20+100)/2 = 60%

c. Waktu rata-rata (X3)

Waktu rata rata didapatkan melalui proses penghitungan selisih watu antara awal pemain memasuki stage hingga menyelesaikan stage, misalnya:

Pemain memasuki stagepada detik pertama dan menyelesaikanstage

pada detik ke 40 maka perhitunganya adalah 40-1 = 39 detik (dalam satuan menit 39/60 = ~0.65

Untuk nilai rata-rata yang didapatkan dalam prosesin game, selanjutnya akan di ambil nilai rata-rata antara nilai waktu rata-rata in game

dengan nilai rata-rata yang diperoleh pada saattestingmisal: Waktu rata-rata yang diperoleh selama prosestesting

40-1 = 39 detik (dalam satuan menit 39/60 = ~0.65) Waktu rata rata yang diperoleh dalam prosesin game

10-1 = 9 detik ( dalam satuan menit 9/60 = 0.15) Maka waktu rata rata yang akan diperoleh adalah

(53)

✙✚

d. Health point(X4)

Health pointdidapatkan melalui proses penghitunganhealth pointyang tersisa dari player dengan pembagi 100, berikut adalah contoh perbandingan yang dilakukan:

Apabilahealth pointyang tersisa 45 makahealth point= 45/100 (0.45) Apabila healthpointyang tersisa 65 makahealth point= 65/100 (0.65)

Dst..

Sedangkan untuk nilai dariHealth Point yang diperoleh selama proses

In Game, akan diproses dengan pengambilannilai rata-rata antara nilai

Health Point proses testing dan nilai Health Point proses In Game, misal:

Health pointprosestrainingtersisa 65 makahealth point= 65/100 (0.65)

(54)

✛✜

3.4 Analisis Metode

Pada bagian analisis metode implementasi algoritma JST pada AI BOT parameter yang akan digunakan adalah akurasi, waktu respon dan waktu menyelesaikan stage, dimana semua nilai yang didapatkan akan diproses untuk mendapatkan pengambilan keputusan yang optimal, adapun arsitektur yang ada didalamnya adalah sebagai berikut:

Gambar 3.14 Neural network feed forward dengan 4 layer

Dengan 4layer, dan 4hidden layermemungkinkan hasil yang optimal dengan proses yang cukup singkat yang diharapkan dapat memberikan respon yang lebih baik.

Gambar 3.15 gambaran dari tahapan proses yang

(55)

✢ ✢

1.prosesgeneratebilangan random untuk bobot neuron dan bias - Bias

U0j= 0, 92943

- Bobot

U11 = 0,52493 U21= 0,44544 W11 = 0,20073 U12 = -0,22733 U22 = -0,13356 W21 = 0,05074 U13 = 0,73582 U23 = 0,29151

U31 = 0,38764 U41 = 0,90443 U32 = 0,45899 U42 = 0,38949 U33 = 0,84993 U43 = 0,68898

V11 = -0,69586 V21 = 0,23457 V31 = 0,10605 V12 = 0,74686 V22 = -0,19096 V32 = 0,69586

Untuk datalearningyaitu :

X1 = 0,75 X2 = 0,5 X3 = 0,65 X4 = 0,5 Nilai eror 0,3

(56)

✣6

U2 = f(U2_in) = 0,88482

U3_in = 0,92943 + {(0,75 x 0,52493) + (0,5 x 0,44544) + (0,65 x 0,84993) + (0,5 x 0,68898) } = 2,2428

U3 = f(U3_in) = 0,90403

3. Kemudian pencarian nilai nilai untuk layer ketiga, dimisalkan dengan V1 dan V2 yaitu:

V_in = V0j+ X

V = 1/1+e-V_in

V1_in = 0,92943+{(0,09534 x -0,69586) + (0,11518 x 0,23457) + (0,07997 x 0,10605)} = 0,89859

V1 = f(V1_in) = 0,71065

V2_in = 0,92943+((0,17568 x 0,74686) + ( 0,33355 x -0,19096) + (0,16423 x 0,69586)) = 1,11122

V2 = f(V2_in) = 0,75235

4. Terakhir, pencarian nilai nilai untuk layer keempat, dimisalkan dengan W1 yaitu:

W_in = W0j+ X

W = 1/1+e-W_in

W1_in = 0,92943 + ((0,28934 x 0,20073 )+( 0,24764 x 0,05074)) = 1,00007

W= f(W1_in) = 0,73107

MSE = 0,5 (Ʃ (Tkn–Wkn)2) = 0,26733

Proses iterasi terhenti karena nilai MSE telah memenuhi syarat < 0,3

Epoch= 1

(57)

✤✥

- Apabila nilai yang didapat < 0.3 maka bot akan bersembunyi - Apabila nilai yang didapat > 0.3 dan < 0.6 maka bot akan mundur - Apabila nilai yang didapat > 0.6 maka bot akan menyerang

Penentuan batasan diatas dilakukan dengan menggunakan sistem perbandingan antara range nilai dan jumlah keputusan yang diambil, denganrangeantara 0 hingga 1 dengan 3 keputusan makarangeterbagi menjadi 3 bagian, berikut ilustrasinya:

(58)

✦8

Dalam proses updating data learning AI BOT selama permainan berlangsung, update dilakukan secara berkala setiap 5 detik sekali setelah proses learning berakhir di setiap periodenya, dengan cara re-write (menimpa) data yang sudah

ada sebelumnya. Dari sisi AI bot, pada setiap akhir periode dilakukan proses refresh data learning sehingga data yang digunakan selalu merupakan data terbaru yang

dihasilkan oleh algoritma neural network, berikut adalah flow chart proses updating data keputusan AI BOT:

Gambar 3.16 Gambaran proses updating data keputusan dengan menggunakan

(59)

✧9

3.5 Analisis dan Kebutuhan Perangkat Lunak

Perangkat lunak digunakan dalam sebuah sistem merupakan perintah-perintah yang diberikan kepada perangkat keras agar bisa saling berinteraksi diantara keduanya.

Perangkat lunak yang dibutuhkan pengembang untuk pembangunan Game

ini adalah :

1. Sistem operasi Windows Seven. 2. Unity versi 4

3. 3ds Max 2012

4. Graphic card

5. DirectX 9

Perangkat lunak yang dibutuhkan pengguna untuk memainkan game ini adalah :

1. Sistem operasi minimal Windows Xp 2. Graphic card

(60)

60

3.6 Analisis dan Kebutuhan Perangkat Keras

Komputer terdiri dari perangkat keras dan perangkat lunak yang saling berinteraksi. Perangkat lunak memberikan instruksi -instruksi kepada perangkat keras untuk melakukan suatu tugas tertentu, sehingga dapat menjalankan suatu sistem di dalamnya.

Perangkat keras minimum bagi pengembang untuk membangun game

ini adalah sebagai berikut :

1. Processor Core 2 Duo 2,13 Ghz

2. RAM 512 MB

3. VGA 512 MB

4. Harddisk 10 GB

5. Mouse dan Keyboard

Perangkat keras minimum bagi pengguna untuk memainkan game ini adalah sebagai berikut :

1. Dual Core 1,80 Ghz

2. RAM 256 MB

3. VGA 512 MB

4. Harddisk 1 GB

Gambar

Gambar 3.3 Gambaran kalkulasi penentuan tingkat kesulitan Call Of Duty
Gambar 3.4 proses perhitungan jumlah tembakan yang dilakukan player
Gambar 3.5 proses perhitungan akurasi tembakan yang dilakukan
Gambar 3.6 proses perhitungan waktu rata-rata penyelesaian stage
+7

Referensi

Dokumen terkait

Pada halaman prediksi adalah halaman untuk menampilkan prediksi yang akan dilakukan oleh sistem yang menggunakan algoritma EFuNN (Evolving Fuzzy Neural

menyatakan bahwa Skripsi yang berjudul “IMPLEMENTASI ALGORITMA CONVOLUTIONAL NEURAL NETWORK UNTUK KLASIFIKASI EKSPRESI WAJAH” ini adalah karya ilmiah saya sendiri,

Simulasi dari kinerja pengalokasian kanal dinamik dengan menggunakan algoritma Neural Network dapat dilihat pada Gambar 4 yaitu flowchart dari algoritma neural network

Hasil dari pengujian model yang dilakukan adalah memprediksi hasil pemilu legislatif DKI Jakarta 2009 dengan neural network dan neural network berbasis algoritma genetika

Eksperimen yang telah dilakukan dengan mengusulkan Algoritma Genetika (GA) untuk diterapkan kedalam model yang digunakan yakni Neural Network (NN) dalam

Hasil penelitian yang dilakukan dari tahap awal sampai dengan tahap pengujian menggunakan Data Mining dengan algoritma Neural Network untuk kelulusan mahasiswa

Penentuan Nilai parameter Hasil dari pengujian model yang dilakukan pada bab tiga adalah penentuan nilai parameter dengan algoritma Neural Network dan algoritma Neural Network

Sri Winiarti, Copyright ©2021, MIB, Page 831 Deep Learning dalam Mengindetifikasi Jenis Bangunan Heritage dengan Algoritma Convolutional Neural Network Sri Winiarti*, Mochammad