我一直想问,网游的校验由客户端还是服务端来做

假如有个天雷术技能,对目标半径10m的怪物造成伤害。怎么校验怪物在不在范围内呢?
如果交给服务端校验,服务端无法调用游戏引擎校验距离的api,除非自己写一套游戏引擎,包括碰撞校验,距离校验,寻路之类的。

如果交给客户端校验,在各客户端角色位置未正确同步的情况下,目标周围10米的某个怪物可能在另一台设备上距离目标超出了10m很远,却仍然受到伤害。每个设备都释放着自己独有的天雷术。

或者举另外一个例子,寻路。寻路如果由服务端校验,服务端是不是要写一套寻路算法

有个想法。服务器跑个cocos,以它为准,负责一些客户端才能做的校验工作

看游戏规模吧,小游戏随便!
大点的游戏,都要求服务器校验的.
不然,本来一刀9的伤害,能打出9999,都是小意思.

服务器必须校验,前端可做可不做,我们先前的游戏,因为服务器不校验,一刀999999999~

先怎么简单怎么来,有用户了再说
说不定用户就是冲着一刀99999……来的,你校验做强了,没用户了

兄台说得有理 前期怎么快,怎么性能好怎么来。后期用户起来了,有钱了。多少几个服务器分分钟搞好。

从技术角度来说,服务端可以持有一份地形数据,除了图像显示以外所有的逻辑都在服务端运行,客户端只是接受位置同步并进行插值平滑。在这个基础下,校验就比较好做了。

当然,对于单机副本来说,没必要这么搞,成本太高了。这种做法比较适合多人同步玩法。

你会说出这句话,首先就代表,你没有思考,怪物的初始位置是谁提供的,总不能是你加载场景后,客户端随机摆放的吧?在多人游戏中,每个人看到的怪的位置,都是统一的,或者说一定程度上统一,所以,怪坐标必然来自服务器,你还觉得服务器里没距离数据么?

2赞

强联网的游戏,客户端只做显示,所有的技能判断、导航、计算都是放在服务端,包括怪物位置也是服务端在控制,把坐标下发到所有的客户端,这样能保证客户端的一致性和服务端的安全性

并不完全是,很多时候为了消除延迟感、会有限信任客户端。

网游一般不会 除非是对战类的

帧同步就全部客户端处理了。状态同步就是服务器处理。