admin管理员组

文章数量:1532657

2024年6月5日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN03119251.3

(22)申请日 2003.03.07

(71)申请人 珠海市西山居软件有限公司

地址 519015 广东省珠海市吉大莲花山金山电脑大厦三楼

(72)发明人 章鹏

(74)专利代理机构 北京集佳知识产权代理有限公司

代理人 王学强

(51)

G06F9/30

权利要求说明书 说明书 幅图

(10)申请公布号 CN 1527195 A

(43)申请公布日 2004.09.08

(54)发明名称

应用于电脑游戏的脚本执行方法

(57)摘要

本发明提供一种应用于电脑游戏的

脚本执行方法,该方法包括有以下步骤:

(1)编写脚本语句形成脚本文件;(2)将脚本

文件中的脚本语句编译成指令码,存储成

指令码文件;(3)电脑游戏引擎加载指令码

文件,并把指令码文件传递给脚本执行

机;(4)脚本执行机运行指令码文件中的指

令,驱动电脑游戏的任务系统和剧情过

场。能更快速的实现效率和更方便的实现

方法。

法律状态

法律状态公告日

2023-03-24

法律状态信息

专利权有效期届满IPC(主分

类):G06F 9/30专利

号:ZL031192513申请

日:20030307授权公告

日:20061004

法律状态

专利权的终止

权 利 要 求 说 明 书

1、一种应用于电脑游戏的脚本执行方法,其特征在于:该方法包括以下步骤:

(1)编写脚本语句形成脚本文件;

(2)将脚本文件中的脚本语句编译成指令码,存储成指令码文件;

(3)电脑游戏引擎加载指令码文件,并把指令码文件传递给脚本执行机;

(4)脚本执行机运行指令码文件中的指令,驱动电脑游戏的任务系统和剧情过场。

2、如权利要求1所述的应用于电脑游戏的脚本执行方法,其特征在于:步骤(4)中

脚本执行机按如下步骤运行所述指令:

(a)脚本执行机将指令码文件载入至等待运行的指令码文件序列中;

(b)所述脚本执行机定时检查所述指令码文件序列是否有等待运行的指令码文件,

如果有,则进行步骤(c),否则结束步骤(4);

(c)脚本执行机检查该指令码文件是否有需要执行的指令,如果有,进行步骤(d),

否则返回步骤(b);

(d)载入该指令的指令码,运行该指令;

(f)指令运行完毕后,返回步骤(c)。

3、如权利要求1所述的应用于电脑游戏的脚本执行方法,其特征在于:步骤(1)中

调用基本指令集和API函数来编写脚本语句。

4、如权利要求1所述的应用于电脑游戏的脚本执行方法,其特征在于:步骤(4)之

前,脚本执行机先运行初始化函数,将运行的指令码文件进行初始化。

5、如权利要求1所述的应用于电脑游戏的脚本执行方法,其特征在于:所述指令

码文件以固定的指令码文件格式进行存储,该指令码文件格式在存储空间上以先后

顺序分成三大模块:

文件头模块:记录所述指令码文件中函数的数量和指令码的数据长度;

函数名称和位置表模块:记录了所述指令码文件所有函数的名称和每一个函数在指

令码文件中的位置;

指令码模块:保存了本指令码文件中除函数以外的所有指令码的信息。

6、如权利要求5所述的应用于电脑游戏的脚本执行方法,其特征在于:文件头模

块中至少包含有以下部分:

函数数量部分:用于记录指令码文件中的函数个数;

指令码数据长度部分:用于记录所述指令码文件中指令码的数据长度。

7、如权利要求5所述的应用于电脑游戏的脚本执行方法,其特征在于:函数名称

和位置表模块至少包含有以下部分:

函数名称部分:指明指令码文件的每一个函数名称;

函数指令码位置部分:指明本函数在指令码文件位置。

8、如权利要求5所述的应用于电脑游戏的脚本执行方法,其特征在于:指令码模

块至少包含有以下部分:

指令编号部分:记录本指令的编号;

参数区部分:本指令的所有参数的数量、类型及结构。

说 明 书

技术领域

本发明有关于脚本执行方法,特别是应用于电脑游戏中,可以实现驱动电脑游戏的

任务系统和剧情过场表现的脚本执行方法。

背景技术

目前,很多的电脑游戏是通过采用脚本系统来达到驱动电脑游戏的任务系统和剧情

过场表现。而电脑游戏越来越复杂,同时电脑游戏网络化也成了电脑游戏的趋势,

所以对游戏脚本系统的要求越来越高,要求更快的流程控制方法,能够快速的实现

复杂的流程控制和复杂的各种功能。

而目前的游戏脚本系统只提供简陋的流程控制方法,由于一般是通过对逐条脚本语

句解释执行,执行效率非常低,脚本流程控制指令比较简陋,使得对实现游戏复杂

剧情流程的支持不够方便,实际运用困难,效率低并且容易出错。而且,国外同类

