我正在研究RTS遊戲,我希望能夠構建結構,這意味着構建者將步行到目標位置,並且一旦開始構建, 我想在每個可以添加狀態的單元中實現一個狀態機,因爲這可能會在用戶提供輸入時派上用場,因爲這可能稍後派上用場。 我的問題是:爲每個用戶擁有的單位創建一個狀態機是否有用,或者這是一個陷阱?RTS遊戲中的Statemachine
1
A
回答
1
狀態機在遊戲中常見的。
狀態機是對象的NPC等遊戲的行爲,通常的做法。
他們是如此常用的,他們往往是由遊戲引擎的支持:例如爲:Unity
狀態機缺陷可能是由一個天真的實現是資源消耗,例如一個使用State Pattern,只有在沒有相對較少的狀態機同時運行的情況下才可以,否則狀態模式的資源消耗對於數千個併發狀態機而言將會過高。如果你確實打算讓數千個單獨的狀態機同時運行,或者需要極高的效率,你將不得不用一種更簡單的方法來實現它們:例如:嵌套switch語句或基於表的實現examples in C。
理由使用狀態機,一般來說,不僅是在遊戲。
的主要原因是使用狀態機與清晰度建模您的問題:你可以直觀地想想邊界條件,通過繪製出了狀態機,例如通過使用GraphViz或手工工具。 很容易看出在哪種情況下會發生什麼情況。
有時候你的問題「只是稱之爲」一個國家機器表示:它有「國家」,和複雜的行爲,這依賴於過去的事件。
國家機器有幾十年在他們身後計算機科學的研究和算法有關分析他們,簡化他們,等是已知的。
如果試圖「通過添加和刪除IF語句」,由專人,you will end up with messier code,你將無法進行改造,模型等
在「利弊」的一面的狀態機模型如果你使用基於表的狀態機,調試它們會有些困難。
相關問題
- 1. 爲RTS遊戲實現多人遊戲
- 2. RTS HTML5遊戲多人遊戲 - 開始node.js服務器遊戲
- 3. 聲音管理器的RTS遊戲
- 4. 長時間運行RTS遊戲多人遊戲考慮因素
- 5. RTS遊戲設計和代碼組織
- 6. 如何在線RTS遊戲中同步主機和客戶的遊戲? (VB.NET)
- 7. 任何人都知道如何在java rts遊戲中做多人遊戲?
- 8. RTS遊戲中視線計算的快速算法
- 9. 在RTS遊戲中流暢的移動單位?
- 10. 如何ES6模塊進口babylonjs中的WebPack開源RTS遊戲
- 11. RTS視頻遊戲中的尋路如何工作?
- 12. 邊界線在戰略/ RTS遊戲中如何運作?
- 13. 在C#中編寫2D RTS遊戲:圖形庫選項?
- 14. 拖動Actionscript 3.0,就像在RTS遊戲中移動攝像機
- 15. 用JavaScript運行RTS風格的視頻遊戲
- 16. 什麼設計模式最適合AS3的RTS遊戲?
- 17. RTS風格的遊戲攝像頭編碼模型矩陣
- 18. 一般遊戲(RTS)腳本編程基礎
- 19. RTS遊戲Chrome5中的HTML5音頻MP3和OGG口吃和停止
- 20. 遊戲中的玩家停止遊戲
- 21. 更改遊戲中的遊戲控制
- 22. 我的iPhone遊戲遊戲中心
- 23. 創建基於瀏覽器的RTS遊戲而不提供服務
- 24. iOS遊戲中心遊戲不同步
- 25. 遊戲在遊戲中心不承認
- 26. 遊戲中心 - 重新連接遊戲
- 27. 測試多人遊戲中心遊戲
- 28. 在Java中玩Flash遊戲(遊戲)
- 29. 遊戲中心無法識別遊戲
- 30. 遊戲遊戲和繼承
謝謝你的解釋:) – GeekPeek