[计算机] 吃鸡类游戏地形碰撞等服务器端怎么计算呢?【2018精彩的UWA问答-叁】...

查看:205 |回复:2 | 2024-10-23 16:12:05

您需要 登录 才可以下载或查看,没有账号?注册

x
吃鸡类游戏地形碰撞等服务器端怎么计算呢?
由于吃鸡类游戏的强同步,很多时候可能使用帧同步,客户端无法使用直接使用物理引擎,或者状态同步情况下服务器需要计算碰撞等。
此时怎么处理这一块碰撞呢?数据结构又是怎样呢

精彩回答:
如果让我选择技术方案的话,绝地求生这种3D自由视角的吃鸡游戏绝对不会选择帧同步,原因有:

射击游戏在玩家移动、开枪等操作上会有较强的手感体验上的诉求,帧同步很难支持即时的操作反馈;
自由视角的吃鸡虽然没有战争迷雾,但是会有视距的问题,使用帧同步把所有信息广播给玩家,外挂做起来简单太容易,而吃鸡手游中标定其他玩家位置这样的外挂又有很大的优势,所以本质上不适合。
不知道题主说的帧同步和我理解的帧同步是否一致。

然后,基于状态同步,服务器可以跑物理,但是真实的物理完全在服务器跑,对于服务器的压力太大,需要付出的成本过高,一台物理机也可能承载不了多少同时在线的玩家消耗,运维的成本你要评估下是否可以接受。
常见的做法:

简化3D物理,根据上下文状态只做部分关键判定,比如命中这样的,不过因为物理中的数据计算比较敏感,浮点误差都可能导致结果不一致,这里的工作量和坑应该都不少。
使用2D物理系统代替3D物理系统来做,在物理计算中去掉高度,只做2D的碰撞,结合专门的检测进程,是一种可行的检测方案,性价比比较高;
客户端判定,服务器验证,先相信客户端的判定,然后进行客户端表现,然后服务器基于数据做验证,这里可能会使用2D物理引擎,也可能在核心判定中再添加一些比如高度的信息等来做;
客户端判定,加严格的反外挂方式,封号之类的。这种当然你也要可以判断出来玩家作弊,判断方式可以未必实时去做,类似帧同步放后面通过回放模拟来做也可以,这时候有可能可以使用3D物理的来做(经验上依然不推荐,只是从实时变成离线,对于性能的要求没有那么高了,3D成为一个可能性)。
先不做,等游戏火了有钱了再加,没火的话,也没什么专业的外挂团队来搞你……

至于数据结构,太细节了,根据需求自己设计吧。2D的直接集成开源的2D引擎就可以了。


顺带补充几点:
1.这游戏除了角色,还有非常多的第三方信息需要同步,包括:门,载具,物资。如果是帧同步:那还得同步弹药量,消耗品,等等。。即使是端游,也是信息量巨大。所以用状态同步比较现实。
2.不是特别熟悉虚幻4,而虚幻4用了NVIDIA的physx,市面上的吃鸡手游应该都是以此为基础做的,那么服务器如何实时或离线运算physx应该也是有参考的。联想到之前有篇守望先锋的关于同步平滑的文章,lz可以去参考下。
3.其实物理碰撞不是啥大问题,外挂中自瞄和透视才是大问题。。早期的pubg连人物移速都不验证的,为了物理碰撞而采用帧同步,可能其他方面踩的坑要更多...



再补充一个反外挂的办法吧~ 可以把本来需要在服务器进行的复杂运算,先让涉及到的客户端发一个结果,再将结果和运算及参数发到若干客户端来执行,再做投票验证验证。这样可以降低一些服务器的负载


Snipaste_2019-07-05_20-13-16.jpg

评分

参与人数 1活跃度 +6 展开 理由
微凉. + 6 【给力】阅贴无数,楼主最强!

查看全部评分

2024-10-23 16:12:05  
 赞 赞 0

使用道具 登录

2个回答,把该问题分享到群,邀请大神一起回答。
2#
那个,沙发
回复 收起回复
2019-7-5 21:19:25   回复
 赞 赞 0

使用道具 登录

3#
回复 收起回复
2023-2-25 11:59:37   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

图文教程技术文章技术文库程序逻辑
显示全部 8
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表