###0. 前言:服務器
遊戲開發中很是重要的四種模式是:函數
命令模式 事件系統 狀態機 協程
這四種模式在各類遊戲引擎中都有不一樣的實現,針對不一樣的遊戲邏輯系統的需求,每一個子系統也會有本身的特定的實現,這裏將我見到過的一些實現方式總結一下:code
###1. 命令模式:協程
主要接口token
CBuf_Init 命令緩衝區初始化 CBuf_AddText 添加鍵盤 或者 console 命令 CBuf_InsertText 插入一個當即執行的命令 CBuf_Execute 執行一條命令 Cmd_Init 初始化 Cmd_AddCommand 註冊命令的處理函數,若是處理函數是null則命令會被髮送到服務器處理 Cmd_Arg 獲取命令參數 Cmd_ForwardToServer 發送命令到服務器 Cmd_ExecuteString 執行字符串命令 Cmd_TokenizeString 將命令切割爲token
在遊戲主循環中,每一frame都會調用CBuf_Execute 執行命令緩衝區中的命令;接口
當服務器初始化的時候會調用CBuf_AddText 添加字符串命令,當服務器發送報文過來,會調用Cbuf_AddText 向客戶端添加命令去執行。遊戲
所以經過命令系統將遊戲的命令處理函數和 命令發生的位置 解耦,分離開了,而且也便於邏輯的統一處理,有點相似於事件分發系統。事件