型的技术解决方案一般价格昂贵。

发明内容

本发明的目的在于提供了一种应用于电脑游戏的脚本执行方法,将编写好的脚本文

件进行编译并且存储成指令码文件,降低出错率,提高了执行的效率。

本发明的再一目的在于提供了一种应用于电脑游戏的脚本执行方法,在脚本执行机

中运行了自开发的流程控制方法,简化了脚本执行机的运行流程,提高脚本运行速

度,快速实现驱动电脑游戏的任务系统和剧情过场表现的的。

本发明的还一目的在于提供了一种应用于电脑游戏的脚本执行方法,将经过编译的

脚本文件存储成固定格式的指令码文件,使其标准化。

为了实现以上的目的,本发明提供了一种应用于电脑游戏的脚本执行方法,(1)编

写脚本语句形成脚本文件;

(2)编译脚本语句成指令码,存储成指令码文件;

(3)电脑游戏引擎加载指令码文件,并把指令码文件传递给脚本执行机;

(4)脚本执行机获取所述指令码文件中的指令码之后执行所述指令码,驱动电脑游

戏的任务系统和剧情过场。

步骤(4)中脚本执行机按如下步骤获取并运行所述指令码:

(a)脚本执行机将指令码文件载入至等待运行的指令码文件序列中;

(b)所述执行机一直检查所述指令码文件序列是否有指令码文件,如果有,则进行

步骤(c),否则结束步骤(4);

(c)脚本执行机检查该指令码文件是否有指令码,如果有,进行步骤(d),否则返回

步骤(b);

(d)载入该指令码,运行该指令码;

(f)指令码运行完毕后,返回步骤(c)。

按照以上的方法,可以有以下的显著效果:

(1)本发明通过预先对脚本语句进行编译成指令码,极大的提高了脚本的运行效率;

实现了脚本语句的判断、分支、循环和函数调用等功能,更加支持这些功能之间的

多层相互嵌套,使得脚本对复杂流程的控制非常方便;在对脚本语句的编译时,对

脚本语句进行检测,可以预先发现大部分的脚本编写错误。

(2)利用本发明的脚本执行方法,简化脚本执行机的运行流程,提高执行的效率,

同时方便各种复杂的功能比传统的电脑游戏脚本系统更适合电脑游戏复杂化和网络

化的发展。

(3)将编译好的指令码存储成固定格式的指令码文件,使操作更规范、更标准。

附图说明

图1为本发明的应用于电脑游戏的脚本系统的结构框图。

图2为本发明的应用于电脑游戏的脚本系统的工作流程图。

图3为本发明的应用于电脑游戏的脚本系统的脚本执行机的工作流程图。

具体实施方式

参阅图1,本发明提供一种应用于电脑游戏的脚本系统100,包括:脚本语言模块

110,用来编写脚本文件,该脚本文件由脚本语句组成;脚本编译器120,用于将

脚本文件中的脚本语句编译成指令码,存储成指令码文件,及脚本执行机130,用

于运行指令码来驱动电脑游戏任务系统和剧情过程表现。

脚本语言模块110,该脚本语言模块110提供了编写脚本语句的环境。该脚本语言

模块110包含由自定义的基本指令112组成的基本指令集,其中有逻辑判断、跳转

语句、循环语句、比较语句等等。脚本文件是由一条条脚本语句组成,而脚本语句

可以调用基本指令集112。在设计时,为了方便脚本的编写,采用了类似Pascal语

言的语法,使脚本的编写更加安全。

脚本编译器120,用于将脚本语句编译成指令码,存储为指令码文件。由于脚本执

行机130运行的是指令码,所以需要脚本编译器120将文本方式的脚本文件转化成

脚本执行机130能够执行的指令码。同时这一步骤可以使实际使用的脚本节约了存

储空间,提高了运行效率,支持脚本语句的判断、分支、循环和函数调用等之间的

多层相互嵌套,同时可以检查脚本的语法问题,使脚本编写能及时发现错误。

编译好的脚本文件按已定义的固定的指令码文件格式进行存储。该指令码文件的文

件格式按存储空间上先后顺序至少分成三大部分:1、文件头模块;2、函数名称和

位置表模块;3、指令码模块。

1、文件头模块:这一模块的长度为40个字节,其中记录该指令码文件的一些基本

信息和该指令码文件中函数数量和指令码数据长度。至少包含有函数数量部分和指

令码数据长度部分。具体内容参看表1(表1);

部分 位置 说明 内容

第1部分第1字节到第

31字节 copyright字符串

KingSoft Script第2部分第32字节

版本号版本号第3部

第33字节到第36字节 函数数 量部分

指明本指令码文件的指令码部分有多少个函数(函数是特殊的指令

码)第4部分第37字节到第40字节

指令码数据 长度部分一个32位数,指明本文件指

令码部分的数据长度

2、函数名称和位置表模块:该模块记录了本指令码文件所有函数的名称和每一个

