Abstrak
Finite State Machine (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan
tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian)
dan action (aksi). Sebagai sebuah metodologi perancangan sistem kontrol, penerapan FSM telah banyak
diterapkan pada perangkat lunak, khususnya pada game. Metode FSM dapat diterapkan untuk nilai-nilai batas
perpindahan yang pasti dan sangat mudah diterapkan pada game “The Relationship”. Game ini merupakan
sebuah game berbasis desktop genre petualangan dengan sub-genre simulasi dan menggunakan grafis 2 dimensi.
Pengembangan game ini menggunakan tools Unity3D dan bahasa pemrograman C#(Sharp). Hasil dari penelitian
ini adalah terealisasinya suatu game dengan menerapkan metode finite state machine untuk menentukan respon
karakter non-player character yang berbeda tergantung dari interaksi yang dilakukan oleh pemain.
PENDAHULUAN
1.1 Latar Belakang lainnya jika memenuhi kondisi yang telah
Industri game yang semakin maju ditentukan sebelumnya [5], selanjutnya untuk
menyuguhkan sebuah dunia maya yang baru yang membuat game dapat menggunakan beberapa cara,
terus menerus berkembang untuk mencoba salah satunya dengan menggunakan game engine
mendekati kehidupan nyata. Game atau permainan yang menawarkan paket pengembangan visual dan
dibuat untuk digunakan sebagai sarana menghibur elemen-elemen software yang dapat digunakan
diri saat penat maupun untuk menghilangkan rasa kembali untuk memungkinkan efisiensi
penat. Game memiliki dua pengertian, pertama pengembangan game karena sudah disediakannya
sebuah aktifitas bermain yang murni mencari fitur-fitur seperti penyisipan gambar, tombol,
kesenangan tanpa mencari hasil menang atau kalah bahkan grafik 3D [2].
dan yang kedua dapat diartikan sebagai aktifitas Penerapan FSM pada game berguna untuk
bermain yang dilakukan dalam rangka mencari menentukan berbagai macam respon NPC
kesenangan dan kepuasan. berdasarkan interaksi yang dilakukan oleh pemain,
Salah satu unsur yang berperan penting dalam hal ini disebabkan karena FSM dapat digunakan
sebuah game adalah kecerdasan buatan atau untuk mendesain dan menentukan respon perilaku
Artificial Intelligence (AI) yang merupakan suatu yang dilakukan terhadap perubahan kondisi. Dari
program komputer yang bertindak dan berpikir hasil penelitian di atas, maka penulis tertarik untuk
seperti manusia dan juga bertindak dan berpikir membuat penelitian dengan mengembangkan
secara rasional pada saat yang bersamaan. Dengan sebuah game dengan menerapkan metode finite
kecerdasan buatan, elemen-elemen dalam game state machine (FSM) pada non-playable character
dapat berperilaku seperti manusia. Game playing (NPC). Adapun penelitian tersebut dituangkan
(permainan game) merupakan bidang AI yang dalam penyusunan skripsi dengan judul “Penerapan
sangat populer berupa permainan antara manusia Metode Finite State Machine Pada Game The
melawan mesin yang memiliki intelektual untuk Relationship”.
berpikir. Komputer dapat bereaksi dan menjawab
tindakan-tindakan yang diberikan oleh lawan 1.2 Batasan Masalah
mainnya [6]. Agar pembahasan dalam skripsi ini tidak
Dalam sebuah penelitian “Membangun Game menyimpang dari topik permasalahan, maka penulis
Simulasi Finite State Machine untuk Pertanian dan melakukan pembatasan-pembatasan sebagai berikut
Peternakan” menerangkan bahwa salah satu jenis ini:
game yang digemari adalah game dengan genre 1. Membuat sebuah game “The Relationship”
simulasi yang didukung dengan kecerdasan buatan yang dimainkan secara singleplayer.
yang menggunakan Finite State Machine (FSM) 2. NPC pada game “The Relationship”
untuk mendukung interaksi dengan pemain. FSM memberikan interaksi berupa obrolan kepada
terdiri dari serangkaian state yang menentukan player.
keputusan. Setiap state dapat berpindah ke state
Jurnal Informatika Mulawarman Vol. 11 No. 1 Februari 2016 15
3. Game “The Relationship” hanya mempunyai melakukan level design atau pengelompokkan
lima lokasi yaitu di kamar pria, kelas, tingkat kesulitan serta berbagai asset yang
perpustakaan, lapangan dan aula sekolah. tepat pada tiap level (jika ada lebih dari 1
4. Hasil akhir dari permainan ini tergantung level) agar game tersebut bisa menghadirkan
dengan interaksi yang dilakukan pemain pengalaman bermain yang optimal.
selama permainan berlangsung. 4. Test Play (Prototyping)
5. Game yang dibangun dengan menggunakan Pada tahapan ini sebuah
Unity dengan bahasa C#. prototype/dummy dihadirkan untuk menguji
gameplay serta berbagai konsep yang telah
1.3 Tujuan Penelitian tersusun, baik dalam tiap level maupun secara
Mengimplementasikan metode finite state keseluruhan, serta melakukan berbagai
machine dalam membangun game “The perbaikan yang diperlukan. Tahapan ini juga
Relationship” menggunakan Unity yang diharapkan berfungsi untuk memberikan gambaran
dapat memberikan gameplay yang menarik beserta lengkap bagi seluruh tim sehingga bisa
hasil yang opportunity membuat pemain harus memudahkan proses pengembangan
mengambil keputusan disetiap interaksi. selanjutnya.
5. Development
1.4 Manfaat Penelitian Pada tahap ini seluruh konsep (karakter
Adapun manfaat secara umum dari game “The dan asset) yang sebelumnya telah tersusun
Relationship” ini adalah: mulai dikembangkan secara penuh.
1. Mampu menerapkan metode finite state 6. Percobaan
machine dalam penentuan respon NPC. Tahap ini dilakukan untuk mengetahui
2. Mengasah kemampuan dan kreatifitas pemain apakah semua komponen utama dari game
dalam mengambil setiap keputusan. telah mampu memberikan pemain pengalaman
3. Memberikan rasa keingintahuan kepada para seperti yang diharapkan sekaligus juga untuk
pemain ketika bermain mendeteksi adanya masalah teknis yang belum
terdeteksi pada tahapan sebelumnya.
TINJAUAN PUSTAKA 7. Rilis
2.1 Game Pada tahap ini game sudah siap untuk
Game adalah sebentuk karya seni di mana dirilis dan diperkenalkan pada target
peserta, yang disebut pemain, membuat keputusan pemainnya. Ketika sebuah game telah dirilis
untuk mengelola sumber daya yang dimilikinya untuk publik bukan berarti proses
melalui benda di dalam game demi mencapai tujuan pengembangan telah selesai, karena umumnya
[1]. game akan terus dioptimalkan/di-update. Hal
Sebuah game yang baik akan memberikan ini untuk memastikan bahwa game yang
pengalaman bermain yang optimal, sebuah proses dihadirkan benar-benar mampu memberikan
pengembangan game yang baik juga akan pengalaman bermain yang maksimal.
memberikan pengalaman yang istimewa serta
proses pembelajaran yang luar biasa bagi mereka 2.2 Kecerdasan Buatan
yang terlibat di dalamnya. Proses pengembangan Definisi Kecerdasan Buatan (AI) merupakan
sebuah game secara baik secara garis besar terbagi cabang dari ilmu komputer yang dalam
menjadi beberapa tahapan berikut [3] : merepresentasi pengetahuan lebih banyak
1. Merancang Game menggunakan bentuk simbol-simbol daripada
Hal yang dilakukan pertama kali adalah bilangan, dan memproses informasi berdasarkan
menentukan jenis game yang akan metode heuristic atau dengan berdasarkan sejumlah
dikembangkan. Pada tahap ini ide dasar, tema, aturan.
teknologi, media (platform), serta berbagai Ada tiga tujuan kecerdasan buatan, yaitu,
batasan lain dirumuskan. Tahapan riset ini membuat komputer lebih cerdas, mengerti tentang
menjadi sebuah tahapan krusial, berbagai kecerdasan, dan membuat mesin yang lebih.
elemen dasar dari sebuah game disusun di sini. Kecerdasan adalah kemampuan untuk belajar dan
2. Perumusan Gameplay mengerti dari pengalaman, memahami pesan yang
Gameplay adalah pola, aturan, atau kontradiktif dan ambigu, menanggapi dengan cepat
mekanisme yang mengatur bagaimana proses dan baik atas situasi yang baru, menggunakan
interaksi pemain dengan game yang penalaran dalam memecahkan masalah serta
diciptakan. Gameplay juga mengatur menyelesaikannya dengan efektif. Adapun lingkup
bagaimana seorang pemain bisa memenuhi utama dalam kecerdasan buatan adalah [6] :
objektif dari game dan mendapatkan 1. Sistem Pakar
pengalaman bermain yang menyenangkan. Komputer digunakan sebagai sarana
3. Penyusunan Asset dan Level Design untuk menyimpan pengetahuan para pakar.
Tahapan ini berfokus pada penyusunan Dengan demikian komputer akan memiliki
konsep dari semua karakter serta asset keahlian untuk menyelesaikan permasalahan
(termasuk suara atau musik) yang diperlukan. dengan meniru keahlian yang dimiliki oleh
Pada saat yang sama tim juga mulai pakar.
16 Vol. 11 No. 1 Februari 2016 Jurnal Informatika Mulawarman
dapat bertransisi menuju state pertanyaan 5 atau permainan, kemudian sistem akan menampilkan
pertanyaan 6 jika variable kemungkinan terpenuhi. lingkungan permainan yang di dalamnya termasuk
Ketika permainan telah berlangsung selama 30 inisialisasi asset, posisi player, dan variable awal
hari permainan maka NPC akan bertransisi menuju game.
state perasaan akhir. Pada state ini pemain
diharuskan untuk menyatakan perasaan kepada
NPC untuk menentukan hasil akhir permainan.
Hasil akhir ditentukan oleh akumulasi variable
NPC yang dilakukan oleh pemain selama
permainan berlangsung.
Setiap state teman, state teman baik, dan state
teman dekat akan membuat NPC memberikan
obrolan kepada karakter utama yang berbed-beda.
Begitu juga dengan state pertanyaan dan variable
kemungkinan yang akan berbeda disetiap karakter
NPC.
poin yang mempengaruhi karakter NPC dapat kedua adalah teman saat variable Fina bernilai dari
berkurang atau bertambah menyesuaikan dengan 1 sampai dengan 20. Tingkat ketiga adalah teman
interaksi yang dilakukan oleh pemain. Terdapat 4 baik saat variable Fina bernilai dari 21 sampai
tingkat kedekatan atara karakter utama dengan dengan 50. Sedangkan tingkat terakhir adalah
karakter NPC. teman dekat saat variable Fina bernilai lebih dari
Tabel 1 Tingkat Kedekatan NPC 50. Struktur kondisi tingkat kedekatan Mira dapat
No Tingkat Nilai Variable diliat pada potongan script berikut ini :
1 Perkenalan 0 if(GameState.Instance.getFina() == 0) {
2 Teman 1 s/d 20 //State Perkenalan
}else if(GameState.Instance.getFina()<= 20)
3 Teman Baik 21 s/d 50 {
4 Teman Dekat > 50 //State Teman
}else if(GameState.Instance.getFina()<= 50)
{
1. Tingkat Kedekatan Tara //State Teman Baik
Struktur kondisi untuk 4 tingkat kedekatan }else {
karakter utama dengan karakter Tara, semakin //State Teman Dekat }
tinggi nilai variable Tara semakin dekat
hubungannya. Tingkat pertama adalah perkenalan
saat variable Tara masih bernilai kosong. Tingkat 3.3.2 Perhitungan Variable Skill
kedua adalah teman saat variable Tara bernilai dari Selama permainan berlangsung pemain juga
1 sampai dengan 20. Tingkat ketiga adalah teman harus meningkatkan variable skill karakter utama.
baik saat variable Tara bernilai dari 21 sampai Terdapat tiga variable skill yang dapat ditingkatkan
dengan 50. Sedangkan tingkat terakhir adalah oleh pemain, yaitu :
teman dekat saat variable Tara bernilai lebih dari
50. Struktur kondisi tingkat kedekatan Tara dapat 1. Variable Kecerdasan
diliat pada potongan script berikut ini : Variable kecerdasan karakter utama dapat
if(GameState.Instance.getTara() == 0) { ditingkatkan dengan melakukan kegiatan membaca
//State Perkenalan buku di perpustakaan. Nilai variable kecerdasan
} else if(GameState.Instance.getTara()<= 20) akan bertambah sebanyak 1.5 poin ketika karakter
{ utama membaca buku, semakin banyak pemain
//State Teman
} else if(GameState.Instance.getTara()<= 50)
membuat karakter utama membaca buku semakin
{ besar juga nilai variable kecerdasan. Perhitungan
//State Teman Baik variable kecerdasan dapat dilihat pada potongan
} else { //State Teman Dekat } script berikut ini :
2. Tingkat Kedekatan Mira GameState.Instance.SetIntl(1.5f);
Struktur kondisi untuk 4 tingkat kedekatan
karakter utama dengan karakter Mira, semakin
2. Variable Stamina
tinggi nilai variable Mira semakin dekat
Variable stamina karakter utama dapat
hubungannya. Tingkat pertama adalah perkenalan
ditingkatkan dengan melakukan kegiatan olahraga
saat variable Mira masih bernilai kosong. Tingkat di lapangan sekolah. Nilai variable stamina akan
kedua adalah teman saat variable Mira bernilai dari bertambah sebanyak 1.5 poin ketika karakter utama
1 sampai dengan 20. Tingkat ketiga adalah teman
berolahraga, semakin banyak pemain membuat
baik saat variable Mira bernilai dari 21 sampai
karakter utama berolahraga semakin besar juga nilai
dengan 50. Sedangkan tingkat terakhir adalah
variable stamina. Perhitungan variable stamina
teman dekat saat variable Mira telah bernilai lebih
dapat dilihat pada potongan script berikut ini :
dari 50. Struktur kondisi tingkat kedekatan Mira
dapat diliat pada potongan script berikut ini : GameState.Instance.setVit(1.5f);
if(GameState.Instance.getMira() == 0) {
//State Perkenalan 3. Variable Popluer
} else if(GameState.Instance.getMira()<= 20)
Variable popluer karakter utama dapat
{
//State Teman ditingkatkan dengan mengobrol kepada karakter
} else if(GameState.Instance.getMira()<= 50) NPC pendukung. Nilai variable populer akan
{ bertambah sebanyak 0.5 poin setiap karakter utama
//State Teman Baik mengobrol dengan NPC pendukung, semakin
} else {
//State Teman Dekat }
banyak pemain membuat karakter utama mengobrol
semakin besar juga nilai akumulasi variable
populer. Perhitungan variable populer dapat dilihat
3. Tingkat Kedekatan Fina pada potongan script berikut ini :
Struktur kondisi untuk 4 tingkat kedekatan
karakter utama dengan karakter Fina, semakin GameState.Instance.setSiswa(id,
tinggi nilai variable Fina semakin dekat 0.5f);
hubungannya. Tingkat pertama adalah perkenalan
saat variable Fina masih bernilai kosong. Tingkat
Jurnal Informatika Mulawarman Vol. 11 No. 1 Februari 2016 21
3.3.3 Perhitungan Akhir Karakter NPC masing-masing untuk menghubungakan satu scene
Pada akhir permainan pemain diharuskan dan scene lainnya.
untuk menyatakan perasaan kepada salah satu
karakter NPC. Akhir permainan adalah hari ke-30 3.3.5 Scene Mulai
di dalam game dan pada saat itu tingkat kedekatan Scene Mulai dapat diakses melalui tombol
karakter NPC selama permainan akan Mulai pada scene menu utama. Scene mulai adalah
diakumulasikan untuk menentukan keberhasilan scene utama untuk memainkan game. Saat
pemain. permainan pertama kali kali dimulai karakter utama
1. Akumulasi Karakter Tara akan berada di ruang kamar dan setelah itu pemain
Perhitungan akumulasi karakter Tara adalah dapat mengontrol karakter utama untuk pindah ke
hasil akumulasi yang diambil dari 60% variable ruangan lain dan juga berinteraksi dengan NPC.
Tara dan 40% variable kecerdasan. Hasil akumulasi Total terdapat 5 (lima) scene ruangan yang dapat
akan menjadi variable penentu ketika karakter didatangi oleh pemain yaitu scene ruang kamar,
utama menyatakan perasaan kepada Tara. Pemain scene ruang kelas, scene aula sekolah, scene
hanya akan berhasil jika hasil akumulasi variable perpustakaan, dan scene halaman sekolah.Tampilan
bernilai lebih dari 65 dan akan gagal jika dibawah scene ruang kamar dapat dilihat pada gambar 7.
65. Nilai 65 adalah nilai minimum hasil akumulasi
Tara selama 30 hari permainan.
2. Akumulasi Karakter Mira
Perhitungan akumulasi karakter Mira adalah
hasil akumulasi yang diambil dari 60% variable
Mira dan 40% variable populer. Hasil akumulasi
akan menjadi variable penentu ketika karakter
utama menyatakan perasaan kepada Mira. Pemain
hanya akan berhasil jika hasil akumulasi variable
bernilai lebih dari 65 dan akan gagal jika dibawah
65. Nilai 65 adalah nilai minimum hasil akumulasi
Mira selama 30 hari permainan.
3. Akumulasi Karakter Fina
Perhitungan akumulasi karakter Fina adalah
hasil akumulasi yang diambil dari 60% variable
Fina dan 40% variable populer. Hasil akumulasi Gambar 7. Scene Ruang Kamar
akan menjadi variable penentu ketika karakter Ketika pemain mengarahkan karakter utama
utama menyatakan perasaan kepada Fina. Pemain menuju pintu untuk berpindah ruangan, maka akan
hanya akan berhasil jika hasil akumulasi variable muncul kotak dialog untuk memberikan pemain
bernilai lebih dari 65 dan akan gagal jika dibawah pilihan ruangan yang akan dituju. Tampilan kotak
65. Nilai 65 adalah nilai minimum hasil akumulasi dialog pindah ruangan dapat dilihat pada gambar 8.
Tara selama 30 hari permainan.
DAFTAR PUSTAKA
[1] Costikyan, Greg. 2013. Uncertainty in
Games (Playful Thinking). MIT Press.
[2] Ekaputra, Valentino. 2014. Analisis dan
Perancangan Aplikasi Game Multiplayer
Life Simulation “Pet Master” Menggunakan
Game Engine Unity 3D. Jakarta:
Gambar 9. Kotak Dialog Mengobrol Universitas Bina Nusantara.
[3] Hikam, Arif Rahman. 2013. Pengembangan
Selain menampilkan kotak dialog mengobrol, Game Edukasi Visual Novel berbasis
ketika karakter utama menyentuh karakter NPC Pembangunan Karakter pada Materi
juga akan menampilkan kotak dialog pertanyaan.
Pelestarian Lingkungan. Semarang:
Setiap jawaban dari pertanyaan yang diberikan oleh
Universitas Negeri Semarang.
NPC akan berpengaruh terhadap variable karakter
NPC. Tampilan kotak dialog pertanyaan dapat [4] Setiawan, I. 2006. Perancangan Software
dilihat pada gambar 10. Embedded System Berbasis FSM. Semarang:
Universitas Diponegoro.
[5] Rostianingsih, Silvia. 2013. Game Simulasi
Finite State Machine Untuk Pertanian dan
Peternakan. Surabaya: Universitas Kristen
Petra.
[6] Utari, Dely. 2012. Analisis Dan
Implementasi Algoritma Backtracking Pada
Permainan Hangman. Medan: Universitas
Sumatera Utara.
[7] Wijaya, Surya Adi. 2009. Fuzzy State
Machine Untuk Menghasilkan Variasi
Respon Npc (Non-Playable Character) Pada
Game. Tesis. Surabaya: Institut Teknologi
Gambar 10. Kotak Dialog Pertanyaan NPC Surabaya.
KESIMPULAN
Berdasarkan hasil dri penerapan metode finite
state machine pada game “The Relationship”
diperoleh kesimpulan antara lain:
1. Penerapan metode finite state machine
menghasilkan respon NPC yang berbeda
menyesuaikan apa yang telah dimainkan oleh
pemain.
2. Hasil akhir game yang ditentukan oleh pemain
karena metode finite state machine
menawarkan pilihan sepanjang permainan
berlangsung.
SARAN
Dari hasil penelitian yang dilakukan, disadari
masih banyak kekurangan dalam sistem, beberapa
saran yang dapat berguna untuk mengembangkan
sistem, antara lain:
1. Memperbanyak interaksi NPC yang lebih
kompleks agar semakin banyak kemungkinan
respon yang didapatkan oleh pemain.
2. Menambahkan lebih banyak karakter NPC
yang bisa didekati oleh karakter utama