游戏开发中常用的模式

###0. 前言:

游戏开发中非常重要的四种模式是:

命令模式
事件系统
状态机
协程

这四种模式在各种游戏引擎中都有不同的实现,针对不同的游戏逻辑系统的需求,每个子系统也会有自己的特定的实现,这里将我见到过的一些实现方式总结一下:

###1. 命令模式:

  • 在quake 雷神之锤中 大量使用了命令模式,quake的 cmd.h cmd.c 实现了命令缓冲和命令执行器:

主要接口

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 向客户端添加命令去执行。

因此通过命令系统将游戏的命令处理函数和 命令发生的位置 解耦,分离开了,并且也便于逻辑的统一处理,有点类似于事件分发系统。

  • 天龙八部里的命令模式 待续

转载于:https://my.oschina.net/u/186074/blog/398364

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值