BERITA GAME DESIGNER Penerapan Finite State Machine Pada Perancangan Game

Penerapan Finite State Machine Pada Perancangan Game


#game development #programming #game design
Penerapan Finite State Machine Pada Perancangan Game

Finite State Machine atau FSM adalah sebuah model komputasi yang dapat digunakan untuk mensimulasikan urutan logika atau representasi dari urutan dan kontrol eksekusi

Yuk, belajar di GAME LAB ACADEMY harga lebih murah, bisa belajar kapan saja dan di mana saja. Kelas ditulis oleh professional dari industri berkolaborasi dengan praktisi pendidikan. Dapatkan SERTIFIKAT ketika kamu sudah selesai!

Finite State Machine atau FSM adalah sebuah model komputasi yang dapat digunakan untuk mensimulasikan urutan logika atau representasi dari urutan eksekusi dan kondisi. Perhatikan diagram FSM sederhana berikut ini: 

Terdapat 4 kondisi utama yaitu: 

  1. DUCKING
  2. STANDING
  3. JUMPING
  4. DIVING

Dalam kondisi DUCKING, jika ditekan tombol ARROW-DOWN maka kondisi akan berubah menjadi STANDING. Apabila dalam kondisi STANDING ditekan ARROW-DOWN, kondisi akan berubah menjadi DUCKING. Apabila dalam kondisi STANDING ditekan BUTTON-B, maka kondisi akan berubah menjadi JUMPING. Apabila dalam kondisi JUMPING ditekan tombol ARROW-DOWN maka kondisi akan berubah menjadi DIVING.

Penerapan Finite-State Machine

FSM juga dapat membantu kita di dalam merancang core loop mechanic game. Baik itu game digital maupun board game dapat memanfaatkan FSM ini. FSM juga dapat kita gunakan untuk menyederhanakan kode program AI kita, terutama untuk karakter-karakter pendukung yang bergerak secara konstan pada kondisi tertentu.

Kamu bisa mencari lebih lanjut tentang NPC (Non-playable Characters) pada artikel saya berikutnya. 

Gambar di atas, memperlihatkan FSM dapat dipakai untuk mengatur kondisi Mario. MARIO NORMAL apabila mendapatkan JAMUR akan berubah menjadi MARIO RAKSASA. MARIO NORMAL apabila mendapatkan BULU akan berubah menjadi MARIO TERBANG. MARIO NORMAL apabila mendapatkan BUNGA akan menjadi MARIO PENEMBAK API

Contoh Kode Program

Sebagai contoh implementasi, kita bisa menggunakan perintah switch di dalam kode program. Perhatikan contoh kode program berikut ini: 

switch (currentState) {
   case ST_IDLE:
       // do something in the idle state
       break;
    case ST_STOP:
       // do something in the stop state
       break;
    // etc...
}

FSM memang pada dasarnya akan sering diterapkan menggunakan perintah switch. 

Kelemahan Finite-State Machine

Selain kelebihan, FSM juga memiliki kelemahan. Salah satunya adalah karakter yang dibentuk menggunakan FSM akan menjadi boring (membosankan) dan dapat ditebak oleh pemain. Apa solusinya? Gunakan AI (Artificial Intelligence) yang lebih kompeks sehingga terdapat banyak variable yang memungkinkan karakter di dalam game kita bergerak secara lebih dinamis dan fleksibel.

Beberapa AI yang dapat dipakai di dalam pengembangan game digital: 

  • Pathfinding
  • Fuzzy Logic
  • A*
  • Dan lain-lain

Andi Taru

Andi Taru

Senin, 7 September 2020