Pages

  • Home
  • AboutMe
  • MyFacebook
  • MyTwitter
  • MyLinkedin

Achmad Asrori

Arek Teknik Informatika Indonesia

Finite State Machine (FSM)

Finite state machine 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).

Contoh implementasi FSM di game yaitu di game Pacman, yaitu pada karakter musuhnya (ghost). 4 hantu yang dikenal dengan nama Pinky, Clyde, Blinky, dan Inky.



Bentuk diagram state untuk hantu-hantu tsb kurang lebih seperti ini:



Di mana ada 5 state: Run From Player, Rise, Die, Chase Player, dan Move Randomly. Dan Antar state terdapat aturan transisi agar dapat melakukan perubahan state, misal ketika karakter utama memakan 'pellet' maka si musuh ini akan berubah state dari state 'mengejar' ke state 'menjauh' dari karakter utama, dan seterusnya.

Contoh lain misalnya di game sepakbola: ada state shoot, tackle, heading, dll. Di game jenis FPS: tembak, cover, reload, get health, dll. Dan masih banyak lagi contoh implementasi FSM di berbagai macam genre game.

Finite State Machine di dunia AI Game Programming, merupakan salah satu teknik yang paling sering digunakan. Alasannya yaitu:
1. Implementasinya mudah dan cepat
2. Memudahkan proses debugging. Karena telah dipecah menjadi kepingan yang lebih kecil, proses debugging kalau terjadi behavoiur yang tidak semestinya, menjadi lebih mudah
3. Proses komputasi yg minimal, karena sejatinya FSM hanyalah conditional statement yang dikemas dalam bentuk yang lebih elegan.
4. Fleksibel, dapat dikombinasikan dengan teknik AI lain misalnya fuzzy logic dan neural network

Kekurangannya:
1. Behaviour dari agen mudah diprediksi, karena tidak ada searching dan atau learning di dalam agen tersebut
2. Karena mudah diimplementasi, kadang programmer langsung tembak di eksekusi tanpa melakukan desain FSM terlebih dahulu. Biasanya akan terjadi FSM yang terfragmentasi
3. Timbul apa yang dinamakan dengan State Oscillation yaitu ketika batasan antara dua buah state terlalu tipis:


Sumber : http://pzuh.blogspot.com/

1 komentar:

Numpang Comment mengatakan...

Informasinya sangat membantu bgt, makasih gan :))

Posting Komentar