声明:本人游戏开发新手,经验少脑子笨,好东西都要记录下来以备查阅。本篇博客主要摘抄自我 大知乎相关问答,仅为本人的学习记录,感谢相关作者的分享。预知详情的同学请点击如下宇宙超级无敌最强至尊超链接: 如果做网游的时候,把算法过多地放在客户端上面,可能会导致什么问题?
以及 战斗放在客户端计算的手游,如何在考虑玩家作弊可能性的情况下,设计比较好玩的PVE玩法? 。
—————————平行宇宙分割线—————————-
战斗放在客户端
优势:1、对网络条件的依赖减小。如断网,掉线,延迟等。2、更好的战斗表现与更佳的战斗体验,如降低延迟以及更流畅的节奏感。
劣势:1、防作弊开销增大。
客户端作弊的四种途径:
1、反编译并修改源代码。
2、修改客户端运行内存。
3、修改客户端的配置表。
对配置表打包加密。
4、用抓包工具修改协议内容。
防作弊途径:
1.服务端检测客户端发来的包的合法性,对收到的数据做有效性验证。
如ARPG手游,可以将本场战斗的关键数据按照时间节点打包,最后与服务器交互的时候发送给服务器。设置一系列指标并分配权重,计算阈值,偏离阈值太远的判定为作弊。
2.客户端与服务器都进行战斗计算。一定时间间隔周期发消息验证。
3.客户端仅限于战斗计算,其他资源产出,属性养成等均与服务器交互。
4.增强战斗体验,让玩家主动放弃作弊想法。
如横版格斗游戏,增强操作流畅性,节奏感,打击感。让玩家能够从中获得极大的满足感,作弊的意愿自然较低。
重复性的无操作意义的功能最容易让人产生疲倦感,容易让人有直接pass得结果的冲动。尽量减少此类设计,或者游戏本身就提供给