Implementasi algoritma Neural Network dalam AI Bot Game FPS
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_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+…+ (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)