###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 向客户端添加命令去执行。游戏
所以经过命令系统将游戏的命令处理函数和 命令发生的位置 解耦,分离开了,而且也便于逻辑的统一处理,有点相似于事件分发系统。事件