Thor Alexander tarafından düzenlenen "Devasa Çok Oyunculu Oyun Geliştirme" bölümünden bir FSM yazdım. İçeride "İnanılır Karakterler için Paralel Durum Makineleri" etiketli bir bölüm var. Bu python ile yazılmıştır, ancak kavramlar kolayca C ++ 'ya çevrilebilir. Bu, oyun durumları değil, karakter durumlarıyla ilgili olsa da, bunu kontrol etmenizi şiddetle tavsiye ederim.
Oluşturduğum şey burada: https://github.com/swganh/mmoserver/tree/master/src/ZoneServer/GameSystemManagers/State%20Manager
uygulama ayrıntıları için StateManager'ın altına bakın, ancak temel olarak yapabileceğiniz farklı 'temel durumlarınız' var kullanın. Daha sonra oradan karakter olarak geçtiğiniz belirli durumlara sahipsiniz, bu yüzden her durum bir sınıftır. Daha sonra bir durumdan diğerine geçiş yapıp yapamayacağınızı kontrol edersiniz ve daha sonra `` enter '' da geçişinizi yaparsınız, bir duruma geçtikten sonra olaylara koymak gibi şeyleri de kolayca yapabilirsiniz. Bunun şu ana kadar oyun için gerçekten işe yaradığını gördüm.
Uyguladığım şey, kitabın bir paralel durum makinesi olarak adlandırdığı şeydir, bu da çoklu fsm'nin birlikte çalışmasıdır, bu durumda diğer tüm durumları (yani: CreatureState_Dead) engelleyen bir duruma geçebilirsiniz. Sana gerçekten yardımcı olacağını düşünmediğim için çok daha fazla ayrıntıya girmeyeceğim, ama eğer istersen detaylandırabilirim.