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

游戏AI,让AI 玩游戏有什么作用?

让 AI 玩游戏这件事远比我们想象的要早得多。追溯到 1948 年,图灵和同事钱伯恩共同设计了国际象棋程序 Turochamp。之所以设计这么个程序,图灵是想说明,机器理论上能模拟人脑能做的任何事情,包括下棋这样复杂的智力活动。

可惜的是因为这个程序太复杂了,在图灵去世之前,Turochamp 并没有在任何计算机上运行,只出现了一些受到 Turochamp 启发的国际象棋残局破解游戏。

国际象棋算是比较复杂的棋类游戏了,在同一时期,也有科学家研发了一些规则相对简单的棋类程序。其中最有代表性的,要数 1950 年,一位名叫亚瑟·塞缪尔的科学家开发的西洋跳棋程序了。

最初,这款跳棋程序只能简单地跟人类棋手进行对弈,但后来,塞缪尔想给它增加一个功能,让它能够“自我学习”。这个跳棋程序能够和自己进行对弈,记录下这些对弈的结果,调整每一步的评分,最终提高自己的技术,这可以称得上是最早的能自我学习的棋类游戏了。

塞缪尔不断改进自己的跳棋程序,让它达到了顶尖的业余爱好者的水平。可因为当时计算机硬件的限制,塞缪尔的跳棋程序和最顶尖的人类棋手还有一定的差别。第一个打败人类西洋跳棋冠军的是 1989 年的一款叫“支奴干”的程序。

不过,西洋跳棋的规则相对比较简单,棋局也不如国际象棋那么复杂,人们还是想看到国际象棋领域的人机大战。如果 AI 能战胜人类顶尖的国际象棋大师,那毫无疑问将会证明自己的实力。

这场超级大战,发生在 1997 年。IBM 的超级计算机“深蓝”击败了国际象棋冠军卡斯帕罗夫。虽然此后,仍然有人类棋手向 AI 发起挑战,但已经无力回天,在国际象棋领域 AI 已经取得了彻彻底底的胜利。

证明了自己的能力之后,AI 并没有停下脚步,接下来,它们要在围棋领域向人类大师发起挑战。

围棋虽然只有黑白两种棋子,但围棋局势的可能性、复杂性比国际象棋要高多了,因此 AI 要想打败人类的围棋高手,还需要更多努力。

在深蓝战胜卡斯帕罗夫之后将近 20 年,DeepMind 研发的围棋机器人 Alpha Go 击败了人类围棋冠军李世石、柯洁。可以说至此,在棋类领域,AI 已经没有敌手了。

接下来,AI 开始转战其他领域。比如,DeepMind 开始训练一款叫 Alpha Star 的 AI,教它玩《星际争霸 2》这款即时策略游戏。在 2019 年,Alpha Star 也在这款游戏上达到了人类大师的水平。

GPT 的开发公司 Open AI,在 2017 年到 2019 年期间,也在训练 AI 玩游戏。当时它们玩的是《Dota 2》,并且在 2019 年 4 月,以 2:0 的成绩击败了当时的卫冕冠军。后来在为期 4 天的在线公开赛跟人类高手进行了 4 万多场比赛,赢得了 99.4%的比赛。

为什么要让 AI 去玩游戏呢?

这是因为,人们在训练 AI 玩游戏过程中用到的算法和技术,往往可以迁移到其他领域。比如 AlphaGo 的深度学习技术,在 AlphaFold 中也得到了应用,AlphaFold 帮助人类科学家解决了许许多多蛋白质折叠上的难题。

另外,AI 在玩游戏的过程中,需要根据对手的动作来预测下一个动作的可能性,这样的算法也可以应用在自然语言处理中。

再者,AI 玩游戏过程中涉及到的自主分类、决策、并不断自我优化的能力,在很多行业中都有应用。

总而言之,让 AI 玩游戏,并不是为了找事情让 AI 消遣,而是在解决复杂问题的过程中让 AI 变得越来越聪明。在这个过程中,我们不断优化 AI 算法,以迭代技术。

准确地说,“AI 战胜人类”这样的说法实为调侃,战胜人类的并不是 AI,打败人类的,还是人类的智慧。(以上摘自科普中国,侵权删)

来谈一谈游戏中的AI:降本增效,革新体验