函数在指令码文件中的位置,这一部分由很多个单元组成,文件头模块的函数数量

说明了单元的数量,每个单元的长度固定为36字节,每个单元的结构内容参看表

2。

2

> 部分 位置 说明 内容

第1部分单元的第1字

节到第32字节函数名称部分一个字符串,指明函数

名称第2部分单元的第33字节到第36

字节函数指令码位置部分一个32位数,指明本函数

指令码在指令码文件的位置

3、指令码模块:这一部分保存了本指令码文件所有的指令码。指令码文件中由指

令组成,而指令码是指令的编码形式。每条指令码的格式参看表3(表3);

部分 位置 说明 内容

第1部分第1字节到第

4字节指令编号部分一个32位数,记录本指令的编

第2部分第5字节到第8字节

参数区长度部分一个32位数,指明本指令附带的所

有参数数据的长度;如果长度为0,则不存在第3部分

第3部分位于第2部分之后,长度由第2部分指明

参数区部分本指令的所有参数数据,由一定数量的参数组成,每条

具体的指令所附带的参数的数量和类型是确定的,每个参数的结构参看表

4

表四

部分 位置 说明 内容

第1部分第1字节到第

4字节参数长度部分一个32位数,记录本参数的长

第2部分位于第1部分之后,长度由

第1部分指明参数内容部分参数内容有多种不同的

类型,每条具体的指令决定了这些参数的类型

指令可以是系统定义的指令,也可以添加用户自定义的脚本指令。脚本编译器主要

是利用了编译原理,对脚本文件中的每个字符进行解析,生成对应的指令码,而后

存储为上述固定格式的指令码文件。

脚本执行机130,该脚本执行机130提供脚本的API函数

(ApplicationProgram Interface应用程序接口)134。该自定义的脚本API函数134,

能完成与游戏引擎相关的复杂功能,例如改变游戏任务状态,播放游戏剧情过场等,

包括了一系列对电脑游戏中各种对象进行各种操作的API函数。通过调用脚本API

函数134和脚本语言模块110的基本指令集112,可以完成脚本语句的编写;一个

电脑游戏的脚本包括许多由一系列脚本语句组成的脚本文件。脚本执行机130运行

经过编译的指令码文件中的指令,驱动电脑游戏的任务系统和剧情过场。

图2为本发明的应用于电脑游戏的脚本执行方法的流程图。

200:电脑游戏制作根据游戏的实际需求,利用基本指令集112和脚本API函数

134,在脚本语言模块中编写脚本语句形成脚本文件;

210:脚本编译器120编译该脚本文件中脚本语句成指令码,当脚本中出现脚本语

句的语法错误时,进行提示要求改正,只有没有语法错误后,才能将这些脚本语句

编译成对应的指令码,并且将这些指令码保存成是上述的固定格式的指令码文件;

220:通过电脑游戏引擎加载编译好的指令码文件,并且将指令码文件传递给脚本

执行机130,准备运行;

230:脚本执行机130在得到编译好的指令码文件之后,通过脚本执行机132实际

运行各条脚本指令,驱动电脑游戏的任务系统和剧情过场表现。

图3为应用于电脑游戏的脚本系统的执行机的工作流程图。首先,必须运行初始化

函数138,对运行的指令码文件进行一系列的初始化工作,然后才能进行如图3所

示的执行机的实际运行,最后通过运行反初始化函数140结束脚本执行的工作流程。

300:首先,脚本执行机130在得到编译好的指令码文件之后,将之加入等待运行

的指令码文件序列中;指令码文件序列可以是在内存开辟一块存储空间,可以是连

续的,用于存放等待运行的指令码文件信息;

310:脚本执行机130会定时检查待运行指令码文件序列中是否有等待运行的指令

码文件,如果没有,则进入360;如果发现有需要运行的指令码文件,则运行该文

件,进入320;

320:脚本执行模块132通过逐条运行指令码文件中的指令来完成指令码文件的执

行,每次先检查当前正在运行指令码文件中是否还有需要执行的指令;如果没有,

则返回310;否则进入330;

330:脚本执行机130检测到有指令需要执行,载入这条指令的指令码,准备运行,

进入340,如果检测到没有需要执行的指令,则返回320;

340:脚本执行机130得到需要执行的指令码,开始运行该条指令,并定时检测这

条指令是否运行完毕,进入350;

350:脚本执行机130对正在运行的指令进行检测;如果发现还没有运行完毕,则

继续运行这条指令,回到340;如果发现这条指令已经运行完毕,则看是否还有其

它的指令需要执行,回到320。只有当所有待运行指令码文件序列中的指令码文件

都执行完毕的时候,才会结束该流程

360:结束流程。

以上所述为本发明的一个实施例,但本发明并不仅仅局限于此,关于本发明的任何

变动,保护范围以权利要求书为准。

本文标签: 脚本指令码文件执行电脑游戏