Juya Cai

关于网络同步的经验与思考

前言 截至目前,笔者也接触了一些游戏项目的开发,接触过一些网络同步方案,在这里做个总结以及提出一些自己的思考。笔者目前接触的网络同步方案大致划分为三种:快照同步、状态同步和帧同步。具体采用什么方案,需要根据游戏需求以及服务器的架构需求来指定,而不是盲目的选择。 快照同步 这是笔者接触比较多的同步方法,也是三种同步方案中最为简单的。快照同步常用于逻辑简单的游戏,多为房间类型的休闲游戏,卡牌...

属性同步--MMO服务器开发技术点记录(八)

在MMO游戏中,玩家实体必然存在大量的状态,这些状态被称为属性状态,如hp、mp、攻击力、防御力等。不同的实体的组件会影响到这些属性状态的值,需要进行同步。不能说在每次修改某位玩家实体的属性状态后就要发送一个rpc去通知客户端。每个属性的变化都去进行一条rpc的通知,在实现上也是比较麻烦。 比较好的方案是提供属性同步功能,当属性状态发生改变时,就主动地通知; 属性同步设计 属性同步分为...

技能系统及其同步--MMO服务器开发技术点记录(七)

技能系统可以单独开发个组件。下面来介绍一下常见的CombatComponent的设计思路。和移动组件一样,技能组件的同步同样需要进行插值、预测。 我们的技能系统先设计的简单些,只有普攻和特殊技能。 普攻 普攻的执行逻辑是这样的: 客户端发起普攻请求,包含目标信息和技能信息,同时本地播放普攻动画; 服务端接收到请求后,进行合法性校验,执行普攻逻辑; 服务端生成攻击事件,并将...

场景服务--MMO服务器开发技术点记录(五)

Service / 服务 服务器其实也可以称为一个服务,为客户端提供某些功能。通常一个服务会运行在一个端口上供客户端访问。像下面我们要深入的场景服务,是一个独立运行的单点服务。游戏服务器涉及的服务通常还包括登录服务,大厅服务等。服务类继承自TcpServer类,属于应用层,与网络层解耦开来。这里可以设计一个连接器的接口,实现服务可以自定义所需的通信协议,如TCP、UDP、Websocket...

网络同步之状态同步--MMO服务器开发技术点记录(四)

状态同步 网络同步是服务器开放老生常谈的技术点,也是MMO游戏中至关重要的一环。它确保了所有玩家在同一场景中的状态一致性,使得玩家之间的交互能够实时反映在游戏世界中。网络同步方案大致分为两类:帧同步和状态同步。关于帧同步,可以参考这篇博客帧同步 本篇主要讲解在我们的MMO服务器中,状态同步是如何实现的。 在ECS架构篇中,我们讲到游戏系统由多个实体组成,实体内由多个组件组成。不同玩家实...