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
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
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
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
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
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
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
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
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
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_ine. 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
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
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
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
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
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
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
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
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
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
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
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).
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
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
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
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.
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 :
✁ ✂
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
✄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
☎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
✆✝
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
✞✟
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
✠✡
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
☛☞
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.
✌ ✌
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
✍✎
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
✏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
✑✒
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
✓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
✔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
✕✖
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
✗✘
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
✙✚
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)
✛✜
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
✢ ✢
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
✣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
✤✥
- 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:
✦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
✧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
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