游戏AI开发指南基于Lua的人工智能在游戏中的应用YanlzUnitySteamVR5GAIVR云游戏Lua人机交互沙箱导航决策树影响力地图立钻哥哥
《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Lua+人机交互+沙箱+导航+决策树+影响力地图+立钻哥哥+==)
《 游戏AI开发指南(基于Lua的人工智能在游戏中的应用) 》
《 游戏AI开发指南(基于Lua的人工智能在游戏中的应用) 》 |
版本 | 作者 | 参与者 | 完成日期 | 备注 |
YanlzAI_LuaForGames_V01_1.0 | 严立钻 | 2019.08.31 | ||
##《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》发布说明:
++++ “游戏AI开发指南(基于Lua的人工智能在游戏中的应用)”:
是对“AI+Lua+游戏”的综合探索;===>“ Unity + SteamVR + 5G + AI : VR云游戏
”,作为VR云游戏的重要组成, AI将赋予VR新的高度
;人工智能是国际竞争的新焦点,是人类社会发展的加速器 ;
++++ “游戏AI开发指南(基于Lua的人工智能在游戏中的应用)”:
定位在一个科普类知识,让大家熟悉“ 人工智能AI
”相关技术,嗯嗯,这个“ 游戏AI
”和通常所说的“人工智能概念”可能有些区别,这次仅仅是探索一下“ 游戏中的AI
” !
@@提示: 有些博客可能只是开了头,如果感兴趣的同学,可以“ 点赞 ”或“ 评论区留言 ”,只要关注的同学多了,那就会继续完善哟!(“ ++== ”,表示没有写完的,如果关注度不高就不完善了;“ ++ok++ ”,表示此篇博客已经完成,是阶段性完整的!)
##《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》目录
# 第一篇:钻哥百科
# 第二篇:游戏开发中的Lua篇
# 第三篇:基于Lua的游戏AI开发篇
# 第四篇:立钻哥哥带您AI人工智能
#第一篇:钻哥百科
#第一篇:钻哥百科 |
#第一篇:钻哥百科
++++立钻哥哥: 采用一种像Lua这样的脚本语言以及内核级别的语言(如C++)可以帮助用户开发专业的游戏,并且还能让开发者和设计师快速实现设计想法、测试游戏功能 ;
++++ A.1、人工智能AI百科
++++ A.2、Lua百科
++++ A.3、立钻哥哥带您了解AI人工智能
++A.1、人工智能AI百科
++A.1、人工智能AI百科 |
++A.1、人工智能AI百科
++++立钻哥哥: 人工智能( Artificial Intelligence ),英文缩写为 AI ;它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学 ;
++++
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一个新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语音识别、图像识别、自然语言处理和专家系统等
;
++++
人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学;人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目的是使机器能够胜任一些通常需要人类智能才能完成的复杂工作
;
++++ 人工智能的定义可以分为两部分,即“人工”和“智能” ;
++++ [实际应用]:
机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等
;
++++ [涉及学科]:
哲学和认知科学,数学,神经生理学,心理学,计算机科学,信息论,控制论,不定性论;等等
;
++++ [研究范畴]:
自然语言处理,知识表现,智能搜索,推理,规划,机器学习,知识获取,组合调度问题,感知问题,模式识别,逻辑程序设计软计算,不精确和不确定的管理,人工生命,神经网络,复杂系统,遗传算法;等等
;
++++ [机器学习]:
机械学习的主要目的是为了从使用者和输入数据等处获得知识,从而可以帮助解决更多问题,减少错误,提高解决问题的效率
;
++人工智能关键技术
++++立钻哥哥: 人工智能的关键技术有:机器学习;知识图谱;自然语言处理;人机交互;计算机视觉;生物特征识别; 虚拟现实/增强现实 ;等等 ;
++++ [机器学习( Machine Learning )]:
是一门设计统计学、系统辨识、逼近理论、神经网络、优化理论、计算机科学、脑科学等诸多领域的交叉学科,研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,是人工智能技术的核心
;
++++ [知识图谱]:
本质上是结构化的语义知识库,是一种由节点和边组成的图数据结构,以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关“属性-值”对
;
++++ [自然语言处理]:
是计算机科学领域与人工智能领域中的一个重要方向,研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,涉及的领域较多,主要包括机器翻译、机器阅读理解和问答系统等
;
++++ [人机交互]:
主要研究人和计算机之间的信息交换,主要包括人到计算机和计算机到人的两部分信息交换,是人工智能领域的重要的外围技术;人机交互是与认知心理学、人机工程学、多媒体技术、虚拟现实技术等密切相关的综合学科
;
++++ [计算机视觉]:
是使用计算机模拟人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力;自动驾驶、机器人、智能医疗等领域均需要通过计算机视觉技术从视觉信号中提取并处理信息
;
++++ [生物特征识别]:
是指通过个体生理特征或行为特征对个体身份进行识别认证的技术;内容包括指纹、掌纹、人脸、虹膜、指脉冲、声纹、步态等多种生物特征,其识别过程涉及到图像处理、计算机视觉、语音识别、机器学习等多项技术
;
++++ [虚拟现实( VR )/增强现实( AR )]:
是以计算机为核心的新型视听技术
;
++A.2、Lua百科
++A.2、Lua百科 |
++A.2、Lua百科
++++立钻哥哥: Lua 是一个小巧的脚本语言( Lua :免费、小巧、快速且易移植) ;
++++ [脚本语言]:
又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本保存,只在被调用时进行解释或编译;脚本语言是为了缩短传统的编写-编译-链接-运行( Edit
Compile
Link
Run
)过程而创建的计算机编程语言;(典型的脚本语言: Lua
、 Python
、 Shell
、 PHP
、 Perl
、 Ruby
、 HTML
、 CSS
、 PLC
编程等等)
++++ Lua
脚本可以很容易的被 C/C++
代码调用,也可以反过来来调用 C/C++
的函数,这使得 Lua
在应用程序中可被广泛应用;不仅仅作为扩展脚本,也可以作为普通的配置文件,代替 XML
, ini
等文件格式,并且更容易理解和维护
;
++++ Lua 由标准 C 编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行;一个完整的 Lua 解释器不过 200K ,在目前所有脚本引擎中, Lua 的速度是最快的;这一切都决定了 Lua 是作为嵌入式脚本的最佳选择 ;
function create_a_counter () local count = 0 return function () count = count + 1 return count end end |
++++ Lua
借助 C/C++
等底层语言可以无限扩张,而脚本语言的特性又让它十分适合快速原型开发和迭代;近年来,许多大型游戏都采用了 Lua
作为自己的嵌入式脚本语言,以此来实现可配置性和可扩展性
;
++++ [人工智能( AI )]:
在如今的游戏中非常关键:玩家需要精明的、有挑战性的对手,感觉就像真人一样;就开发 AI
判定来说, Lua
是一种非常高效的工具
;
++Lua标准库
++++立钻哥哥: Lua 提供了大量标准函数库,可以帮助我们完成许多复杂的处理而不需要编写额外的代码 ;
++++ Lua
提供函数级别的可以调用 C
标准库的数学运算函数( math
. floor
(); math
. random
(); math
. min
())
;
++Lua字符处理
++++立钻哥哥: Lua 最强大的特性之一就是它的字符处理能力;Lua具有可扩展的模式匹配功能,以及许多实用的字符处理函数 ;
++++ [类型转换]:
在游戏开发中,字符和数字之间常常需要转换;myNumber = tonumber
(myString)
;
++++ [ string . len (myString)]:
知道字符串的长度是非常有用的,返回传入参数的字符数
;
++++ [ string . sub (myString, start, end)]:
返回指定字符串的子串
;
++++ [ string . format ()]:
格式化输出指定字符串
;
++Lua与C/C++程序的整合
++++立钻哥哥: 从 C++ 程序员的观点来看, Lua 像一个“ 黑盒子 ”,为一些服务处理命令和调用 ;
++++ Lua
通常作为最上层接口直接和程序使用者或者游戏玩家打交道,在核心程序处理之前接受并响应输入;因为 Lua
处在底层代码和用户之间的位置,所以在设计时会更加注重与 C/C++
的通信和集成
;
++使用Lua处理游戏数据
++++立钻哥哥: Lua 在游戏开发中的一个很强大的特性是它能够作为保存、载入游戏数据的主要工具 ;
++++
所有的游戏都和数据相关,在脚本层处理数据,意味着游戏设计师和脚本程序员可以独立于底层的核心代码,访问所有的游戏数据并且设计符合游戏需要的数据存储方式
;
++++ Lua
还可以被用于保存游戏进度、游戏开始时的数据载入,以及玩家载入游戏进度
;
++Lua游戏AI开发
++++立钻哥哥: 游戏 AI 可以很容易地拆分成决策制定、动画处理和战术等各种组件,但各个系统间的平衡和交互决定了良好的 AI 和槽糕的 AI 之间的区别 ;
++++
创建动画状态机以便在 Lua
代码中驱动 AI
动画
;
++++
构建导航网格并在其中寻路
;
++++
使用行为树、状态机和决策树开发决策逻辑,构建模块化、可重用的 AI
;
++++
基于影响力地图开发多个 AI
的高级战术
;
++++
利用 Lua
编程开发专注于动作、动画和战术的游戏 AI
;
++++
“ 游戏人工智能(游戏AI)
”是游戏开发的一个重要方面,在很大程度上决定了游戏产品的逼真程度和对玩家的吸引力,由此也得到游戏开发工程师越来越多的重视
;
#第二篇:游戏开发中的Lua篇
#第二篇:游戏开发中的Lua篇 |
#第二篇:游戏开发中的Lua篇
++++ B.1、立钻哥哥带您了解Lua
++++ B.2、Lua从入门到放弃
++++ B.3、Lua和C/C++/C#的整合和交互
++++ B.4、Lua游戏编程
++++ B.5、调试Lua脚本
++B.1、立钻哥哥带您了解Lua
++B.1、立钻哥哥带您了解Lua |
++B.1、立钻哥哥带您了解Lua
++++立钻哥哥: Lua 借助 C / C++ 等底层预压可以无限扩展,而脚本语言的特性又让它十分适合快速原型开发和迭代;近年来,许多大型游戏都采用了 Lua 作为自己的嵌入式脚本语言,以此来实现可配置性和可扩展性 ;
++++ [ Roberto Ierusalimschy ( Lua 语言创始人之一)]: Lua
所有的优点对于游戏开发都是很重要的:简单性、可移植性以及运行效率高,从此以后,我们开始关注游戏开发者,陆续为 Lua
增加了许多新的特性,如为游戏开发提供了协同例程( coroutine
)的功能;尽管 Lua
的功能不会局限在游戏开发上,但是在 Lua
未来的发展中,必着重考虑游戏开发
;
++++
尽管游戏开发的规模不断增大,但始终有一个不变的追求:测试、更新、调整,以及快速验证游戏性的能力,通常这个部分是设计和开发过程的核心;采用一种像 Lua
这样的脚本语言以及内核级别的语言(如 C++
)可以帮助用户开发专业的游戏,并且还能让开发者和设计师快速实现设计想法、测试游戏功能
;
++++ [游戏程序员]:
程序员在开发团队中负责实现 Lua
和 C++
之间的接口,并且通常还要编写部分或全部的游戏脚本;程序员需要了解如何将 Lua
和 LuaGlue
的功能集成到游戏开发项目中;对于程序员来说,最重要的是,使用 Lua
可以在游戏开发的过程中节省很多时间和精力,因为许多游戏的功能可以由设计师和脚本程序员来实现
;
++++ [游戏设计师]:
游戏设计师会采用像 Lua
这样的脚本语言在运行环境中来实现部分设计;使用 Lua
开发可以帮助他们使用工具快速开发原型,快速实现并且进行创意的验证
;
++使用Lua开发
++++立钻哥哥: 相对于 C++ 这样的底层语言,脚本语言本身是易学易用的;由于 Lua 语言无须关心复杂的内存管理、对象渲染或者 TCP / IP 网络通信,所以十分容易上手并投入实际开发 ;
++++
在游戏开发中, Phython
和 Lua
是非常适合的,因为它们可以直接调用 C++
的功能;许多商业游戏已经成功地使用了 Phython
和 Lua
,因为它们都有很强的兼容性,所以可以与编译后且基于 C++
技术的模块协同工作,而且还能扩展
;
++++ Lua
免费、小巧、快速且易移植; Lua
采用了非常灵活的发布协议,它有极少的源代码,运行轨迹十分紧凑,在编译时间和运行时内存占用上都有很好的性能优势
;
++++ Lua
非常适合作为更强大的底层编程语言的搭档,如 C++
; Lua
能让游戏开发者快速建立游戏原型甚至是完整的游戏;游戏开发者可以在没有程序员帮忙的情况下构建整个图形界面;它还可以用来管理游戏进度文件的保存和载入,而且很容易阅读和调试;在游戏开发领域, Lua
能帮助开发者构建一个高效并且方便验证游戏想法的环境
;
++++ Lua
是免费的开源软件,可以免费用于科研及商业应用
;
++++
“ 渲染系统
”完全由 C++
开发,但 Lua
可以调用 C++
来创建一个特定模型的实体对象,并且设置其在场景中的位置,然后 Lua
还可以为这个 3D
模型指定动画; Lua
并不处理任何实时的复杂运算来改变该模型,而只是告诉底层渲染系统什么时候该做什么
;
++游戏项目中的Lua
++++立钻哥哥:Lua是非常强大的工具,可以用来完成很多工作;
@@提示: 有些博客可能只是开了头,如果感兴趣的同学,可以“ 点赞 ”或“ 评论区留言 ”,只要关注的同学多了,那就会继续完善哟!(“ ++== ”,表示没有写完的,如果关注度不高就不完善了;“ ++ok++ ”,表示此篇博客已经完成,是阶段性完整的!)
++++ VR云游戏 = Unity + SteamVR + 云技术 + 5G + AI ;( 说明:AI人工智能不是我们的主要研究技术,只是了解一下,领略一下有风的感觉! 但是, VR 是我们的研究重点 )
++++ 【Unity API】分类:
++++ 【Unity开发基础】分类:
++++ 【Linux系统编程】分类:
++++ 【C++C铸就生存利器】分类:
++++ 【人工智能AI2026】分类:
++++ 【立钻哥哥CSDN空间】:
【XR游戏开发QQ群: 784477094 】
++ 立钻哥哥推荐的拓展学习链接(Link_Url) :
立钻哥哥推荐的拓展学习链接(Link_Url) |
++++ 立钻哥哥 Unity 学习空间 :
++++ 虚拟现实 VR资讯 :
++++ HTC_VIVE开发基础 :
++++ Oculus杂谈 :
++++ Oculus安装使用 :
++++ Unity+SteamVR=>VR :
++++ Unity减少VR晕眩症 :
++++ SteamVR简介 :
++++ SteamVR脚本功能分析 :
++++ SteamVR2.0开发指南 :
++++ SteamVR2.2.0开发指南 :
++++ SteamVR2.2.0快速入门 :
++++ SteamVR2.2.0交互系统 :
++++ SteamVR2.2.0传送机制 :
++++ SteamVR2.2.0教程(一) :
++++ SteamVR2.2.0教程(二) :
++++ SteamVR_Skeleton_Poser :
++++ SteamVR实战之PMCore :
++++ SteamVR/Extras :
++++ SteamVR/Input :
++++ OpenXR简介 :
++++ VRTK杂谈 :
++++ VRTK快速入门(杂谈) :
++++ VRTK官方示例(目录) :
++++ VRTK代码结构(目录) :
++++ VRTK(SceneResources) :
++++ VRTK_ControllerEvents :
++++ VRTK_InteractTouch :
++++ 虚拟现实行业应用 :
++++ Steam平台上的VR :
++++ Steam平台热销VR :
++++ VR实验:以太网帧的构成 :
++++ 实验四:存储器扩展实验 :
++++ FrameVR示例V0913 :
++++ FrameVR示例V1003 :
++++ SwitchMachineV1022 :
++++ PlaySceneManagerV1022 :
++++ Unity5.x用户手册 :
++++ Unity面试题ABC :
++++ Unity面试题D :
++++ Unity面试题E :
++++ Unity面试题F :
++++ Cocos2dx面试题 :
++++ 禅道[zentao] :
++++ Lua快速入门篇(Xlua拓展):
++++ Lua快速入门篇(XLua教程) :
++++ Lua快速入门篇(基础概述) :
++++ 框架知识点 :
++++ 游戏框架(UI框架夯实篇) :
++++ 游戏框架(初探篇) :
++++ .Net框架设计 :
++++ 从零开始学架构 :
++++ 设计模式简单整理 :
++++ 专题:设计模式(精华篇) :
++++ U3D小项目参考 :
++++ Unity小游戏算法分析 :
++++ Unity案例(Vehicle) :
++++ UML类图 :
++++ PowerDesigner简介 :
++++ Unity知识点0001 :
++++ Unity知识点0008 :
++++ U3D_Shader编程(第一篇:快速入门篇) :
++++ U3D_Shader编程(第二篇:基础夯实篇) :
++++ Unity引擎基础 :
++++ Unity面向组件开发 :
++++ Unity物理系统 :
++++ Unity2D平台开发 :
++++ UGUI基础 :
++++ UGUI进阶 :
++++ UGUI综合 :
++++ Unity动画系统基础 :
++++ Unity动画系统进阶 :
++++ Navigation导航系统 :
++++ Unity特效渲染 :
++++ Unity数据存储 :
++++ Unity中Sqlite数据库 :
++++ WWW类和协程 :
++++ Unity网络 :
++++ Unity资源加密 :
++++ PhotonServer简介 :
++++ 编写Photon游戏服务器 :
++++ C#事件 :
++++ C#委托 :
++++ C#集合 :
++++ C#泛型 :
++++ C#接口 :
++++ C#静态类 :
++++ C#中System.String类 :
++++ C#数据类型 :
++++ Unity3D默认的快捷键 :
++++ 游戏相关缩写 :
++++ UnityAPI.Rigidbody刚体 :
++++ UnityAPI.Material材质 :
++++ UnityAPI.Android安卓 :
++++ UnityAPI.AndroidJNI安卓JNI :
++++ UnityAPI.Transform变换 :
++++ UnityAPI.WheelCollider轮碰撞器 :
++++ UnityAPI.Resources资源 :
++++ JSON数据结构 :
++++ CocosStudio快速入门 :
++++ Unity企业内训(目录) :
++++ Unity企业内训(第1讲) :
++++ Unity企业内训(第2讲) :
++++ Unity企业内训(第3讲) :
++++ Unity企业内训(第4讲) :
++++ Unity企业内训(第5讲) :
++++ Unity企业内训(第6讲) :
++++ 钻哥带您了解产品原型 :
++++
插件
++++ 计算机组成原理(教材篇) :
++++ 5G接入:云计算和雾计算 :
++++ 云计算通俗讲义 :
++++ 立钻哥哥Unity 学习空间 :
––VRunSoft:lovezuanzuan––