一个由 AI 技术驱动的创作新时代已经到来。网易数智作为这一变革的积极推动者,一直专注于 AI 技术的研发与实践。我们提供全链路 AI,全面地覆盖了游戏行业的各个关键环节,从研发到发行,从买量到安全,助力游戏行业在玩家体验玩法创新安全保障精细化运营等方面实现全新升级,赋能游戏行业创造更大的商业价值。作为网易旗下专注于企业服务的部门,网易数智游戏行业部一直都在积极为游戏产业贡献力量,并在不断的实践中得到了客户的广泛认可。

例如,经历了从依赖预设规则到实现自主学习的飞跃式发展,通过强化学习、模仿学习等先进技术开发的游戏 AI 智能体,能够模拟真人操作,实现智能化自学习,不仅展现出高水平的游戏技能,还具备多策略应对难度可控的特性,极大地丰富了游戏的多样性和挑战性。如今,网易数智游戏行业部通过自研的游戏 AI 智能体技术,为玩家提供接近真人的游戏体验,已广泛应用于棋牌策略角色扮演等游戏类型中。

图片

        

AI 技术在游戏中的应用,不仅提高了游戏的生产效率,同时也提升了游戏的可玩性和互动性。在游戏运营方面网易数智的 AI 技术在游戏运营中的应用,在提升游戏客户服务效率的同时,也为游戏安全“保驾护航”

其中,网易数智 AI 客服技术通过整合智能客服推荐多维度多指标训练服务机器人以及行业知识体系和算法模型导入,不仅优化了玩家与游戏的互动,还通过个性化的智能外呼系统,增强了游戏玩家的忠诚度。另外,为维护游戏环境的公正与秩序,AI 技术也被赋予了新的使命——反外挂。基于用户游戏内行为,利用深度学习技术实现的多维度 AI 检测,通过智能风控平台AI 脚本工作室行为检测以及 FPS 外挂 AI 识别,为游戏运营提供了全面的安全保障,确保了游戏环境的公平性和健康性。

图片

        

在游戏营销领域,AI 智能外呼的强交互高拟人智能自动化等特点,能够有效提升玩家体验、增加玩家粘性。例如,AI 智能外呼系统通过集成融合 ASR、NLP 和 TTS 技术,实现了与玩家的流畅交互,为玩家提供个性化的互动体验。NPC 的音色生成,为游戏世界中的人物注入生命力,从而极大地增强游戏的沉浸感和情感联系。此外,AI 智能外呼系统还具备惊喜式召回功能,通过发送个性化的语音信息,有效地召回玩家回归游戏。

相关文章:

游戏AI,让AI 玩游戏有什么作用?

让 AI 玩游戏这件事远比我们想象的要早得多。追溯到 1948 年,图灵和同事钱伯恩共同设计了国际象棋程序 Turochamp。之所以设计这么个程序,图灵是想说明,机器理论上能模拟人脑能做的任何事情,包括下棋这样复杂的智力活动。 可惜的是…...

Java 设计模式 二 单例模式 (Singleton Pattern)

单例模式 (Singleton Pattern) 是一种常见的设计模式,属于创建型模式。它的核心思想是确保一个类只有一个实例,并提供一个全局访问点来获取该实例。通常用于那些需要全局控制的场景,比如配置管理、日志系统、数据库连接池等。 1. 单例模式的…...

Java 中 final 关键字的奥秘

目录 一、final 修饰类:封印的 “永恒之石” 二、final 修饰变量:锁定的 “不变之值” 三、final 修饰方法:不可撼动的 “坚固堡垒” 四、总结 在 Java 编程的世界里,final 关键字就像一把神奇的 “锁”,一旦使用&…...

C# 通用缓存类开发:开启高效编程之门

引言 嘿,各位 C# 开发者们!在当今快节奏的软件开发领域,提升应用程序的性能就如同给跑车装上涡轮增压,能让你的项目在激烈的竞争中脱颖而出。而构建一个高效的 C# 通用缓存类,无疑是实现这一目标的强大武器。 想象一…...

电脑办公技巧之如何在 Word 文档中添加文字或图片水印

Microsoft Word是全球最广泛使用的文字处理软件之一,它为用户提供了丰富的编辑功能来美化和保护文档。其中,“水印”是一种特别有用的功能,它可以用于标识文档状态(如“草稿”或“机密”)、公司标志或是版权信息等。本…...

记录一下OpenCV Contrib 编译踩的坑

最近有需要采用OpenCV Contrib 里面的函数做一下处理,要重新编译,一路编译两三个小时了,记录一下备忘吧。 1、编译前先准备好如下环境 ①visual studio已安装,具体版本和型号根据需求经验来,我看常用的是VS2015、VS201…...

