当前位置: 首页 > news >正文

游戏 AI 反作弊|内附解决方案详情!

我们提出使用在游戏中广泛存在的回放日志数据,重构出玩家当局的表现。在回放
日志数据中,我们构建了玩家的时序行为数据,并基于该时序行为数据,分别搭建
了透视和自瞄外挂检测系统,该方法和系统可广泛应用于各种在线游戏平台,提高
游戏平台的公平性和客户满意度。
玩家时序行为数据包括每一个时刻的位置坐标、摄像机/枪口朝向、武器类型、是否
击杀、是否命中等信息,在此基础之上我们进行二次设计加工,构造每个时刻的准
心移动的速度、加速度和目标相对移动轨迹、相对偏向角、目标是否在视野内等特
征,再往上一层,构造以“开火、命中、击杀、回合、对局、玩家历史对局”渐进地
多层次维度的特征。
透视和自瞄是 FPS 游戏里不同类型的作弊问题,我们从同一个时序行为数据中提取
多个特征,其中我们发现部分特征非常明显且富于表达,呈现出正常玩家与作弊玩
家的巨大差异性。我们将多个特征构成的序列喂入模型进行预训练,得到表征之后
再进行分类监督学习,最后对玩家是否作弊进行预测。该方案采用自监督时序模型
对玩家行为数据进行建模,过程分为三个阶段:
在第一阶段,通过对历史玩家对局数据进行对比构造样本,将上述信息输入到模
型中进行学习,该模型能够自主学习游戏玩家的行为模式和数据特征r
在第二阶段,使用少量有标签的历史玩家数据进行监督学习,从而更好的学习到
数据的潜在表示r
在第三阶段,模型对游戏玩家每场行为数据进行处理,以检测其是否存在透视或
自瞄外挂行为。
基于时序行为数据的透视外挂检测方案
作弊玩家使用透视外挂,获取了正常玩家不具备的视野和整体宏观信息优势,也正
因为如此,他们的行为表现的与正常玩家有所不同,例如能在视野信息未知的情况
下进行走位和瞄准,从而获取对枪时的优势,在目标掩体后暴露瞬间会有超出正常
水平的瞄准击杀表现,落在数据上有诸多特征维度可以进行区分,本文我们选取 2
个最为明显的维度进行展示:关键时刻目标相对偏向角的变化,以及综合多个击杀/
多回合的瞄准击杀表现。
1. 关键时刻目标相对偏向角的变化
作弊玩家使用透视后,一般会有很多有意识或无意识的“预瞄准”现象,使得目标相
对偏向角的变化曲线与正常玩家不同。
可以看到,在关键时刻例如击杀前目标在墙后移动的时候,透视作弊玩家的目标相
对偏向角比正常玩家总体偏低,且变化较为稳定。
2. 综合多个击杀、多回合的瞄准击杀表现
作弊玩家在目标遮挡到“视野暴露”的瞬间,能够在很短的时间内完成瞄准与击杀,
与普通玩家的正常反应时间呈现出较大的差距,该差距在综合多次击杀、多回合表
现的情况下尤为明显。
FPS 游戏反外挂
如上图所示,尽管作弊玩家偶尔会“演”,正常玩家也会有偶尔“超神”表现,但是放大
到单回合多次击杀,以及多回合、多场次的瞄准击杀表现来看,透视作弊玩家的平
均反应时间(命中时间差)要比正常玩家低,且稳定,而平均击杀率(对枪 KD)则
比正常高。
下一期,将分享剩余方案详情~

—— END——

今天先聊到这里,看到这里的游戏人,期待下次为大家分享更多游戏行业洞察!

我来自网易~ 是你最得力的游戏行业战略家,也是最硬核的游戏技术布道师,一起让技术发光~ 欢迎各位游戏人一起探讨交流~

tips:《网易智企游戏AI指南》免费领取方式——评论区留言【指南】,立即get√

相关文章:

游戏 AI 反作弊|内附解决方案详情!

我们提出使用在游戏中广泛存在的回放日志数据,重构出玩家当局的表现。在回放 日志数据中,我们构建了玩家的时序行为数据,并基于该时序行为数据,分别搭建 了透视和自瞄外挂检测系统,该方法和系统可广泛应用于各种在线…...

elementUI组件库样式修改整理

一、整体修改样式注意点 避免!important,能使用深度选择器就用深度选择器主题色使用变量,方便后期统一修改,最好新建一个单独的文件,专门用于定义公共变量样式文件尽量放在一个文件里,方便后期维护 二、单独element …...

还是了解下吧,大语言模型调研汇总

大语言模型调研汇总 一. Basic Language ModelT5GPT-3LaMDAJurassic-1MT-NLGGopherChinchillaPaLMU-PaLMOPTLLaMABLOOMGLM-130BERNIE 3.0 Titan 二. Instruction-Finetuned Language ModelT0FLANFlan-LMBLOOMZ & mT0GPT-3.5ChatGPTGPT-4AlpacaChatGLMERNIE BotBard 自从Cha…...

Win11初始化系统遇一文解决

这个是目录 一、设置内的初始化无法使用时,使用以下工具二、将桌面移动到D盘三、解决win11桌面右键创建只有一个带盾牌的文件夹问题四、win11 系统停止更新五、office安装1、使用的是 Office Tool plus2、使用WPS 六、D盘有感叹号七、打开组策略编辑器(gpedit.msc)失…...

vr虚拟现实游戏世界介绍|数字文化展览|VR元宇宙文旅

虚拟现实(VR)游戏世界是一种通过虚拟现实技术创建的沉浸式游戏体验,玩家可以穿上VR头显,仿佛置身于游戏中的虚拟世界中。这种技术让玩家能够全方位、身临其境地体验游戏,与游戏中的环境、角色和物体互动。 在虚拟现实游…...

