例子1: 角色节点的组织与管理
逻辑节点(位置,方向,状态数据等) + 动画子节点(待机,行走,攻击,技能,死亡动画,播放)
角色的位置,状态等数据都保存到逻辑节点上,逻辑节点下面,有一个孩子节点,负责播放角色的动画,及"表现"。
这里有个游戏开发学习交流小组 大家可以一起学习交流
例子2: 帧同步中的逻辑与表现
帧同步是现在很流行的一种同步模式,比如《王者荣耀》就是帧同步做的,帧同步的逻辑与表现分离指的是
客户端接收服务端发过来的帧事件,基于这个帧事件,来驱动整个游戏的数据计算,我们叫做逻辑帧。
在帧同步里面,所有的数据计算与游戏进程的迭代,都是基于逻辑帧来驱动和计算的。逻辑帧的帧率一般是15~20FPS,
而本地动画要流畅,基于60FPS,这样,我们再逻辑中处理决定播放哪些动画,本地基于客户端的帧率来播放动画。
数据同步与计算在逻辑帧(15~20FPS),本地动画播放位移移动在本地表现帧(60FPS)。
例子3: ECS模式:
ECS模式就是典型的数据与表现分离,我们的Entity实体,由一个一个的数据ComponentData组成,使用System来
迭代里面的数据,表现层独立出来作为单独的ComponentData。
例子4: 游戏引擎主线程与渲染线程
游戏中的主线程负责迭代游戏的逻辑,迭代完成后渲染线程负责把要绘制的数据提交给GPU绘制。做到逻辑线程与渲染线程分离
网友评论