whoimi

A geek blog

View on GitHub

游戏同步技术

back

back to game

目前看到的同步技术分为帧同步和状态同步,针对的游戏环节为psp和cs两种模式。

腾讯手游在处理游戏同步中的模式:

本部分内容摘录自(51CTO

MMOG模式

服务器负责计算全部的游戏逻辑,并且广播这些计算的结果,客户端仅仅负责发送玩家的操作,以及表现收到的游戏结果。

一般来说,玩家发送一个操作到服务器上,服务器根据玩家操作去修改内存中的游戏世界模型,同时运算游戏世界对这个操作的反应,然后把这些反应都广播给相关的多个客户端,每个客户端负责把这些数据表现出来给玩家看。

优点:安全,服务器只接受合法操作,逻辑简单。

缺点:依赖网络质量。人数多会导致广播数据量大,服务器运算过多。

结论:因此根据以上的特点,腾讯一般会在那些同局游戏人数不太多,但讲求玩法变化快和安全性高的游戏中采用这种同步方案。

主机模式

以参与对战的一个客户端为“主机”,其他的客户端为“副机”。游戏逻辑的主要运算由“主机”完成,所有的“副机”把操作指令,通过服务器中转,集中发送给“主机”;“主机”完成游戏运算后,把结果指令再通过服务器中转,广播给所有的“副机”。

优点:因此把整个游戏逻辑由客户端负责,就能让服务器端无需再开发这部分功能。服务器只负责做转发、广播的操作,所以能承载的人数和第一种方案有数量级上的差别。

结论:在以PVE玩法为主的游戏中,用户关注的是自己的体验,不会太在意同伴的准确动作,这种情况下,主机模式就是一种不错的同步方案。安全性依赖客户端

帧同步模式传统单机-局域网游戏中最常用的。

一般是以服务器按固定的帧率,来搜集每个客户端的输入,然后把这些输入广播给所有的客户端;由于每个操作指令到达所有客户端的时间(帧)都是一样的,所以每个客户端运算的结果也是一样的,同样的输入就会得到同样的结果。非常适合高度要求操作技巧的游戏。

优点:强一致性,由于广播的仅是玩家的操作,所以数据量很少。不管游戏中的角色数、状态量有多大、多复杂,都不会影响广播的数据量。另外在帧同步模式中,数据同步的频率较高,网络延迟越小越好。

缺点:如果有一个客户端网络卡了,所有的客户端都要停下来等。由于TCP的滑动窗口机制和重传机制,导致延时无法控制,因此帧同步一般采用udp进行网络传输,但udp又会衍生出可靠性问题。安全性依赖客户端。