kotlin 程序 编译与执行

准备kotlin环境 Ubuntu安装kotlin 1. 创建一个名为 hello.kt 文件&#xff0c;代码如下&#xff1a; fun main(args: Array<String>) {println("Hello, World!") }2. 使用 Kotlin 编译器编译应用 kotlinc hello.kt -include-runtime -d hello.jar-d: 用来设…...

Python学习:注释和运算符

python 注释 在Python中&#xff0c;注释用于在代码中添加解释、说明或者提醒&#xff0c;但并不会被解释器执行。Python中的注释以#开头&#xff0c;直到行末为止。下面是关于Python注释的详细解释和举例&#xff1a; 单行注释&#xff1a;使用#符号在行的开头添加注释&…...

英伟达 V100、A100/800、H100/800 GPU 对比

近期&#xff0c;不论是国外的 ChatGPT&#xff0c;还是国内诸多的大模型&#xff0c;让 AIGC 的市场一片爆火。而在 AIGC 的种种智能表现背后&#xff0c;均来自于堪称天文数字的算力支持。以 ChatGPT 为例&#xff0c;据微软高管透露&#xff0c;为 ChatGPT 提供算力支持的 A…...

Spark面试重点

文章目录 1.简述hadoop 和 spark 的不同点&#xff08;为什么spark更快&#xff09;2.谈谈你对RDD的理解3.简述spark的shuffle过程4. groupByKey和reduceByKey的区别 1.简述hadoop 和 spark 的不同点&#xff08;为什么spark更快&#xff09; Hadoop 和 Spark 是两种用于大数据…...

UGUI源码分析与研究2-从底层实现的角度去分析和调优UI的性能问题和疑难杂症

从底层实现的角度去分析和调优UI的性能问题和疑难杂症&#xff0c;可以从以下几个方面入手&#xff1a; 绘制性能优化&#xff1a;UI的绘制是一个重要的性能瓶颈&#xff0c;可以通过以下方式进行优化&#xff1a; 减少绘制区域&#xff1a;只绘制可见区域&#xff0c;避免不必…...

OpenAI的GPT已达极限,更看好AI Agent

日前&#xff0c;比尔盖茨发表文章表示&#xff1a;AI Agent不仅会改变人与电脑的互动方式&#xff0c;或许还将颠覆软件行业&#xff0c;引领自输入命令到点击图标以来的最大计算机革命。 在数字化和技术创新的浪潮中&#xff0c;AI Agent作为一种前沿技术&#xff0c;正开启…...

【C/C++】详解 assert() 断言(什么是assert? assert有什么作用?)

目录 一、前言 二、什么是 assert ? 三、assert 的用法 四、assert 案例解析 五、assert 断言的使用原则 六、共勉 一、前言 在编写程序过程中&#xff0c;尤其是调试代码时&#xff0c;往往需要一个提醒代码漏洞/Bug的小助手&#xff0c;以便于程序员及时修改和完善代码…...

[C++]20:unorderedset和unorderedmap结构和封装。

unorderedset和unorderedmap结构和封装 一.哈希表&#xff1a;1.直接定址法&#xff1a;2.闭散列的开放定址法&#xff1a;1.基本结构&#xff1a;2.insert3.find4.erase5.补充&#xff1a;6.pair<k,v> k的数据类型&#xff1a; 3.开散列的拉链法/哈希桶&#xff1a;1.基…...

ARM 汇编指令:(六) B 跳转指令

目录 一.B 和 BL 1.B/BL指令的语法格式 2.示例解析 一.B 和 BL 跳转指令 B 使程序跳转到指定的地址执行程序。指令 BL 将下一条指令的地址复制到 R14&#xff08;即返回地址连接寄存器 LR&#xff09;寄存器中&#xff0c;然后跳转到指定地址运行程序。 1.B/B…...

​​SQLiteC/C++接口详细介绍之sqlite3类(十一)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;​​SQLiteC/C接口详细介绍之sqlite3类&#xff08;十&#xff09; 下一篇&#xff1a;​​SQLiteC/C接口详细介绍之sqlite3类&#xff08;十二&#xff09;&#xff08;未发表&#xff09; 33.sq…...

百度智能云+SpringBoot=AI对话【人工智能】

百度智能云SpringBootAI对话【人工智能】 前言版权推荐百度智能云SpringBootAI对话【人工智能】效果演示登录AI对话 项目结构后端开发pom和propertiessql_table和entitydao和mapperservice和implconfig和utilLoginController和ChatController 前端开发css和jslogin.html和chat.…...

第二十七节 Java 多态

本章主要为大家介绍java多态的概念&#xff0c;以及便于理解的多态简单例子。 Java 多态 多态是同一个行为具有多个不同表现形式或形态的能力。 多态性是对象多种表现形式的体现。 比如我们说"宠物"这个对象&#xff0c;它就有很多不同的表达或实现&#xff0c;比…...

基于Springboot的员工健康管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的员工健康管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…...

[论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection

论文网址&#xff1a;[2304.08876] 用于定向微小目标检测的动态粗到细学习 (arxiv.org) 论文代码&#xff1a;https://github.com/ChaselTsui/mmrotate-dcfl 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&…...

Selenium WebDriver 中用于查找网页元素的两个方法

这里提供了 Selenium WebDriver 中用于查找元素的两个方法&#xff1a;find_element() 和 find_elements()。 find_element(byid, value: Optional[str] None) → selenium.webdriver.remote.webelement.WebElement 这个方法用于查找满足指定定位策略&#xff08;By strategy&…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...