Saya menulis FSM berdasarkan dari bab dalam "Massively Multiplayer Game Development" Diedit oleh Thor Alexander. Di dalamnya ada bab yang diberi label "Mesin Paralel-Negara untuk Karakter yang Dapat Dipercaya". Ini ditulis dengan python, tetapi konsep-konsepnya mudah diterjemahkan ke dalam C ++. Saya sangat merekomendasikan memeriksa ini, meskipun ini tentang status karakter, bukan status permainan.
Apa yang saya buat ada di sini: https://github.com/swganh/mmoserver/tree/master/src/ZoneServer/GameSystemManagers/State%20Manager
mencari di bawah StateManager untuk detail implementasi, tetapi pada dasarnya Anda memiliki 'status dasar' yang berbeda yang dapat Anda gunakan menggunakan. Kemudian dari sana Anda memiliki status spesifik yang Anda transisikan menjadi karakter, sehingga setiap negara adalah kelas. Anda kemudian memeriksa apakah dapat beralih dari satu negara ke negara lain dan kemudian pada 'masuk' Anda beralih, Anda juga dapat dengan mudah melakukan hal-hal seperti memasukkan peristiwa setelah pindah ke negara. Saya menemukan ini bekerja sangat baik untuk permainan sejauh ini.
Apa yang telah saya terapkan adalah apa yang disebut buku sebagai mesin paralel, yang merupakan fungsi penting dari beberapa fsm yang bekerja bersama, dalam hal ini Anda dapat bertransisi menjadi satu keadaan, yang memblokir semua keadaan lainnya (yaitu: CreatureState_Dead). Saya tidak akan membahas lebih jauh karena saya pikir itu tidak akan membantu Anda, tetapi jika Anda mau, saya bisa menjelaskannya.