文档章节

XYGame-网络同步3-防作弊

梦想游戏人
 梦想游戏人
发布于 2017/04/26 17:39
字数 721
阅读 39
收藏 0

GIT https://git.oschina.net/dreamyouxi/XYGame

对应工程是ClientServer 服务器

客户服务端 ClientServer

运行在服务端的软件。 用于模拟客户端的运算 来校验数据,原则上 只是UnityClient的一个场景 和部分修改代码 没有UI 只有逻辑,有单独的线程 负责和 LogicServer通信等

 

由于所有逻辑都在客户端,执行,像战争迷雾,客户端逻辑错乱,开辅助软件刷号 刷金币等,操作型的作弊 对于手游,我没什么解决方法,对于各个客户端逻辑的正确性,可以通过ClientServer 来效验,具体流程

战斗完成后,战斗服务器 会把游戏帧数据保存 到redis  或者文件什么的,LogicServer 会向ClientServer发起 数据效验请求,带上装备信息,战斗id 等基本信息,ClientServer 可以做成一个队列,收到请求后立刻和客户端一样的算法 来快速模拟这句游戏,然后匹配战斗结果 是否一致,

有一层小优化就是可以预先判定各个客户端的数据是否一致,一致才发起数据效验,目前实现的ClientServer 只相比客户端多了100多行代码,开发逻辑时 不需要特地在意,打包的时候 选择ClientServer 场景即可,GIT连接的UnityClient工程中 已实现

由于服务器没有显卡,运行Unity 可用 xxx.exe -batchmode 命令来运行,

当然,只是开发版本,运营的话 还要改动大量客户端代码,比如吧View 音效 特效等东西去掉,只留下逻辑

等代码,当然客户端框架设计得好的话可以很简单就移除掉View Audio 等模块。

 

这种效验方式只能在战斗结束后才能效验,如果玩家作弊,虽然对其他玩家不会有太大的影响,但是有时候还会在游戏过程中需要立刻阻止 或者响应很快的知道某客户端作弊,强行掉线 不让其进行游戏的这种需求的话,

方案:服务端的ClientServer 同步模拟游戏,然后一定Tick 对整个游戏系统 做信息摘要,比如求一次hash 来做对比,这种在不需要知道客户端作弊内容的情况下,还比较好,当然也可以用客户端之间来做对比(所有客户端都作弊 那就无解了,也存在作弊内容不一样的情况), 这种粗暴的强行不让游戏的做法比较粗暴,可以让整盘游戏失效,也可以做到 谁作弊 谁强行掉线

 

端游还可以开个守护进程监测系统进程活动,类似于TX的TP系统,不过也防不了高手

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 36
博文 429
码字总数 122400
作品 0
成都
棋牌游戏唯有公平公正,才能稳定长久赚钱。

  不少运营商反馈,玩家在游戏当中存在不公平游戏行为:联合报牌打牌,看牌打牌,玩家怀疑产品存在外挂等,玩家都觉得游戏不公平,自然不会再玩。如何让玩家玩游戏玩起来公平公正呢?上海傲...

棋牌游戏开发
2017/10/25
0
0
我们的GAME-TECH沙龙北京站完美收官了,都讨论了些啥?

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由 腾讯游戏云 团队首发与云+社区 摘要:4月13日,腾讯游戏云GAME-TECH游戏开发者技术沙龙于北京举办。此次活动是腾讯游戏云...

腾讯云加社区
04/20
0
0
冲顶大会、HQ火了,该如何打造一款在线答题App呢?

1月3日,王思聪微博宣布“撒币”10万元之后,一个才发布不到10天的App“冲顶大会”引爆了微博和朋友圈。一夜之间,这个线上版的开心辞典一路飙升至App下载排行前列。 冲顶大会是什么? 冲顶大...

01/08
0
0
2018高考来了,监考黑科技扎堆上阵的考场是怎样的存在?

     今天,一年一度的高考即将拉开序幕,在这场受到社会全面关注的盛大考试面前,为保障高考的公平与公正,高考监考措施再度升级,各式各样的安防手段得到了充分的加强。那么,今年的高...

深度学习
06/07
0
0
记者暗访“投票公司”: 网络投一万票仅需200元

中广网兰州12月28日消息 近年来,类似“超女”、“快男”的海选,各地各行业的“百优”、“十佳”等社会参与的投票活动或公众评选活动大量涌现。这些“人物”的产生,主要以网络投 票方式为主...

红薯
2010/12/28
1K
9

没有更多内容

加载失败,请刷新页面

加载更多

awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
16分钟前
0
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
4
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
6
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
11
0
JavaEE——Junit

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Junit Junit又名单元测试,Junit是用来测试Jav...

凯哥学堂
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部