游戏开发中的人工智能(23页).pptxVIP

  • 3
  • 0
  • 约3.95千字
  • 约 23页
  • 2023-12-05 发布于湖北
  • 举报

FACULTYOFSOFTWARE游戏开发中的人工智能1--------脚本AI及脚本引擎

FACULTYOFSOFTWARE脚本概述脚本引擎实例AI脚本语言的危险开发脚本语言的注意事项脚本AI及脚本引擎1

FACULTYOFSOFTWARE脚本概述1脚本概述概述开发脚本语言的动机脚本语言剖析编译器

FACULTYOFSOFTWARE脚本是为了简化某种特定程序的复杂任务而设计的一种编程语言。因此,脚本是根据程序的特点定制的,它的使用范围在很大程度上取决于所需要解决的问题。脚本机制可以说是游戏开发过程中不可或缺的一部分,它可以让游戏设计师而不是游戏程序员撰写出游戏的巧妙之处,并予以精细化。玩家也可以利用脚本语言,建立或修改其所处的游戏世界或等级。脚本系统怎样及如何操作,主要取决于该系统的使用者。开发脚本系统时还应该考虑其他因素,例如:加密、开发描述编译器等,使得最后的结果难以让人阅读。1脚本概述

FACULTYOFSOFTWARE并行开发:脚本语言可以允许设计人员在独立于程序开发人员的情况下构造很多新的特性并做修改。易于使用:脚本语言提供了一种比专业编程语言更简单,开发环境更受保护的工具。数据驱动的设计开发速度快安全性:脚本语言在一个受保护的环境中运行,可以保证脚本内的致命错误不会使游戏崩溃,最坏的情况就是脚本被停止执行。可扩展性:允许游戏使用者扩展AI1开发脚本语言的动机

FACULTYOFSOFTWARE一个脚本语言通常由两部分组成:语言和引擎脚本语言与任何一种编程语言一样,规定了一组特定的语法,脚本语言可以通过转化或编译变换为引擎可以处理的格式。脚本引擎也称为解释器,用来执行经过编译的脚本。经过编译的脚本称为字节码流(bytecodestream),它包含了脚本需要解释器所执行的所有内容。脚本语言的剖析1

FACULTYOFSOFTWARE编译器1概述词法分析器语法分析器代码生成器语法分析树

FACULTYOFSOFTWARE编译器概述编译器负责把开发人员编写的源文件转化为计算机可以执行的代码。脚本语言的编译器与传统的编译器直接产生可执行代码不同,它生成字节码流,字节码流包含了脚本需要解释器所执行的所有内容。1

FACULTYOFSOFTWARE编译器转换步骤:词法分析器首先用来处理词组,读入源代码,然后把它们分解为一些基本的单元,即脚本语言中任何一个单独的结构(construct),称为Token。例如:-,*,=,if,void,MyFunction。Token被传送给语法分析器。语法分析器负责定义语言的合理结构,确保当前的脚本是一段合理的程序,负责把脚本源代码转换为编译器可以理解的结构,即语法分析树。语法分析树被交给代码生成器生成字节码流。代码生成器递归地遍历整个语法分析树以处理其中每一个节点,并生成相应的可以执行的命令。1

FACULTYOFSOFTWARE语法分析树1语法分析树是程序员所写的脚本源代码的另一种表现形式,它能被编译器所理解。由于绝大多数编程语言都是高度结构化的,所以它们能被表示为一种树状结构。树上的每一个节点都对应了语言中的一种结构类型(例如,条件语句,函数调用,表达式等),这些节点的子节点是相应的语言结构所需要的操作数。

FACULTYOFSOFTWARE语法分析树1

FACULTYOFSOFTWARE脚本引擎1堆栈机堆栈机的执行控制代码流

FACULTYOFSOFTWARE脚本引擎——堆栈机1任何一种脚本语言都需要一个用来执行程序员所编写脚本的引擎,即翻译器,负责脚本执行的各个方面的工作。由于翻译器执行的指令集并不是特定的汇编代码,因此称之为虚拟机(VM),负责执行编译器所生成的字节码流。堆栈机是脚本语言虚拟机技术中普遍采用的一种基本形式。堆栈机的操作码首先从堆栈中弹出将被操作的数据,然后把得到的答案压入同一个堆栈中。不断重复该过程,直到整个字节码流都被执行后结束。由此可知,操作仅需要堆栈和指令指针(用来指向字节码流中将被执行的下一条指令)。

FACULTYOFSOFTWARE实现堆栈机最直接的方法就是构造一个类,包括堆栈数据,指令指针以及用来处理各种操作码的逻辑过程(操作码处理器)。操作码处理器是构造堆栈机的关键,它负责处理每一个操作码所需要的工作。由于每一个操作码处理器是类中唯一的一个成员函数,可以通过一个函数指针表来正确地调用。操作码的值由堆栈机定义,它需要定义从0开始的连续的整数,来作为函数指针表的索引。每个操作码处理器都返回一个布尔变量来表明操作码所定义的操作是否成功,若操作失败则停止对字节码流的执行,调用错误恢复程序后清空。1脚本引擎——堆栈机

FACULTYOFSOFTWARE堆栈机1例如:ClassVM{bo

文档评论(0)

1亿VIP精品文档

相关文档