BAB I PENDAHULUAN 1.1 Latar Belakang Permainan komputer atau yang sering kita sebut game merupakan salah satu aplikasi yang banyak diminati oleh para pengguna perangkat teknologi informasi dan komunikasi seperti mobile phone dan personal computer (PC). Semakin maraknya online store application yang tersedia di internet membuat pertumbuhan game semakin pesat. Berdasarkan hasil analisis yang dilakukan Flurry (flurry.com) menyatakan bahwa bahkan game yang ditakutkan akan mencapai tingkat kejenuhan pada tahun 2013 mencatat pertumbuhan dari tahun ke tahun sebesar 66%. Diagram pertumbuhan game mobile dapat dilihat pada Gambar 1.1 berikut ini : Gambar 1.1 Diagram aplikasi mobile yang banyak digunakan (Sumber : www.flurry.com)
2 Pada sebuah game, biasanya terdapat implementasi dari algoritma kecerdasan buatan untuk mendukung gameplay game tersebut. Salah satu algoritma tersebut adalah Algoritma A* (A Bintang). Algoritma A* biasanya digunakan untuk mendukung metode pathfinding yang ada pada game. Pathfinding adalah proses pemindahan posisi karakter game dari lokasi awal ke lokasi tujuan yang diinginkan (David M. Broug dan Glenn Seemann, 2004). Pathfinding adalah salah satu masalah paling dasar dari kecerdasan buatan (Artificial Intelligence / AI) yang ada pada game. Pathfinding yang buruk dapat membuat karakter yang ada pada game terlihat brainless (bodoh). Penanganan masalah pathfinding secara efektif dapat membuat game lebih menyenangkan dan memberikan pengalaman bermain yang mendalam bagi player (David M. Broug dan Glenn Seemann, 2004). Algoritma A* memberikan solusi efektif untuk masalah pathfinding. Algoritma ini merupakan algoritma Best First Search yang menggabungkan Uniform Cost Search dan Greedy Best-First Search. Algoritma A* memberikan hasil keluaran yang complete dan optimal (Suyanto, 2007). Ada beberapa penelitian yang sebelumnya telah dilakukan yang berhubungan dengan penilitian yang akan dilakukan. Penelitian tersebut diantaranya: 1. Penelitian berjudul PERBANDINGAN ALGORITMA A* DAN BREADTH FIRST SEARCH PADA BLOCK MAZE yang dilakukan oleh Mohammad Nur Rahman dengan menghasilkan kesimpulan bahwa algoritma A* memiliki kinerja yang lebih baik dari Breadth First Search. 2. Penelitian berjudul PERBANDINGAN ALGORITMA A* DAN DIJKSTRA BERBASIS WEBGIS UNTUK PENCARIAN RUTE TERPENDEK yang dilakukan oleh Rian Putra Pratama dengan menghasilkan kesimpulan bahwa Algoritma A* memiliki kinerja yang lebih baik dari Dijkstra. 3. Penelitian berjudul A PERFORMANCE COMPARISON BETWEEN A* PATHFINDING AND WAYPOINT NAVIGATOR ALGORITHM ON ANDROID AND IOS OPERATING SYSTEM yang dilakukan oleh Thepparit Sinthamrongruk, Krisada Mahakitpaisarn, dan Wapee
3 Manopiniwes dengan menghasilkan kesimpulan bahwa Algoritma A* memiliki proses yang lebih cepat dari waypoint pada kedua perangkat ios dan android. Dari ketiga penelitian sebelumnya yang telah dijelaskan di atas dapat ditarik kesimpulan bahwa A* memiliki kinerja yang lebih baik dibandingkan dengan algoritma kecerdasan buatan lainnya. Untuk mencari jalan dari titik awal ke titik tujuan, kita perlu tahu tentang peta(map) yang ada seperti posisi jalan yang bisa dilalui dan posisi hambatan. Untuk itu peta akan direpresentasi ke dalam bentuk yang lain, salah satunya dalam bentuk grid yang disebut dengan grid graph. Selain grid graph, ada beberapa bentuk representasi peta diantaranya waypoint graph, dan navigation mesh. Waypoint graph merepresentasi peta dengan bentuk penempatan node secara bebas dengan tiap node saling terhubung satu sama lain. Sedangkan navigation mesh merepresentasi peta dalam beberapa bentuk segitiga mesh. Mesh tersebut menggambarkan area yang bisa dilalui (Aron Granborg, 2013). Grid graph menghasilkan node dalam pola grid lebar*panjang. Grid graph adalah graph yang paling mudah. Selain itu, grid graph berkerja sangat baik terutama saat ada perubahan graph yang dibutuhkan secara runtime seperti pada game RTS dan Tower Defence (Aron Granborg, 2013). Grid graph banyak digunakan pada beberapa game. Bahkan game genre RTS seperti Age of Empires dan Warcraft III menggunakan grid graph (Steve Rabin, 2010). Implementasi metode pathfinding banyak digunakan dalam video game. Metode pathfinding ini banyak digunakan pada game genre Real Time Strategy (RTS) dan Tower Defence (TD). Selain game genre RTS dan TD, game dengan genre action puzzle juga ada yang mengimplementasikan metode pathfinding. Salah satu contohnya adalah Maze Race. Gambar 1.2 di bawah ini menampilkan game scene dari Maze Race saat metode pathfinding yang sebagai salah satu fitur di game ini diaktifkan.
4 Gambar 1.2 Game Scene Maze Race (Sumber : www.coolmath-games.com/0-mazerace2) Sebuah game action puzzle mengacu pada sebuah permainan di mana player (pemain) mencoba memecahkan teka-teki secara real time. Hal ini biasanya dilakukan dengan batas waktu, di mana player memiliki waktu terbatas untuk memecahkan teka-teki. Jika player tidak memecahkan teka-teki tersebut dalam waktu yang ditentukan, maka pemain gagal. Bentuk lain dari game action puzzle yang sederhana seperti menempatkan penghitungan waktu (time counter). Dalam jenis action puzzle ini skor tinggi akan disimpan dan semakin cepat player bisa memecahkan teka-teki, player akan mendapatkan skor yang lebih tinggi (Justin Eldridge, 2012). Berdasarkan latar belakang di atas penulis tertarik untuk melakukan penelitian dengan mencoba membangun game action puzzle. Dimana pada penelitian ini penulis mencoba menguji kinerja AI dengan implementasi metode pathfinding dengan algoritma A* dan grid graph pada non-player character. 1.2 Rumusan Masalah Berdasarkan uraian latar belakang di atas dapat dirumuskan permasalahan yang akan diselesaikan dalam penelitian ini adalah: 1. Bagaimana mengimplementasikan metode pathfinding dengan menggunakan Algoritma A* dan grid graph pada non-player character (NPC)?
5 2. Bagaimana hasil dari kinerja metode pathfinding dengan menggunakan Algoritma A* dan grid graph dilihat dari waktu eksekusi (runtime) dan jumlah penggunaan memori? 1.3 Batasan Masalah atas: Untuk memfokuskan penelitian, maka dibuat batasan dari permasalahan di 1. Algoritma A* hanya digunakan pada metode pathfinding. 2. Game yang dibuat berbasis desktop Sistem Operasi Windows. 3. Heuristik yang digunakan pada algoritma A* adalah Manhattan Distance. 1.4 Tujuan Penelitian Tujuan yang ingin dicapai dari penelitian ini adalah: 1. Menghasilkan sebuah game action puzzle dengan mengimplementasikan metode pathfinding menggunakan Algoritma A* dan grid graph pada non-player character (NPC). 2. Mengukur kinerja metode pathfinding dengan menggunakan Algoritma *A dan grid graph pada game action puzzle dilihat dari waktu eksekusi (runtime) dan jumlah penggunaan memori. 1.5 Manfaat Penelitian a. Bagi peneliti 1. Menambah wawasan mengenai algoritma kecerdasan buatan yang digunakan pada game. 2. Memberikan gambaran lebih lanjut tentang game yang bisa dikembangkan dengan mengimplementasikan algoritma kecerdasan
6 buatan yang ada. b. Bagi dunia penelitian dan masyarakat umum 1. Menambah studi literatur algoritma diterapkan dalam permainan terutama permainan yang mengimplementasikan metode pathfinding dalam gameplay-nya. 2. Menambah studi literatur untuk perancangan non-player character (NPC) pada game. 1.6 Metodologi Penelitian Metodologi yang digunakan dalam penelitian ini antara lain : 1. Studi Literatur Mempelajari dan memahami teori-teori yang berhubungan dengan penelitian baik secara langsung maupun tidak melalui buku, jurnal, karya ilmiah, paper dan sumber ilmiah lainnya. 2. Analisis dan Perancangan Perangkat Lunak Analisis dan perancangan dilakukan dengan menentukan bahasa pemrograman yang akan digunakan selama pengembangan, struktur data, dan input/output serta tools pendukung lainnya. 3. Implementasi Implementasi akan dilakukan setelah melakukan analisis terhadap kebutuhan yang ada dan mendapatkan hasil yang tepat. 4. Hasil akhir dan penarikan kesimpulan Pada tahap ini, analisis hasil akhir dilakukan untuk melihat sejauh mana metode yang digunakan dapat memberikan solusi pada permasalahan yang diangkat dalam penelitian. Dari hasil yang didapatkan, selanjutnya akan dilakukan penarikan kesimpulan dari revisi terakhir. 1.7 Sistematika Penulisan Sistematika penyusunan skripsi ini merupakan gambaran umum dari
7 skripsi yang peneliti susun. Sistematika skripsi ini dibagi menjadi beberapa bagian berikut : BAB I PENDAHULUAN Bagian ini merupakan gambaran umum dari penelitian yang meliputi latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, metodologi penelitian, dan sistematika penulisan. BAB II TINJAUAN PUSTAKA Bagian ini peneliti mempelajari sumber literatur - literatur ilmiah seperti jurnal, textbook, dan paper untuk mendapatkan data dan teori tentang pathfinding, algoritma A*, grid graph, non-player character, game development, dan game design yang akan mendukung penelitian yang akan dilakukan. BAB III METODOLOGI PENELITIAN Di dalam bagian ini dijelaskan perihal langkah langkah penelitian, alat dan bahan yang akan dipakai selama penelitian, metode pengembangan perangkat lunak, metodologi penelitian yang dilakukan, dan jadwal penelitian. BAB IV HASIL PENELITIAN DAN PEMBAHASAN Berisi hasil penelitian yang telah dilakukan dan membahas perangkat lunak yang dibangun serta mengukur tingkat keberhasilanya dalam menjawab permasalahan yang diangkat. BAB V KESIMPULAN DAN SARAN Bagian ini menjelaskan kesimpulan yang merupakan jawaban dari masalah dalam penelitian, serta berisi saran yang bisa menjadi rujukkan untuk penelitian selanjutnya.