IMPLEMENTASI ALGORITMA A* PATHFINDING UNTUK ENEMY AI DI GAME WAYANG ROBOT
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Oleh :
Ilham Hasymi Effendi 09560242
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2012
LEMBAR PERSETUJUAN
IMPLEMENTASI ALGORITMA A* PATHFINDING UNTUK ENEMY AI DI GAME WAYANG ROBOT
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Menyetujui,
Pembimbing I
Yuda Munarko, S. Kom, M. Sc NIP: 10806110443
Pembimbing II
Hardianto Wibowo, S.Kom NIDN : 07210386002
LEMBAR PENGESAHAN
IMPLEMENTASI ALGORITMA A* PATHFINDING UNTUK ENEMY AI DI GAME WAYANG ROBOT
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh :
Ilham Hasymi Effendi 09560242
Tugas Akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji pada tanggal 31 Januari 2013
Menyetujui, Penguji I
Ali Sofyan Kholimi, S. Kom
Penguji II
Galih Wasis Wicaksono, S. Kom
Mengetahui,
Ketua Jurusan Teknik Informatika
LEMBAR PERNYATAAN
Yang bertanda tangan dibawah ini :
NAMA : ILHAM HASYMI EFFENDI
NIM : 09560242
FAK. / JUR. : TEKNIK / TEKNIK INFORMATIKA
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “IMPLEMENTASI
ALGORITMA A* PATHFINDING UNTUK ENEMY AI DI GAME WAYANG ROBOT”
beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko/sanksi yang berlaku.
Mengetahui Dosen Pembimbing
Yuda Munarko, S. Kom, M. Sc
Malang, 19 Januari 2013 Yang Membuat Pernyataan
i
ABSTRAK
Wayang Robot adalah game 3D edukasi bergenre 3rd Person Platformer Game yang dibuat untuk mempelajari Aksara Jawa dengan cara yang lebih mudah, menarik, dan menyenangkan. Game ini mengemas pembelajaran Aksara Jawa dengan skenario yang diadaptasi dari kisah pewayangan Ramayana namun direpresentasikan dengan model yang futuristik yaitu robot.
Di dalam game tersebut dibutuhkan kecerdasan buatan (Artificial Intelligence) dan algoritma pathfinding untuk sebuah level di dalamnya. Lebih tepatnya adalah karakter robot Tiny Blaster yang membutuhkan kedua hal tersebut untuk mencari dan mengejar karakter pemain. Algoritma A* (A Star) adalah salah satu algoritma pathfinding yang dirasa sangat tepat untuk diterapkan di game ini karena algoritma tersebut dapat berjalan cepat dan relatif mudah dalam penerapannya.
Hasil penerapan Algoritma A* ini tidak hanya terhenti pada karakter robot Tiny Blaster saja, namun juga bisa diterapkan di seluruh karakter game yang mempunyai perilaku serupa dengan robot Tiny Blaster, baik di dalam game Wayang Robot itu sendiri maupun karakter di game lain.
ii ABSTRACT
Wayang Robot is a 3D educational 3rd Person Platformer Game which is made to study the Aksara Jawa in a more convenient, attractive, and fun. This game is packed with scenarios of learning Aksara Jawa adapted from the story of Wayang Ramayana but is represented by a futuristic model of robot.
This game needs an Artificial Intelligence and pathfinding algorithm for a level in it. More precisely, Tiny Blaster robot character that requires both of them to locate and pursue the player's character. A* (A Star) Algorithm is one of the pathfinding algorithm that seems very appropriate to be applied in this game because the algorithm can run fast and relatively easy to use.
Later, the implementation of the A* Algorithm is not to be applied in Tiny Blaster robot characters only. Expected results of this study could also be applied throughout the game characters that have a similar behavior to the Tiny Blaster robot, which is in the Wayang Robot game itself or characters in other games.
iii
LEMBAR PERSEMBAHAN
Segala puji bagi Allah SWT Tuhan Semesta Alam atas petunjuk, hidayah dan karunia-Nya sehingga Tugas Akhir ini dapat terselesaikan. Melalui lembar persembahan ini penulis menyampaikan ucapan terima kasih kepada:
1. Bapak M. Yusuf Effendi, Ibu Dewi Rukmini, dan Mbak Isna Hidayati Effendi. Keluarga penulis tercinta yang selalu memberikan berbagai dukungan, semangat, serta doanya. 2. Bapak Yuda Munarko, S. Kom, M. Sc dan Bapak Hardianto Wibowo, S.Kom selaku
dosen pembimbing dalam proses penulisan Tugas Akhir ini.
3. Seluruh dosen dan staf Jurusan Teknik Informatika Universitas Muhammadiyah Malang.
4. Saudara-saudara seperjuangan di Infotech UMM yang selama ini selalu berbagi ilmu dengan penulis.
5. Teman-teman terbaik penulis, Hari Sulistiyo, Afif Hidayat, Muhammad Yudhi dan Rizky Anggriawan atas semua suka dan duka yang dialami bersama penulis selama di perkuliahan.
6. Seluruh penghuni kost Cahaya Hati yang telah berbagi banyak pelajaran hidup selama penulis tinggal di sana.
7. Andri Viyono atas kerjasamanya membuat model karakter dan environment 3D yang super keren untuk game “Wayang Robot”.
8. Sri Wahyuningsih yang telah memberikan bantuan dan dukungannya kepada penulis. 9. Rekan-rekan Lotus Game Studio Jakarta yang telah membuka cakrawala pengetahuan
penulis tentang game development dan game programming.
10. Serta semua pihak yang telah berjasa dalam proses pengerjaan Tugas Akhir ini yang tidak bisa penulis sebutkan satu-persatu.
iv
KATA PENGANTAR
Rasa syukur yang amat dalam penulis panjatkan kepada Allah SWT, karena atas berkat limpahan rahmat dan hidayah-Nya penulis mampu menyelesaikan Tugas Akhir ini yang berjudul:
“IMPLEMENTASI ALGORITMA A* (A STAR) PATHFINDING UNTUK ENEMY AI DI GAME WAYANG ROBOT”
Melalui kata pengantar ini penulis ingin menyampaikan permintaan maaf jika terdapat berbagai kekurangan di dalam penulisannya. Penulis menyadari bahwa penulisan Tugas Akhir ini masih jauh dari sempurna. Oleh karena itu penulis mengharapkan kritik dan saran yang membangun dari semua pihak sebagai koreksi untuk penulis. Semoga karya yang sederhana ini dapat membuka cakrawala pengetahuan seluruh pembaca dan dapat mendatangkan ilmu yang bermanfaat. Aamiin.
Malang, 18 Januari 2013 Penulis
v
DAFTAR ISI
ABSTRAK ... i
ABSTRACT... ii
LEMBAR PERSEMBAHAN ... iii
KATA PENGANTAR ... iv
DAFTAR ISI...v
DAFTAR GAMBAR ... vii
DAFTAR TABEL... viii
1. PENDAHULUAN ...1 1.1 Latar Belakang ...1 1.2 Perumusan Masalah ...2 1.3 Tujuan Penelitian ...2 1.4 Batasan Permasalahan ...2 1.5 Metodologi Penelitian ...3 1.6 Sistematika Penulisan ...4 2. LANDASAN TEORI ...6
2.1 Game Wayang Robot ...6
2.1.1 Sekilas Game wayang robot...6
2.1.2 Teknologi Game...6
2.1.3 Desain Karakter ...7
2.1.4 Kontrol Karakter ...7
2.1.5 Skenario dan Gameplay ...8
2.2 Unity 3D Game Engine ...9
2.3 Kecerdasan Buatan...11
2.4 Waypoint ...13
vi
3. ANALISA DAN PERANCANGAN SISTEM ...16
3.1 Analisa Sistem ...16
3.1.1 Spesifikasi Perangkat Lunak ...16
3.1.2 Fungsionalitas Sistem ...16
3.2 Perancangan Sistem ...17
3.2.1 Menyiapkan Environment Game ...17
3.2.2 Menyiapkan Karakter...18
3.2.3 Menyapkan dan Merancang Game Object ...20
3.2.4 Menyiapkan Script ...20
4. IMPLEMENTASI DAN PENGUJIAN ...23
4.1 Implementasi Sistem ...23
4.1.1 Mengatur Environment ...23
4.1.2 Peletakan dan Pengaturan Game Object ...24
4.1.3 Pengaturan Karakter...25
4.1.4 Menampilkan HUD ...26
4.1.5 Pembuatan Script A* ...26
4.1.6 Penyempurnaan Script A* ...36
4.1.7 Pengimplementasian Script A* ke Dalam Game ...37
4.2 Pengujian Sistem ...38
4.2.1 Pengujian Alpha ...38
4.2.1.1 Pengujian Script FindWP.cs ...39
4.2.1.2 Pengujian Script Actor.cs ...41
4.2.1.3 Pengujian Kompatibilitas Script A* ...41
4.2.2 Pengujian Beta ...42 5. PENUTUP ...45 5.1 Kesimpulan ...45 5.2 Saran ...46 DAFTAR PUSTAKA ...47 BIOGRAFI PENULIS ...48
vii
DAFTAR GAMBAR
Gambar 1.1 Preview Game Wayang Robot ...3
Gambar 2.1 RM-04 Sebagai Karakter Utama Game Wayang Robot ...7
Gambar 2.2 RM-04 Mengoleksi Box Aksara Jawa ...8
Gambar 2.3 RM-04 Dihalangi Sekumpulan Robot Tiny Blaster ...9
Gambar 3.1 Environment Game Sci-fi Room ...15
Gambar 3.2 Environment Game Nature Combination ...15
Gambar 3.3 Karakter Robot RM-04 ...16
Gambar 3.4 Karakter Robot Tiny Blaster ...17
Gambar 3.5 Karakter Robot Doodle ...17
Gambar 3.6 Box Aksara Jawa ...18
Gambar 4.1 Mengatur Skybox ...21
Gambar 4.2 Mengatur Stage dan Pencahayaannya ...22
Gambar 4.3 Peletakan dan Pengaturan Kamera ...22
Gambar 4.4 Peletakan Box Aksara Jawa...23
Gambar 4.5 Pengimplementasian Script RM-04 ...24
Gambar 4.6 Pengimplementasian Script Tiny Blaster ...24
Gambar 4.7 Peletakan Posisi Spawner ...25
Gambar 4.8 Penyebaran Waypoint di Stage ...34
Gambar 4.9 Mengatur Tiny Blaster dengan Spawner ...35
Gambar 4.10 Denah Posisi Karakter ...36
viii
DAFTAR TABEL
Tabel 4.1 Data Hasil Pengujian Script FindWP.cs ...39
Tabel 4.2 Data Hasil Pengujian Script Actor.cs ...40
Tabel 4.3 Data Hasil Menggunakan Doodle ...41
Tabel 4.4 Data Hasil Kuesioner Pertanyaan 1 ...42
Tabel 4.5 Data Hasil Kuesioner Pertanyaan 2 ...42
Tabel 4.6 Data Hasil Kuesioner Pertanyaan 3 ...42
47
DAFTAR PUSTAKA
[1] Creighton, Ryan Hanson. 2011. Unity 3.x Game Development by Example. Birmingham: Packt Publishing
[2] Goldstone, Will. 2009. Unity 3.x Game Development Essentials. Birmingham: Packt Publishing
[3] Russell, StuartJ., Peter Norvig. 1995. Artificial Intelligence A Modern Approach. New Jersey: Prentice-Hall Inc.
[4] Buckland, Mat. 2005. Programming Game AI by Example. Texas. Wordware Publishing, Inc.
[5] Cui, Xiao., Hao Shi. 2011. A*-based Pathfinding in Modern Computer Games. Meulbourne, IJCSNS(11): 1-2
[6] Blackman, Sue. 2011. Beginning 3D Game Development with Unity. Ney York: Appress
[7] http://docs.unity3d.com/Documentation/Components/class-Skybox.html diakses pada tanggal 04 Desember 2012
[8] http://docs.unity3d.com/Documentation/Components/class-Camera.html diakses pada tanggal 01 Januari 2013