CN101634940A - 通过脚本开发电脑游戏的方法 - Google Patents

通过脚本开发电脑游戏的方法 Download PDF

Info

Publication number
CN101634940A
CN101634940A CN200810020805A CN200810020805A CN101634940A CN 101634940 A CN101634940 A CN 101634940A CN 200810020805 A CN200810020805 A CN 200810020805A CN 200810020805 A CN200810020805 A CN 200810020805A CN 101634940 A CN101634940 A CN 101634940A
Authority
CN
China
Prior art keywords
script
computer game
scripts
editor
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200810020805A
Other languages
English (en)
Other versions
CN101634940B (zh
Inventor
陆利民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Snail Digital Technology Co Ltd
Original Assignee
WO'NIU ELECTRONIC CO Ltd SUZHOU CITY
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WO'NIU ELECTRONIC CO Ltd SUZHOU CITY filed Critical WO'NIU ELECTRONIC CO Ltd SUZHOU CITY
Priority to CN2008100208057A priority Critical patent/CN101634940B/zh
Publication of CN101634940A publication Critical patent/CN101634940A/zh
Application granted granted Critical
Publication of CN101634940B publication Critical patent/CN101634940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种通过脚本开发电脑游戏的方法,属于推算技术领域。其涉及电脑游戏主程序,特点是:首先通过脚本编辑器调用脚本引擎;随后脚本引擎根据用户操作自动生成脚本,并对脚本进行解释和排错,构成语法树,然后通过脚本引擎的虚拟机功能进行语法树执行,展示脚本在电脑游戏中的执行情况;最后电脑游戏主程序通过脚本引擎解释执行脚本实现游戏逻辑。该方法能和游戏程序良好结合,在函数调用、数据访问等脚本和程序的交互上不再需要中间层,可以直接操作编辑器自动生成脚本,使得脚本开发变得非常简单且不容易产生错误,一般的策划人员就能编写脚本。

Description

通过脚本开发电脑游戏的方法
技术领域
本发明涉及一种电脑游戏的开发方法,尤其涉及一种通过脚本开发电脑游戏的方法,属于推算技术领域。
背景技术
脚本是批处理文件的延伸,是一种以纯文本格式保存的程序,一般来说的计算机脚本是确定的一系列控制计算机进行运算操作动作的组合,在其中也可以实现一定的逻辑功能,脚本需要通过主程序或系统程序解释执行。并且脚本比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制。
正是因为脚本的简单灵活,所以在软件开发中已经被非常普遍地使用,并涌现了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系统可以简化游戏脚本开发,减少程序员的数量,大幅提高游戏开发效率。

Claims (9)

1、通过脚本开发电脑游戏的方法,涉及电脑游戏主程序,其特征在于:首先通过脚本编辑器调用脚本引擎;随后脚本引擎根据用户操作自动生成脚本,并对脚本进行解释和排错,构成语法树,然后通过脚本引擎的虚拟机功能进行语法树执行,展示脚本在电脑游戏中的执行情况;最后电脑游戏主程序通过脚本引擎解释执行脚本实现游戏逻辑。
2、根据权利要求1所述的通过脚本开发电脑游戏的方法,其特征在于:所述的对脚本进行解释包括对脚本进行词法分析、语法分析和语义检查。
3、根据权利要求2所述的通过脚本开发电脑游戏的方法,其特征在于:所述的词法分析是从左到右读取脚本的字符流,并分离、识别出一个个记号,列出各个记号的正则表达式,根据正则表达式构造不确定的有限自动机,将不确定的有限自动机转换成确定的有限自动机。
4、根据权利要求2所述的通过脚本开发电脑游戏的方法,其特征在于:所述的语法分析是把词法分析生成的记号,分组形成语法短语即语法树,语法分析所遵循的原则是程序语言的语法规则。
5、根据权利要求2所述的通过脚本开发电脑游戏的方法,其特征在于:所述的语义检查是通过语法分析获得的语法树来确定脚本的意义,并检查脚本是否有语义错误,为语法树执行做好准备。
6、根据权利要求1所述的通过脚本开发电脑游戏的方法,其特征在于:电脑游戏主程序提供脚本调用的接口函数,包括对电脑游戏的对象属性读写、玩家和电脑游戏的交互、技能和任务操作、道具和装备操作、数据类型转换、电脑游戏逻辑功能的接口,并且需要把这些接口函数注册到脚本引擎中。
7、根据权利要求1所述的通过脚本开发电脑游戏的方法,其特征在于:脚本编辑器设有管理和编写脚本的可视化操作界面,该操作界面上集成了电脑游戏主程序提供的功能接口和脚本支持的各种语法功能接口,对脚本语义逻辑进行动态展示。
8、根据权利要求1所述的通过脚本开发电脑游戏的方法,其特征在于:脚本编辑器模拟脚本执行过程,展示脚本在电脑游戏中的执行情况,即模拟执行脚本中的交互菜单逻辑,编辑人员在编辑器里执行菜单,从而检查和编辑菜单内容。
9、根据权利要求1所述的通过脚本开发电脑游戏的方法,其特征在于:所述的脚本编辑器采用的是MVC模型,脚本编辑器分为词法分析单元、语法分析单元、语法树单元,其视图界面包括主界面视图、函数视图和新建修改项视图,各视图均对应于各自的控制单元。
CN2008100208057A 2008-07-25 2008-07-25 通过脚本开发电脑游戏的方法 Active CN101634940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100208057A CN101634940B (zh) 2008-07-25 2008-07-25 通过脚本开发电脑游戏的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100208057A CN101634940B (zh) 2008-07-25 2008-07-25 通过脚本开发电脑游戏的方法

Publications (2)

Publication Number Publication Date
CN101634940A true CN101634940A (zh) 2010-01-27
CN101634940B CN101634940B (zh) 2012-07-04

Family

ID=41594137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100208057A Active CN101634940B (zh) 2008-07-25 2008-07-25 通过脚本开发电脑游戏的方法

Country Status (1)

Country Link
CN (1) CN101634940B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019741A (zh) * 2012-12-30 2013-04-03 上海创图网络科技发展有限公司 webmax游戏引擎及应用其开发网页游戏的方法
CN103455476A (zh) * 2012-05-29 2013-12-18 阿里巴巴集团控股有限公司 网络信息的处理方法和抽象语法树的建立方法及其装置
CN104133676A (zh) * 2014-07-18 2014-11-05 珠海市君天电子科技有限公司 一种基于脚本的功能执行方法和设备
CN104383684A (zh) * 2014-11-21 2015-03-04 珠海金山网络游戏科技有限公司 一种通用的游戏状态控制系统和方法
CN104679489A (zh) * 2013-12-02 2015-06-03 厦门极致互动网络技术有限公司 一种在网络游戏客户端中内置网络浏览器的系统及方法
TWI488674B (zh) * 2012-07-04 2015-06-21 Tencent Tech Shenzhen Co Ltd 劇情指令執行方法和裝置
CN107247612A (zh) * 2017-04-25 2017-10-13 北京航天飞行控制中心 作业描述方法及装置
CN107754314A (zh) * 2017-10-31 2018-03-06 珠海金山网络游戏科技有限公司 一种游戏系统的数据驱动设计方法
CN109298865A (zh) * 2018-09-13 2019-02-01 天津龙拳风暴科技有限公司 实现游戏技能可编程化的方法及装置
CN110908640A (zh) * 2019-11-26 2020-03-24 京东数字科技控股有限公司 实现业务功能的方法和脚本引擎
CN111258588A (zh) * 2020-02-26 2020-06-09 杭州优稳自动化系统有限公司 一种用于控制工程软件的脚本执行速度提升方法及装置
CN111966359A (zh) * 2020-09-28 2020-11-20 福建天晴在线互动科技有限公司 一种游戏玩法的游戏公式编译方法及其系统
CN112306637A (zh) * 2020-11-06 2021-02-02 深圳市广和通无线股份有限公司 脚本扩展方法、装置、计算机设备和存储介质
CN107247612B (zh) * 2017-04-25 2024-05-31 北京航天飞行控制中心 作业描述方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278223C (zh) * 2003-03-07 2006-10-04 珠海市西山居软件有限公司 应用于电脑游戏的脚本执行方法
CN101021884B (zh) * 2007-03-28 2010-10-13 成都金山互动娱乐科技有限公司 一种网络游戏服务器中动态加载配置档和脚本的方法
CN101201836B (zh) * 2007-09-04 2010-04-14 浙江大学 基于带记忆确定有限自动机的正则表达式匹配加速方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455476A (zh) * 2012-05-29 2013-12-18 阿里巴巴集团控股有限公司 网络信息的处理方法和抽象语法树的建立方法及其装置
US9370719B2 (en) 2012-07-04 2016-06-21 Tencent Technology (Shenzhen) Company Limited Method and apparatus for executing plot instructions to show complex plots
TWI488674B (zh) * 2012-07-04 2015-06-21 Tencent Tech Shenzhen Co Ltd 劇情指令執行方法和裝置
CN103019741A (zh) * 2012-12-30 2013-04-03 上海创图网络科技发展有限公司 webmax游戏引擎及应用其开发网页游戏的方法
CN104679489A (zh) * 2013-12-02 2015-06-03 厦门极致互动网络技术有限公司 一种在网络游戏客户端中内置网络浏览器的系统及方法
CN104133676A (zh) * 2014-07-18 2014-11-05 珠海市君天电子科技有限公司 一种基于脚本的功能执行方法和设备
CN104383684B (zh) * 2014-11-21 2017-10-17 珠海金山网络游戏科技有限公司 一种通用的游戏状态控制系统和方法
CN104383684A (zh) * 2014-11-21 2015-03-04 珠海金山网络游戏科技有限公司 一种通用的游戏状态控制系统和方法
CN107247612A (zh) * 2017-04-25 2017-10-13 北京航天飞行控制中心 作业描述方法及装置
CN107247612B (zh) * 2017-04-25 2024-05-31 北京航天飞行控制中心 作业描述方法及装置
CN107754314A (zh) * 2017-10-31 2018-03-06 珠海金山网络游戏科技有限公司 一种游戏系统的数据驱动设计方法
CN109298865A (zh) * 2018-09-13 2019-02-01 天津龙拳风暴科技有限公司 实现游戏技能可编程化的方法及装置
CN110908640A (zh) * 2019-11-26 2020-03-24 京东数字科技控股有限公司 实现业务功能的方法和脚本引擎
CN110908640B (zh) * 2019-11-26 2022-06-07 京东科技控股股份有限公司 实现业务功能的方法和脚本引擎
CN111258588A (zh) * 2020-02-26 2020-06-09 杭州优稳自动化系统有限公司 一种用于控制工程软件的脚本执行速度提升方法及装置
CN111966359A (zh) * 2020-09-28 2020-11-20 福建天晴在线互动科技有限公司 一种游戏玩法的游戏公式编译方法及其系统
CN112306637A (zh) * 2020-11-06 2021-02-02 深圳市广和通无线股份有限公司 脚本扩展方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN101634940B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN101634940B (zh) 通过脚本开发电脑游戏的方法
US20080189683A1 (en) Direct Access of Language Metadata
CN109753288A (zh) 一种适用于形式化验证的智能合约编译方法
Bolc The design of interpreters, compilers, and editors for augmented transition networks
Pereira et al. Web based IOPT Petri net Editor with an extensible plugin architecture to support generic net operations
CN103914379A (zh) 故障自动注入与故障检测的方法及其系统
McClure Programming languages for non-numeric processing—1: TMG—a syntax directed compiler
Flanagan Effective Static Debugging
CN108153522A (zh) 基于模型转换由midcore生成Spark和Hadoop程序代码的方法
Leduc et al. The software language extension problem
Sánchez et al. The ins and outs of the video game localization process for mobile devices
Nagy Regex quick syntax reference: understanding and using regular expressions
CN115039083A (zh) 逻辑连接程序执行时生成的异步算法合法性验证使能方法
Spector Efficient full LR (I) parser generation
CN110727433B (zh) 一种多通道三维用户界面的生成方法
CN112527283A (zh) 一种量子计算模拟工具集
Mühlbacher et al. Oberon-2 programming with Windows
Bahlke et al. Context-sensitive editing with PSG environments
CN109410939A (zh) 基于语音指令集的通用数据维护方法
Nagl An incremental programming support environment
Xiao et al. The design and implementation of c-like language interpreter
Reiser BAIL
KR101339356B1 (ko) 그래픽빌더의 자동화를 위한 스크립트 엔진 제어장치
Merino et al. Language workbench support for block-based DSLs
Masrom et al. Scripting language framework in solving Facility Layout Problem (FLP) based on meta-heuristics hybridization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SUZHOU SNAIL DIGITAL TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: WO NIU ELECTRONIC CO. LTD., SUZHOU CITY

Effective date: 20110616

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 215021 INSIDE OF CREATIVE PUMPING STATION, NO. 171, JINJIHU ROAD, SUZHOU CITY, JIANGSU PROVINCE TO: 215021 NO. 171, JINJIHU ROAD, SUZHOU INDUSTRIAL PARK, SUZHOU CITY, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110616

Address after: 215021 Jinji Lake Road 171, Suzhou Industrial Park, Jiangsu, Suzhou

Applicant after: Suzhou Snail Digital Technology Co., Ltd.

Address before: 215021, creative pump station, 171 Jinji Lake Road, Jiangsu, Suzhou

Applicant before: Wo'niu Electronic Co. Ltd., Suzhou City

C14 Grant of patent or utility model
GR01 Patent grant