通过脚本开发电脑游戏的方法
技术领域
本发明涉及一种电脑游戏的开发方法,尤其涉及一种通过脚本开发电脑游戏的方法,属于推算技术领域。
背景技术
脚本是批处理文件的延伸,是一种以纯文本格式保存的程序,一般来说的计算机脚本是确定的一系列控制计算机进行运算操作动作的组合,在其中也可以实现一定的逻辑功能,脚本需要通过主程序或系统程序解释执行。并且脚本比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制。
正是因为脚本的简单灵活,所以在软件开发中已经被非常普遍地使用,并涌现了Lua、Python、PHP等知名脚本语言。脚本近几年又被大规模地应用在游戏开发中,比如任务、AI、GUI等游戏功能。
目前游戏里使用脚本主要有Lua、Python两种,如果想要在游戏程序里使用这些脚本,就必须实现脚本和程序之间互相通信的中间层,比如函数调用、对象访问等。同时还存在一个严重的问题,尽管这些脚本相对来说比较简单方便,但是还是需要程序员来编写,有一定的难度。并且这些脚本本身也是通用语言,功能比较庞杂,而大多数功能并不是游戏开发所需要,同时游戏需要的功能它们又缺乏。
因此需要一种能和游戏程序良好结合,同时简单易用的方法来实现游戏的开发制作。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种通过脚本开发电脑游戏的方法。
本发明的目的通过以下技术方案来实现:
通过脚本开发电脑游戏的方法,涉及电脑游戏主程序,其中:首先通过脚本编辑器调用脚本引擎;随后脚本引擎根据用户操作自动生成脚本,并对脚本进行解释和排错,构成语法树,然后通过脚本引擎的虚拟机功能进行语法树执行,展示脚本在电脑游戏中的执行情况;最后电脑游戏主程序通过脚本引擎解释执行脚本实现游戏逻辑。
上述的通过脚本开发电脑游戏的方法,其中:所述的对脚本进行解释包括对脚本进行词法分析、语法分析和语义检查。
进一步地,上述的通过脚本开发电脑游戏的方法,其中:所述的词法分析是从左到右读取脚本的字符流,并分离、识别出一个个记号,列出各个记号的正则表达式,根据正则表达式构造不确定的有限自动机,将不确定的有限自动机转换成确定的有限自动机。
更进一步地,上述的通过脚本开发电脑游戏的方法,其中:所述的语法分析是把词法分析生成的记号,分组形成语法短语即语法树,语法分析所遵循的原则是程序语言的语法规则。
更进一步地,上述的通过脚本开发电脑游戏的方法,其中:所述的语义检查是通过语法分析获得的语法树来确定脚本的意义,并检查脚本是否有语义错误,为语法树执行做好准备。
更进一步地,上述的通过脚本开发电脑游戏的方法,其中:电脑游戏主程序为脚本提供接口函数,包括对电脑游戏的对象属性读写、玩家和电脑游戏的交互、技能和任务操作、道具和装备操作、数据类型转换、电脑游戏逻辑功能的接口,并且需要把这些接口函数注册到脚本引擎中。
更进一步地,上述的通过脚本开发电脑游戏的方法,其中:脚本编辑器设有管理和编写脚本的可视化操作界面,该操作界面上集成了电脑游戏主程序提供的功能接口和脚本支持的各种语法功能接口,对脚本语义逻辑进行动态展示。
再进一步地,上述的通过脚本开发电脑游戏的方法,其中:所述的脚本编辑器采用的是MVC模型,脚本编辑器分为词法分析单元、语法分析单元、语法树单元,其视图界面包括主界面视图、函数视图和新建修改项视图,各视图均对应于各自的控制单元。
本发明技术方案的突出的实质性特点和显著的进步主要体现在:能和游戏程序良好结合,在函数调用、数据访问等脚本和程序的交互上不再需要中间层,并把一些接口函数和脚本语句集成在脚本编辑器里,可以直接操作编辑器自动生成脚本,使得脚本开发变得非常简单。同时,不容易产生错误,一般的策划人员就能编写脚本。综上所述,使用该脚本系统可以简化游戏脚本开发,减少程序员的数量,大幅提高游戏开发效率。脚本实现了函数调用、变量和常量、字符串处理、条件判断、算术逻辑运算等功能,并且该脚本系统的语法和C语言完全一致。由此可见,本发明为本领域的技术进步拓展了空间,实施效果好。
附图说明
本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。这些附图当中,
图1是本发明的整体流程示意图;
图2是脚本引擎执行流程示意图;
图3脚本编辑器的工作截图。
具体实施方式
如图1、图2所示,通过脚本开发电脑游戏的方法,涉及电脑游戏主程序1,其为脚本2提供需要调用的电脑游戏数据访问和用于逻辑调用的功能接口,该方法的特别之处在于:首先通过脚本编辑器3调用脚本引擎4;随后脚本引擎4根据用户操作自动生成脚本2,并对脚本2进行解释和排错,构成语法树,然后通过脚本引擎4的虚拟机功能进行语法树执行,展示脚本在电脑游戏中的执行情况;最后电脑游戏主程序1通过脚本引擎4解释执行脚本实现游戏逻辑。
同时,电脑游戏主程序1通过脚本引擎4,向脚本2提供接口函数,包括对电脑游戏的对象属性读写、玩家和电脑游戏的交互、技能和任务操作、道具和装备操作、数据类型转换等电脑游戏逻辑功能接口。进一步来看,前述的脚本引擎4执行中的解释涉及对脚本2进行词法分析5、语法分析6、语义检查7。参考图2所示:首先字符流经过词法分析5构成一个记号流,随后记号流通过语法分析6构成语法树,然后对语法树进行语义检查7,获取正确的语法树,最后来执行该语法树即可。
具体来说,词法分析5的主要方式就是从左到右地读脚本的字符流,即读取脚本里所包括的字母、数字、运算符、分隔符以及一些专用字符,并分离、识别出一个个记号(Token)。根据编译原理,词法分析5主要是列出各个记号的正则表达式,根据正规式构造不确定的有限自动机,将不确定的有限自动机转换确定的有限自动机等步骤,根据有限自动机就可以实现词法分析5程序。
比如,当编程人员输入int a=1+2,则进行词法分析5的结果就是:
*类型关键字int
*标示符a;
*赋值=;
*数字1;
*加号+
*数字2。
语法分析6就是把词法分析5生成的记号(Token)流分组形成语法短语即语法树(Syntax tree),同时语法分析6所遵循的原则是程序语言的语法规则。
所述的语义检查7是使用语法分析6获得的语法树来确定源程序的意义,并检查程序是否有语义错误,为语法树执行做好准备。具体来说,语义检查7的一个工作就是进行类型检查,检查每个算符是否就有语言规范的运算对象。比如:“b+4”,在语义检查7时会检查“b”的类型,如果“b”是整型,则“b+4”依然有效,如果是“b”是实型,则会将整型“4”转换为“4.0”。
为了在最大程度上便于用户编辑,脚本编辑器3设有管理和编写脚本2的可视化操作界面,该操作界面上集成了电脑游戏主程序1提供的功能接口和脚本2支持的各种语法功能接口,也就是说接口函数和常用的语句都集成在编辑器的操作界面内,开发人员只需要操作界面就可以很方便的把这些函数和语句添加到脚本里。通过脚本编辑器3能对脚本2语义逻辑进行动态展示,给用户一个所见即所得的环境,即如图3所示。另外编辑器通过调用脚本引擎4对脚本2进行解释和排错。
脚本编辑器3能够模拟脚本执行过程,展示脚本在电脑游戏中的执行情况,主要是模拟执行脚本中的交互菜单逻辑,编辑人员可以在编辑器里执行菜单,从而检查和编辑菜单内容。
具体来说,所述的脚本编辑器3采用的是MVC模型,设有界面视图、函数视图和新建修改项视图,每个视图都对应各自的控制单元。
当脚本编辑器3载入一个脚本2文件的时候,会调用词法分析单元和语法单元对文件进行解析,把解析结果传递给语法树,并通知主界面视图去载入语法树,显示在主界面视图上;需要保存当前的脚本2文件时,脚本编辑器3将语法树输出到脚本2文件中即可;当脚本编辑器3添加一个项时,首先通过语法分析单元去分析该项,然后将分析结果添加到语法树中的相应位置;当删除一个项时,只需要对语法树中相应的节点删除即可。同时,当脚本编辑器3的视图展开或收起某一个条件开关时,语法树会重新分析该子树,将该子树的可见信息显示在视图内,同时将对话信息显示在菜单列表里。进一步来看,当点击某一个菜单列表里的选项的时,语法树会通过语义映射表,查到相应的节点,并通知主界面控制模块将当前选择项切换到相应的节点。
并且,从图3看以看出,本发明所采用的脚本编辑器3支持中文模式,即函数名可用中文显示,主界面视图会将语法树中函数转换成相应的文字说明,以供策划去编辑,当策划编辑之后,主界面视图会通知词法和语法分析单元对相应的修改部分重新分析并修改语法树。同时,脚本编辑器3支持查找和替换接口,便于策划可以在整个语法树中查找所需要的关键字。
采用本发明后,能和游戏程序良好结合,在函数调用、数据访问等脚本2和程序的交互上不再需要中间层,并把一些接口函数和脚本2语句集成在脚本编辑器3里,可以直接操作编辑器自动生成脚本2,使得脚本开发变得非常简单。同时,不容易产生错误,一般的策划人员就能编写脚本。综上所述,使用该脚本2系统可以简化游戏脚本开发,减少程序员的数量,大幅提高游戏开发效率。