01.04、回文排序

01.04、[简单] 回文排序 1、题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。 2、解题思路 回文串的特点: 一个回文串在…...

[创业之路-259]:《向流程设计要效率》-1-让成功成熟业务交给流程进行复制, 把创新产品新业务新客户交给精英和牛人进行探索与创造

标题:成功与创新的双轨并行:以流程复制成熟,以精英驱动新知 在当今这个日新月异的商业环境中,企业要想持续繁荣发展,就必须在稳定与创新之间找到完美的平衡点。一方面,成熟业务的稳定运营是企业生存和发展的…...

如何使用usememo和usecallback进行性能优化,什么时候使用usecallback,什么时候使用usememo

React useMemo 和 useCallback 性能优化总结以及使用场景 基本概念 useMemo 用于缓存计算结果,避免在每次渲染时重复进行昂贵的计算。 useCallback 用于缓存函数引用,避免在每次渲染时创建新的函数引用。 使用时机对比 useMemo 适用场景 复杂计算…...

22. C语言 输入与输出详解

本章目录: 前言1. 输入输出的基础概念1.1 标准输入输出流1.2 输入输出函数 2. 格式化输出与输入2.1 使用 printf() 进行输出示例 1: 输出字符串示例 2: 输出整数示例 3: 输出浮点数 2.2 使用 scanf() 进行输入示例 4: 读取整数和字符改进方案:使用getchar()清理缓冲…...

WPF实战案例 | C# WPF实现计算器源码

WPF实战案例 | C# WPF实现计算器源码 一、设计来源计算器应用程序讲解1.1 主界面1.2 计算界面 二、效果和源码2.1 界面设计(XAML)2.2 代码逻辑(C#)2.3 实现步骤总结 源码下载更多优质源码分享 作者:xcLeigh 文章地址&a…...

AutoGen入门——快速实现多角色、多用户、多智能体对话系统

1.前言 如https://github.com/microsoft/autogen所述,autogen是一多智能体的框架,属于微软旗下的产品。 依靠AutoGen我们可以快速构建出一个多智能体应用,以满足我们各种业务场景。 本文将以几个示例场景,使用AutoGen快速构建出…...

LeetCode 热题 100_全排列(55_46_中等_C++)(递归(回溯))

LeetCode 热题 100_两数之和(55_46) 题目描述:输入输出样例:题解:解题思路:思路一(递归(回溯)): 代码实现代码实现(思路一&#xff08…...

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)

问题 项目里使用了 AzureBlob 存储了用户上传的各种资源文件,近期 AzureBlob 的流量费用增长很快,想通过分析Blob的日志,获取一些可用的信息,所以有了这个需求:将存储账户的日志(读写,审计&…...

pthread_exit函数

pthread_exit 是 POSIX 线程库(pthread)中的一个函数,用于显式地终止调用线程。与 exit 函数不同,pthread_exit 仅影响调用它的线程,而不是整个进程。使用 pthread_exit 可以确保线程在退出时能够正确地释放线程相关的…...

1月21日星期二今日早报简报微语报早读

1月21日星期二,农历腊月廿二,早报#微语早读。 1、多地官宣:2025年可有序、限时或在限定区域燃放烟花爆竹; 2、TikTok恢复在美服务;特朗普提出继续运营TikTok方案,外交部:若涉及收购中国企业应…...

【2024年终总结】我与CSDN的一年

👉作者主页:心疼你的一切 👉作者简介:大家好,我是心疼你的一切。Unity3D领域新星创作者🏆,华为云享专家🏆 👉记得点赞 👍 收藏 ⭐爱你们,么么哒 文章目录 …...

openssl 正确生成v3带SAN的证书

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...

Golang Gin系列-5:数据模型和数据库

在这篇Gin教程的博客中,我们将探索如何将模型和数据库与Gin框架无缝集成,使你能够构建健壮且可扩展的web应用程序。通过利用流行的库并遵循最佳实践,你将学习如何定义模型、建立数据库连接、执行CRUD操作以及确保基于gin的项目中的数据完整性…...

比简单工厂更好的 - 工厂方法模式(Factory Method Pattern)

工厂方法模式(Factory Method Pattern) 工厂方法模式(Factory Method Pattern)工厂方法模式(Factory Method Pattern)概述工厂方法模式(Factory Method Pattern)结构图工厂方法模式&…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

CSS | transition 和 transform的用处和区别

省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

uniapp 字符包含的相关方法

在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...