文档章节

XYGame-网络同步3-防作弊

梦想游戏人
 梦想游戏人
发布于 2017/04/26 17:39
字数 721
阅读 45
收藏 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系统,不过也防不了高手

© 著作权归作者所有

梦想游戏人
粉丝 38
博文 445
码字总数 127977
作品 0
成都
私信 提问
智能合约的链外扩容——Layer 2二级网络

上一篇中我们解释了针对比特币的链外扩容方案,闪电网络。通过一个博弈的设计,使得两个人之间的多次转账只需要在链上记录开头和最后两笔转账,然后通过多人之间的链下互转,实现任意两个人之...

lencyforce
03/17
0
0
棋牌游戏唯有公平公正,才能稳定长久赚钱。

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

棋牌游戏开发
2017/10/25
0
0
2018高考来了,监考黑科技扎堆上阵的考场是怎样的存在?

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

深度学习
2018/06/07
0
0
我们的GAME-TECH沙龙北京站完美收官了,都讨论了些啥?

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

腾讯云加社区
2018/04/20
0
0
点触验证--touclick

首创点触式新一代验证码 防数据爬取 / 防黄牛刷单 / 防垃圾注册 / 防恶意登录 / 防支付欺诈 / 防投票作弊,解决机器攻击带来的互联网病痛。 可感、可知、可信、可控,专注用户信息安全。 基于...

匿名
2017/03/04
5.3K
9

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
2
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部