Implementasi algoritma Neural Network dalam AI Bot Game FPS

(1)

1 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

bahwa tidak menutup kemungkinan implementasi Neural Network dalam AI Game, terutama Game FPS, karena kemampuanya dalam menentukan keputusan yang dirasa cukup untuk menghandel jalanya permainan dengan cukup baik.Kemampuan yang dimiliki NPC setelah menggunakan metode JST hampir dapat dipastikan mendekati kemampuan yang dimiliki oleh human player, hal ini dikarenakan sifat JST yang dapat belajar dari data yang ada, yang dalam hal ini adalah kemampuan dari human player itu sendiri.


(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

awal permainan, GUI, sistem kendali dan key maping yang diimplementasikan dalam game ini.


(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. AI yang dipergunakan adalah Algoritma A* (A Star) yang diterapkan terhadap musuh / Non Playble Character (NPC) untuk menentukan rute pencarian jalur terpendek terhadap target yaitu player.


(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 ada yang di jadikan objek pemasalahan seputar game


(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 tingkat bisnis strategis dan tingkat area bisnis.


(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 hasil yang dibutuhkan.


(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)

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 yang telah dibangun


(9)

9 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:

Gambar 2.1 struktur dasar jaringan syaraf tiruan dan struktur sederhana sebuah neuron[12]


(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 bobot-bobot sinaptik digunakan untuk menyimpan pengetahuan.


(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)

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

+…+ (tkm

-y

km

)

2

}


(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

b. Hasil yang diperoleh akan kurang optimal jika terjadi kesalahan pemilihan struktur layer yang digunakan.


(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)

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

pada algoritma dimana heuristic lebih merupakan perkiraan untuk membantu algoritma dan tidak harus valid setiap waktu. Beberapa contoh algoritma pencarian yang mengguanakan metode heuristic search adalah Best First Search, Greedy Search, A* (A Star) danHill Climbing Search[4].


(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.

f(n) = g(n) + h(n) (II.1)


(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 mungkin diakses dari starting point maupun simpul yang sedang dijalankan.


(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.

2). Jika belum ada pada open list, tambahkan ke open list. Simpan current node sebagai parent dari neighbor node ini. Simpan harga F masing-masing simpul.


(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)

Secara umum dapat digambarkan dengan flowchart sebagai berikut:


(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

karena warna dari objek diterima sebelum detail-detail dipisahkan oleh bentuk-bentuk dan garisnya. Warna merah memiliki panjang gelombang yang terpanjang, biru memiliki panjang gelombang yang pendek sedangkan hijau memiliki panjang gelombang menengah. Pada anak-anak cenderung tertarik pada warna-warna yang cerah dan mencolok. Warna-warna yang cerah terutama warna primer (merah, kuning, biru) dan warna sekunder (orange, ungu, hijau).


(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)

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

visual berkualitas tinggi karena layar komputer biasanya memiliki resolusi yang jauh lebih tinggi dibandingkan dengan layar televisi biasa. Kekurangannya adalah spesifikasi komputer yang sangat bervariasi antar satu komputer dengan komputer yang lainnya menyebabkan beberapa game dapat ditampilkan dengan baik pada satu komputer tetapi tidak berjalan dengan baik pada komputer yang lainnya.


(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)

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 menembak.


(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 gerakan yang lebih banyak.


(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++.

3. Visual Basic. 4.Java.


(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)

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).

Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar stateumumnya memiliki kondisi guardyang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring [8].


(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)

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 didefinisikan dalam diagram ini [8].


(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 aplikasi yang dibuat dengan menggunakan bahasa pemrograman C [9].


(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)

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 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.

Dari segi keunggulan antara sistem jarigan syaraf tiruan dengan sistem konvensional, sistem konvensional sendiri menggunakan pendekatan algoritma, yang dapat didefinisikan bahwa sistem konvensional akan menjalankan sekumpulan perintah untuk melakukan proses pemecahan suatu masalah, dimana saat masalah yang dihadapi memiliki pola baru yang tidak di kenal, maka sistem konvensional tidak dapat memecahkan masalah tersebut, hal ini bertolak belakang dengan sistem jaringan saraf tiruan yang mempelajari pola pola masalah untuk menentukan pola penyelesaian masalah yang dihadapi.


(36)

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

yang diberikan playerpada BOT itu sendiri dan dengan tingkat akurasi yang mencapai 80%.


(38)

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 kesulitan dalam permainan Call Of Duty Modern Warfare 2 sangat bergantung pada


(39)

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

berjalanya permainan, baik menunjukan waypoint yang harus dilalui maupun membantu player dalam mengeliminasi enemy AI, penerapan AI di sini bersifat murni, atau dengan kata lain AI sepenuhnya dikendalikan oleh sistem, baik dari segi penentuan keputusan dalam bergerak, menyerang maupun menggunakan senjata yang ada, seluruhnya ditentukan oleh sistem secara random berdasarkan tingkatan kesulitan yang dipilihplayer.


(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.

Gambar 3.6 proses perhitungan waktu rata-rata penyelesaian stage dalam proses testing


(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

Dalam proses in game, juga terdapat proses pengumpulan data training, memiliki parameter variabel yang sama dengan proses training namun memiliki beberapa proses yang berbeda untuk mendapatkanya, diantaranya:


(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 jumlah tembakan yang mengenai BOT AI dengan tembakan yang meleset, variabel ini diperoleh melalui perhitungan hasil pembacaan jumlah tembakan yang mengenai collider BOT AI dengan tembakan yang meleset, variabel ini dipilih karena akurasi selama berlangsungnya permainan utama didapatkan dengan cara menembak target yang bergerak, yang tentu saja memiliki tingkat kesukaran yang lebih bila dibandingkan dengan proses testing.


(46)

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

mengenai collider BOT AI untuk kemudian dimulai kembali hingga tembakanplayerkembali mengenai collider BOT AI.


(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

awarenessdan kejelianplayerdalam menghindari serangan BOT AI maupun dalam serangan yang dilakukanplayerterhadap BOT AI.


(48)

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)

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 Player selama permainan berlangsung:


(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)

Health point In Gametersisa 85 makahealth point= 85/100 (0.85) MakaHealth pointyang akan diperoleh adalah (0.65 + 0.85) /2 = 0.75


(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

2. pencarian nilai nilai untuk layer kedua, dimisalkan dengan U1,U2 dan U3 yaitu:

U_in = U0j+ X

U = 1/1+eU_in

U1_in = 0,92943 + {(0,75 x 0,52493) + (0,5 x 0,44544) + (0,65 x 0,38764) + (0,5 x 0,90443) } = 2,25003

U1 = f(U1_in) = 0,90465

U2_in = 0,92943 + {(0,75 x 0,52493) + (0,5 x 0,44544) + (0,65 x 0,45899) + (0,5 x 0,38949) } = 2,03894


(56)

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

5. Data hasil epoch tersebut akan di absolutkan dan selanjutnya akan diproses untuk pengambilan keputusan, berikut adalah ketentuan dalam pengambilan keputusan yang dilakukan:


(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:

Maka berdasarkan hasil perhitungan, keputusan yang diambil adalah menyerang, karena nilai yang didapat bernilai 0,99 , karena berada di wilayah 0,6 sampai dengan 1.


(58)

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)

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)

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


(61)

3.7 Analisis Pengguna

Pada analisis pengguna ini akan mencakup analisis beberapa parameter terhadap calon pemain dari aplikasi. Game yang akan dibangun ini dapat dimainkan oleh berbagai kalangan.

Ada 2 hal yang akan memudahkan pemain ketika memainkangameini yaitu pengetahuan dan pengalaman, terutama pengetahuan dan pengalaman dalam memainkan game first person shooter.


(62)

1. User Knowledge and Experience

Berikut ini klasifikasi knowledge adn experience dari pengguna aplikasi.

Tabel 3.1 Analisis klasifikasi knowledge and experience

Education Level Bisa digunakan oleh berbagai kalangan, seperti pelajar, mahasiswa hingga masyarakat awam

Reading Level Bisa digunakan oleh berbagai level

pendidikan dengan reading level

yang sedang

Typing Skills Average (40 wpm) Tidak memerlukan typing skills yang tinggi

Computer Literacy Moderate (menengah)

Task Experience Bisa digunakan oleh dengan pengalaman penggunaan computer dangame yang sedang

System Experience Bisa digunakan oleh dengan pengalaman penggunaan komputer dangame yang sedang

Application Experience Bisa digunakan dalam semua sistem operasi Windows xp / vista/ 7

Native Language Menggunakan satu bahasa, yakni Indonesia

Use Of Other System Bisa di jalankan tanpa perlu


(63)

2. Users Physical Characteristic

Keadaan fisik seseorang mungkin akan berpengaruh pada penggunaan aplikasi game ini. Ada hal-hal yang harus diperhatikan juga terhadap user dari karakteristik fisiknya untuk dapat menggunakan aplikasi ini yaitu, Color Blind,

Handednes, danGender.

Tabel 3.2 Analisis Users Physical Characteristic

Age Semua umur

Gender Pria dan Wanita

Handedness Kanan dan Kiri

Color Blind User yang tidak bisa membedakan warna

yang satu dengan yang lainnya (buta warna) masih mampu menggunakan aplikasi ini, karena tidak ada indicator warna-warna khusus yang membedakan antara fungsional yang satu dengan fungsional yang lainnya. Akan tetapi penggunaannya tidak akan optimal karena dalam game ini terdapat banyak sekali perbedaan warna yang menunjang interaksi dan ketertarikan dalam permainan.


(64)

3.8 Use Case Diagram

Use case atau diagram use case merupakan pemodelan untuk prilaku

(behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan

sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat.Di bawah ini adalah perancangan use case yang terdapat pada game

first person shooter Neural network feed forward.


(65)

3.9 Definisi Use Case

Definisi use case berfungsi untuk menjelaskan proses yang terdapat pada setiap use case. Berikut di bawah ini tabel dari definisi use caseyaitu

Tabel 3.3 Definisi Use Case

No Use Case Deskripsi

1 Memulai Permainan Proses untuk memulai permainan

2 Melihat opsi Proses untuk meilhat petunjuk permainan dan control permainan

3 Mengakhiri Permainan Proses untuk keluar dari permainan atau mengakhiri permainan

4 Permainan Proses ketika pemain telah masuk ke dalam permainan.

5 Berjalan Proses untuk menggerakan pemaian melalui interaksi dengan keyboard

6 Meloncat Proses untuk membuat pemain

melakukan tindakan meloncat melalui interaksi dengankeyboard

7 Menembak Proses untuk menembakan peluru yang terdapat pada senjata

8 Mengambil Darah Proses untuk menambah darah /healtketika darah tersisa sedikit lagi

9 Mengganti Senjata Proses untuk menukar senjata

10 Mengambil Peluru Proses untuk menambah peluru senjata

11 Memberhentikan Permainan

Proses untuk menghentikan sementara permainan


(66)

3.10 Skenario Use Case

Skenario use case merupakan bagian pada use case yang menunjukkan proses apa saja yang terjadi pada setiap bagian di dalam use case, dimana pengguna memberikan perintah pada setiap bagian dan respon apa yang diberikan oleh sistem kepada pengguna setelah pengguna memberikan perintah pada setiap bagian-bagian use case. Berikut ini beberapa skenario use case berdasarkan use case yang ada yaitu :

Tabel 3.4 Skenario Use Case Memulai Permainan Identifikasi

Nomor 1

Nama Memulai Permainan

Tujuan Melihat scene loading dan masuk ke

dalam permainan

Deskripsi Proses untuk melihat scene cerita

permainan dan masuk ke dalam

Aktor Pemain

Skenario Utama

Kondisi awal Pemain berada di menu utama

Aksi Aktor Reaksi Sistem

Memilih menu mainkan

Menampilkan scene loading tentang latar belakang permainan

Menampilkan permainan


(67)

Tabel 3.5 Skenario Use Case Melihat opsi Identifikasi

Nomor 2

Nama Melihat Informasi opsi

Tujuan Menampilkan informasi opsi

Deskripsi Proses untuk menampilkan informasi opsi

Aktor Pemain

Skenario Utama Kondisi awal Pemain berada di menu utama Aksi Aktor Reaksi Sistem

Memilih menu petunjuk

Menampilkan informasi tentang opsi

keyboard danmouse.


(68)

Tabel 3.6 Skenario Use Case Mengakhri Permainan Identifikasi

Nomor 3

Nama Mengakhiri Permainan

Tujuan Keluar dari permainan

Deskripsi Proses untuk mengakhiri permainan

Aktor Pemain

Skenario Utama Kondisi awal Pemain berada di menu utama Aksi Aktor Reaksi Sistem

Memilih menu keluar

Keluar dari permainan atau mengakhiri permainan

Kondisi Akhir Sistem akan keluar dari permainan

Tabel 3.7 Skenario Use Case Permainan Identifikasi

Nomor 4

Nama Permainan


(69)

Tabel 3.8 Skenario Use Case Berjalan Identifikasi

Nomor 5

Nama Berjalan

Tujuan Menggerakan karakter atau tokoh utama

Deskripsi Proses untuk menggerakan karakter atau tokoh utama yang dimainkan dalam permainan menggunakan Deskripsi Proses ketika pemain telah masuk ke dalam permainan

Aktor Pemain

Skenario Utama Kondisi awal Sistem menampilkan permainan

Aksi Aktor Reaksi Sistem

Sistem menampilkan permainan

Pemain mulai memainkan

permainan

Pemain berhasil menyelesaikan misi

Sistem merespon misi yang telah selesai Pemain gagal menyelesaikan misi

yang ada di dalam permainan

Sistem kembali ke awal permainan Kondisi Akhir Sistem akan menampilkan tampilan misi selesai jika

pemain berhasil menyelesaikan permainan dan sistem akan kembali ke awal permainan jika pemain gagal menyelesaikan misi permainan


(70)

keyboard.

Aktor Pemain

Skenario Utama

Kondisi awal Pemain menekan tombol padakeyboard

Aksi Aktor Reaksi Sistem

Pemain menekan tombol W

Sistem menggerakan karakter ke depan Pemain menekan tombol D

Sistem menggerakan karakter ke kanan Pemain menekan tombol A

Sistem menggerakan karakter ke kiri Pemain menekan tombol S

Sistem menggerakan karakter ke belakang

Pemain menekan tombol W dan A secara bersamaan

Sistem menggerakan karakter maju serong ke kiri

Pemain menekan tombol W dan D secara bersamaan

Sistem menggerakan karakter maju serong ke kanan

Pemain menekan tombol S dan D secara bersamaan

Sistem menggerakan karakter mundur serong ke kanan

Pemain menekan tombol S dan A secara bersamaan

Sistem menggerakan karakter mundur serong ke kiri

Kondisi Akhir Sistem akan menampilkan karakter atau tokoh utama melakukan pergerakan berupa berjalan.


(1)

vii

3.14 Perancangan Sistem...97

3.14.1 Perancangan Komponen Permainan... 97

3.13.1.1Karakter... 97

3.14.2 Perancangan Arsitektur...99

3.13.2.1Perancangan struktur Menu... ..99

3.14.3 Perancangan Antar Muka... 99

3.14.3.1Jaringan Semantik... 106

BAB IV IMPLEMENTASI DAN PENGUJIAN...107

4.1 Implementasi...107

4.1.1 Implementasi Perangkat Keras...107

4.1.2 Implementasi Perangkat Lunak...107

4.1.3 Implementasi Instalasi Aplikasi Game...108

4.1.4 Implementasi Antarmuka...108

4.2 Pengujian...112

4.2.1 Pengujian Alpha...112

4.2.1.1Skenario Pengujian Aplikasi...112

4.2.1.2Kasus dan Hasil Pengujian (Black Box Testing)...114

4.2.1.3Kesimpulan Pengujian Blackbox...122

BAB V KESIMPULAN DAN SARAN...123

5.1 Kesimpulan...123


(2)

DAFTAR PUSTAKA

[1] B. Soni, "Bots Trained to Play Like a Human are More Fun,"Edith Cowan University,2008.

[2] M. Nazir, Metode Penelitian, Jakarta: Ghalia Indonesia, 2009.

[3] D. S. a, "Introduction to multi-layer feed-forward neural networks," Chemometrics and Intelligent Laboratory Systems,1997.

[4] S. Kusumadewi, Artificial Intelligence (Teknik dan Aplikasinya), Yogyakarta: Graha Ilmu, 2003.

[5] K. Kevin, " Artificial Intelligence,"Carnegie Mellon University,2000. [6] Thomas, "Genre and game studies : Toward a critical approach to,"

University of Melbourne,2006.

[7] A. Nugroho, Rational Rose untuk Pemodelan Berorientasi objek, Bandung: Informatika, 2005.

[8] M. Fowler, UML Distilled edisi 3 Panduan Singkat Bahasa Pemodelan Object Standar, Yogyakarta: Andi, 2005.

[9] W. Komputer, Belajar Pemrograman C#, Yogyakarta: Andi, 2008.

[10] "Create the game you love with unity," 30 11 2014. [Online]. Available: http://unity3d.com/unity/. [Accessed 30 11 2014].

[11] D. G. Zaharuddin, The Making of 3D Animation Movie Using 3Dstudio Max, Bandung: Informatika, 2007.

[12] E. Martiana, "http://lecturer.eepis-its.edu/," 28 11 2011. [Online]. Available:

http://lecturer.eepis-its.edu/~entin/Kecerdasan%20Buatan/Buku/Bab%208%20Jaringan%20Syar af%20Tiruan.pdf. [Accessed 3 2 2015].


(3)

iii

KATA PENGANTAR

Puji dan syukur, serta ungkapan terima kasih yang sebesar-besarnya kehadirat Allah SWT Yang Mahakuasa karena atas berkat, anugerah, rahmat dan karunia-Nya yang tiada henti, sehingga penulis dapat senantiasa memperoleh semangat, kekuatan dan kemampuan untuk menyelesaikan skripsi ini dengan judul : “IMPLEMENTASI ALGORITMA NEURAL NETWORK DALAM AI BOT GAME FPS”.

Penulis menyadari bahwa penyusunan skripsi ini masih banyak terdapat kekurangan dan masih jauh dari kesempurnaan, hal ini dikarenakan keterbatasan kemampuan yang penulis miliki. Oleh karena itu, dengan penuh kerendahan hati penulis menerima segala saran dan kritik yang sifatnya membangun.

Selesainya skripsi ini tidak terlepas dari bantuan berbagai pihak, sehingga pada kesempatan ini penulis dengan segala kerendahan hati dan penuh rasa hormat mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah memberikan bantuan moril maupun materil secara langsung maupun tidak langsung kepada penulis dalam penyusunan skripsi ini hingga selesai, terutama kepada yang saya hormati:

1. Ibu Nelly Indriani W, S.Si., M.T. selaku dosen pembimbing yang telah meberikan banyak kritik, saran maupun arahan yang sangat berarti dalam penyusunan skripsi ini

2. Teristimewa kepada kedua orang tua penulis dan segenap keluarga yang selalu mendoakan, memberikan motivasi dan pengorbanan baik dari segi moril maupun materi kepada penulis sehingga penulis dapat menyelesaikan skripsi ini.

3. Untuk seluruh teman-teman dan sahabat yang telah memberikan dukungan dan masukan sebelum, selama dan sesudah proses pengerjaan skripsi, terutama kepada keluarga besar IF-1 2010 yang selalu menemani selama 9 semester yang panjang ini.


(4)

iv

4. Kepada seluruh pihak yang telah mendukung dalam pengerjaan Game, terutama untuk keluarga besar forum.unity3d.com serta segenap rekan rekan developer yang telah berjasa dalam penyediaan aset-aset pendukung.

5. Terimakasih juga kepada semua pihak yang telah memberikan bantuan dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu persatu.

Akhir kata penulis mengucapkan terimakasih kepada semua pihak yang telah membantu dan penulis berharap semoga skripsi ini dapat bermanfaat bagi kita semua dan menjadi bahan masukan bagi perkembangan dunia

pendidikan terutama dunia kecerdasan buatan.

Bandung, Januari 2015

Penulis

Tonny Sulistanto Saputra NIM. 10110007


(5)

(6)