基于元数据反射链的游戏云设计方法转让专利

申请号 : CN201610213755.9

文献号 : CN105867932B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆佳炜马俊肖刚徐俊高飞张元鸣卢成炳

申请人 : 浙江工业大学

摘要 :

一种基于元数据反射链的游戏云设计方法,包括如下步骤:第一步:建立一个通用的基于元数据反射链的游戏云设计的平台,平台架构分为游戏云资源模块、游戏云设计模块、游戏云管理模块;第二步:基于平台架构,采用基于元数据反射链的游戏云设计,游戏设计方通过游戏云设计可视化界面,从游戏模板池中选择相应的游戏模板,进行可视化游戏在线设计,选择游戏模板之前,通过试玩该游戏实例GI,决定游戏模板是否满足游戏设计所需;第三步:游戏云管理模块负责对游戏在线云设计模块开发的游戏提供测试、统计服务。本发明能提升游戏制作的效率,减少游戏制作团队对程序员的依赖,降低游戏制作的门槛及成本。

权利要求 :

1.一种基于元数据反射链的游戏云设计方法,其特征在于:所述游戏云设计方法包括如下步骤:第一步:建立一个通用的基于元数据反射链的游戏云设计的平台,平台架构分为游戏云资源模块、游戏云设计模块、游戏云管理模块;

1.1、游戏云资源模块:负责对游戏需求方发布的相关游戏资源进行需求设计,并为游戏云设计提供所需的游戏资源;

游戏云资源模块包括游戏需求池、游戏任务池、游戏资源池;

1.2、游戏云设计模块:负责游戏的云设计;

游戏云设计模块包括游戏模板池、游戏设计配置文件、游戏资源层、游戏元素层、游戏组件层、游戏场景层、游戏逻辑层和游戏应用层;

游戏模板池:存放游戏模板,游戏设计方选择所需的游戏模板进行游戏云设计,一个游戏模板代表着若干个游戏实例,游戏实例是指通过某游戏模板设计出来的具体的某一款游戏;

游戏设计配置文件:游戏设计方通过可视化拖拽点击操作生成针对某个游戏实例的配置文件,配置文件中详细的记录了该游戏实例所需的游戏资源和游戏模板;

游戏资源层:通过资源配置文件来管理、维护游戏实例相关的游戏资源;

游戏元素层:负责管理、维护每个游戏实例中所需的游戏元素,包括战斗场地、剧情、人物、道具、技能和动画;

游戏组件层:负责管理、维护各个游戏元素在各个游戏组件层的状态、属性和事件,包括地图层、人物层、效果层、对话层、控制层;

游戏场景层:负责管理和维护各个游戏场景的生命周期,包括场景的创建、跳转和消亡;

游戏逻辑层:负责根据元数据反射链将游戏资源层、游戏元素层、游戏组件层和游戏场景层连接起来,组装成一个游戏实例;

游戏应用层:负责将游戏逻辑层产生的游戏实例生成Web平台、IOS平台、Andriod平台的游戏;

1.3、游戏云管理模块:负责管理本平台的游戏资源、游戏模板和游戏实例,提供游戏实例运行的硬件资源和软件资源以及开发测试环境;

游戏云管理模块包括:基础架构层和云平台运营层;

基础架构层:提供游戏实例运行所需的基础设施资源;

云平台运营层:负责管理和维护本平台的游戏设计资源、游戏模板以及开发完成的游戏实例;

第二步:基于所述的平台架构,提出基于元数据反射链的游戏云设计,过程如下:步骤2.1:游戏设计方通过游戏云设计可视化界面,从游戏模板池中选择相应的游戏模板,进行可视化游戏在线设计,选择游戏模板之前,通过试玩该游戏实例GIi,从而决定游戏模板是否满足游戏设计所需;

选择游戏模板GT,每个游戏模板GT对应多个游戏实例GIi,玩家通过试玩各个GIi决定是否选择该GT;每个GT都定义了本模板所提供的游戏元素GE,即GT→GE,GE={M,S1,R,I,S2,NPC,EXT};GE包括地图M、技能S1、人物R、道具I、剧情S2、NPC,扩展元素EXT,EXT={EXT1,EXT2,…,EXTn};不同的GT所提供的EXT会有所差别,游戏设计方一旦选择相应的GT,最后用户可创建的GE便可确定;

步骤2.2:根据GT,选择所需的GE,创建该游戏元素实体GEIi,每一个GEIi,包含属性集(Attribute,An)和方法集(Method,Mn),即GE→GEIi,GEIi={A1,A2,…,An}∪{M1,M2,…,Mn};

选择M、R、S和P,设置每个GE的属性,包括主角的HP属性值、移动距离、移动速度和主角图片,为GEIi选择游戏静态资源,游戏静态资源从游戏资源池中获取或者游戏设计方自行上传,将创建的各个游戏元素实体与选择的游戏静态资源关联起来,从而完成GEIi的创建;

2.2.1、选择GE,不同的GE所拥有的属性及方法有所不同;

2.2.2、创建GEIi,通过游戏在线设计可视化界面为选择的游戏元素设置好对应的属性值,涉及图片与音效的属性值,从游戏资源池中选择相应的游戏图片、游戏音效以及游戏设计方自行上传的游戏素材到游戏资源池,最后生成实体元数据;

步骤2.3:在游戏设计中,对于每一个GEIi,通过连接相互关联的GEIi元数据,形成多条游戏元素实体元数GGML,GGML中GEIi与GEIi之间的关联关系是一对多、一对一或多对多;

一对多关系表现为:一张地图上出现多个主角、多个NPC;

一对一关系表现为:主角只能携带一个技能;

多对多关系表现为:多个主角可以携带多个不同的道具;

最后生成游戏元素实体元数据配置文件;

2.3.1、定义1:GEIiA表示游戏元素实体GEIi的属性A;

定义2:GEIiM表示游戏元素实体GEIi的方法M;

定义3:GEIiF表示游戏元素实体GEIi为一个具体的函数实体F;

定义4:GEIiA→GEIjM,表示GEIi的属性A指向GEIjM;

定义5:GEIjM→GEIkF,表示GEIj的方法M指向GEIkF;

2.3.2、创建GGML,定义GGML=GEIiA→GEIjM→GEIkF,表示由GEIiA,GEIjM,GEIkF形成的一条元数据反射链,由GEIi的属性A指向GEIjM,GEIjM的方法M指向GEIkF;

2.3.3、执行GGML,当执行到GEIi的属性A所对应的元素实体的方法时,通过查找相应的GGML来执行方法M;

步骤2.4:为各个场景S3与游戏元素实体GEIi之间设置场景——游戏元素实体元数据链SGML,每个场景S3都包含相应的GEIi,包含GEIi的个数、种类,都在SGML中体现,最后生成场景配置文件;

2.4.1、定义6:GEIinum表示第i个游戏元素的GEIi的数量为num;

定义7:SmGML表示场景m所对应的场景——游戏元素实体元数据链;

定义8:SmGML是场景m由GEIinum组成的集合,SGML={GEIinum};

2.4.2、游戏模板GT通过读取SmGML来创建本场景所需的GEI的种类和数目,最终实现游戏场景的自动生成,游戏模板GT通过读取GGML来实现游戏场景内游戏元素实体对应方法的调用;

2.4.3、每个GEIi拥有有限数目的离散稳定、相互独立又相互联系的状态,SRPG游戏以事件驱动的方式工作,使得每个游戏元素实体在这些状态内转移;在某一时刻,当收到输入事件,GT中的有限状态机FSM对该事件做出响应,并伴随状态的转移;有限状态机适用于游戏设计中复杂场景的切换以及场景内游戏元素实体状态之间的切换;

在游戏云设计中,每个GEIi通过元数据反射链的方式传递各个GEIi之间的状态转换;

步骤2.5:根据游戏元数据配置文件和游戏模板,生成WEB版本、IOS版本、Android版本的软件包;

第三步:游戏云管理模块负责对游戏在线云设计模块开发的游戏提供测试、统计服务。

2.如权利要求1所述的一种基于元数据反射链的游戏云设计方法,其特征在于:所述步骤1.1中,游戏需求池:存放游戏需求方发布的与游戏制作相关的需求,需求分为二类,一类是与游戏素材相关的制作设计需求,包括游戏设计方在游戏设计过程中缺少相应的游戏素材,在游戏需求池中发布制作设计需求,游戏美工在游戏任务池中发现需求并完成缺少的游戏素材,将其放入游戏资源池;还有一类是与游戏设计相关的需求,包括某游戏玩家需定制SRPG游戏,但游戏模板池中并没有相应的游戏模板,在游戏需求池中发布该类需求,游戏开发者在游戏任务池中发现需求并完成玩家所需的游戏模板,将其放入游戏资源池;

游戏任务池:游戏需求方发布游戏需求后,每个游戏需求进入游戏任务池,由游戏开发者、美工、音效师在游戏任务池中选择自己擅长领域的游戏任务并完成该任务;

游戏资源池:游戏任务池中的任务被完成后进入游戏资源池,转变为游戏资源,游戏资源分为二类,一类是与游戏素材相关的游戏资源,这类游戏资源以图片、音效和视频形式在游戏资源池中体现;另外一类是与游戏设计相关的游戏资源,以游戏模板的形式在游戏资源池中体现;这二类游戏资源为游戏设计方在游戏云设计模块进行游戏在线设计做好游戏资源准备。

说明书 :

基于元数据反射链的游戏云设计方法

技术领域

[0001] 本发明涉及到一种游戏技术开发领域,特别涉及一种通用的基于元数据反射链的策略角色扮演游戏(Strategy Role-Playing Game,SRPG)的游戏云设计方法。

背景技术

[0002] SRPG游戏是RPG游戏发展出来的一个分支,是策略角色扮演游戏的简称,是一种带有战术性的(通常为战棋类)角色扮演游戏。玩家通过控制一个或多个角色并使其活动在一个写实或虚构世界中,每个角色拥有各种虚拟能力参数与技能,其中能力参数指力量,体力、灵敏度、智力、魔法、运气等,技能指能发动的招式或动作,并在一个结构化规则下,通过一些带有战术性的行动使玩家所扮演角色的虚拟能力参数及技能得到发展,最终完成游戏胜利的目标。
[0003] 个人独立开发游戏的工具最早可追溯到RPG Maker,主要用来制作RPG游戏,游戏里自带大量素材,使用者不需要编程只利用内置的事件编辑器和战斗编辑器就能够写出游戏的基本逻辑,但是其缺点是用户必须下载游戏开发者工具,并且只能开发RPG类型的游戏。如果开发者想要制作出其他类型的游戏,需要重写游戏机制,并且必须熟练使用编辑器。国外的个人独立开发游戏的工具主要以GameSalad为主,使用GameSalad无需编程,但用户仍需在本地安装软件,并且需要掌握软件工程的基础流程才能实现目标中所需要的游戏机制。
[0004] 目前,互联网上已经出现了一些在线制作游戏平台(如游戏魅等),这些游戏在线制作平台亮点在于不写代码或者写少量代码,通过可视化拖拽点击、加入动作条,快速完成一款跨平台中轻度游戏;一次开发后可同时发布为H5、安卓、iOS和Windows原生版本;支持丰富的游戏模板,采用60%模板+40%创意做游戏,也可从零开始开发原创游戏。综上所述,这类游戏在线制作平台对于游戏设计方而言,除了学习成本较高,涉及游戏开发的游戏资源分散于各个游戏网站,没有统一的集成、管理、查找游戏资源入口等问题。并且,游戏设计方需要自己搭建游戏开发环境,包括多人协作、部署、测试等,为游戏开发带来诸多不便。
[0005] 学术界就在线游戏云设计相关的领域也进行了大量研究,中山大学王建明等人于2006年提出了一种RPG游戏场景路径的自动生成方法及装置,可以动态的生成不同游戏场景的路径,路径的灵活性高,加强了场景路径的变化性,提高了游戏的娱乐性。韩国Ok-Hue Cho等人于2011提出了一种交互式的事件设计工具帮助游戏开发者通过不写代码,以可视化的操作方式将游戏事件与效果绑定到相应的游戏人物上。西安电子科技大学Linbo Luo等人于2014年提出了一种针对严肃游戏的数据驱动自动生成场景的方法,通过一个具有人工智能的虚拟游戏玩家来模拟真实玩家的操作来搜集游戏数据并根据人工神经网络来训练数据,最后利用数据驱动框架根据人工神经网络训练后的数据自动生成游戏的场景。以上研究主要针对游戏设计过程中的某一部分的自动化设计,缺少对游戏的整个生命周期进行在线自动化设计的研究,并且在自动化设计游戏过程中需要下载相应软件,在线设计能力偏弱。

发明内容

[0006] 为了克服现有游戏设计方式的制作效率较低、依赖于程序员、门槛和成本较高的不足,本发明提供一种基于元数据反射链的游戏云设计方法,能提升游戏制作的效率,减少游戏制作团队对程序员的依赖,降低游戏制作的门槛及成本。
[0007] 为了解决上述技术问题本发明所采用的技术方案是:
[0008] 一种基于元数据反射链的游戏云设计方法,所述游戏云设计方法包括如下步骤:
[0009] 第一步:建立一个通用的基于元数据反射链的游戏云设计的平台,平台架构分为游戏云资源模块、游戏云设计模块、游戏云管理模块;
[0010] 1.1、游戏云资源模块:负责对游戏需求方发布的相关游戏资源进行需求设计,并为游戏云设计提供所需的游戏资源;
[0011] 游戏云资源模块包括游戏需求池、游戏任务池、游戏资源池;
[0012] 1.2、游戏云设计模块:负责游戏的云设计;
[0013] 游戏云设计模块包括游戏模板池、游戏设计配置文件、游戏资源层、游戏元素层、游戏组件层、游戏场景层、游戏逻辑层和游戏应用层;
[0014] 游戏模板池:存放游戏模板,游戏设计方选择所需的游戏模板进行游戏云设计,一个游戏模板代表着若干个游戏实例,游戏实例是指通过某游戏模板设计出来的具体的某一款游戏;
[0015] 游戏设计配置文件:游戏设计方通过可视化拖拽点击操作生成针对某个游戏实例的配置文件,配置文件中详细的记录了该游戏实例所需的游戏资源和游戏模板;
[0016] 游戏资源层:通过资源配置文件来管理、维护游戏实例相关的游戏资源;
[0017] 游戏元素层:负责管理、维护每个游戏实例中所需的游戏元素,包括战斗场地、剧情、人物、道具、技能和动画等;
[0018] 游戏组件层:负责管理、维护各个游戏元素在各个游戏组件层的状态、属性、事件等,包括地图层、人物层、效果层、对话层、控制层;
[0019] 游戏场景层:负责管理和维护各个游戏场景的生命周期,包括场景的创建、跳转和消亡等;
[0020] 游戏逻辑层:负责根据元数据反射链将游戏资源层、游戏元素层、游戏组件层和游戏场景层连接起来,组装成一个游戏实例;
[0021] 游戏应用层:负责将游戏逻辑层产生的游戏实例生成Web平台、IOS平台、Andriod平台的游戏;
[0022] 1.3、游戏云管理模块:负责管理本平台的游戏资源、游戏模板和游戏实例,提供游戏实例运行的硬件资源和软件资源以及开发测试环境;
[0023] 游戏云管理模块包括:基础架构层和云平台运营层;
[0024] 基础架构层:提供游戏实例运行所需的基础设施资源;
[0025] 云平台运营层:负责管理和维护本平台的游戏设计资源、游戏模板以及开发完成的游戏实例等;
[0026] 第二步:基于所述的平台架构,提出基于元数据反射链的游戏云设计,过程如下:
[0027] 步骤2.1:游戏设计方通过游戏云设计可视化界面,从游戏模板池中选择相应的游戏模板,进行可视化游戏在线设计,选择游戏模板之前,通过试玩该游戏实例GI,从而决定游戏模板是否满足游戏设计所需;
[0028] 选择游戏模板GT,每个游戏模板GT对应多个游戏实例GIi,玩家通过试玩各个GI决定是否选择该GT;每个GT都定义了本模板所提供的游戏元素GE,即GT→GE,GE={M,S,R,I,S,NPC,EXT};GE主要包括地图M、技能S、人物R、道具I、剧情S、NPC,扩展元素EXT,EXT={EXT1,EXT2,…,EXTn};不同的GT所提供的EXT会有所差别,游戏设计方一旦选择相应的GT,最后用户可创建的GE便可确定;
[0029] 步骤2.2:根据GT,选择所需的GE,创建该游戏元素实体GEI,每一个GEI,包含属性集(Attribute,An)和方法集(Method,Mn),即GE→GEI,GEI={A1,A2,…,An}∪{M1,M2,…,Mn};如选择M、R、S、P等GE,设置每个GE的属性,如主角的HP属性值、移动距离、移动速度和主角图片,为GEI选择游戏静态资源,游戏静态资源可从游戏资源池中获取,也可游戏设计方自行上传,将创建的各个游戏元素实体与选择的游戏静态资源关联起来,从而完成GEI的创建;
[0030] 2.2.1、选择GE,不同的GE所拥有的属性及方法有所不同;
[0031] 2.2.2、创建GEI,通过游戏在线设计可视化界面为选择的游戏元素设置好对应的属性值,涉及图片与音效的属性值,从游戏资源池中选择相应的游戏图片、游戏音效以及游戏设计方自行上传的游戏素材到游戏资源池,最后生成实体元数据;
[0032] 步骤2.3:在游戏设计中,对于每一个GEI,通过连接相互关联的GEI元数据,形成多条游戏元素实体元数GGML,GGML中GEI与GEI之间的关联关系是一对多、一对一或多对多;
[0033] 一对多关系主要表现为:一张地图上可以出现多个主角、多个NPC,即一个元素实体与另一种元素的多个实体相关联、设置可以与多种元素实体相关联。
[0034] 一对一关系主要表现为:主角只能携带一个技能、或每个地图主角的起始出生点只存在一个等,即一个元素实体只能与另一个元素实体相关联。
[0035] 多对多关系主要表现为:多个主角可以携带多个不同的道具,即一种元素的多个实体与另一种元素的多个实体交叉多重相关联。
[0036] 最后生成游戏元素实体元数据配置文件;
[0037] 2.3.1、定义1:GEIiA表示游戏元素GEIi的属性A;
[0038] 定义2:GEIiM表示游戏元素GEIi的方法M;
[0039] 定义3:GEIiF表示游戏元素GEIi为一个具体的函数实体F;
[0040] 定义4:GEIiA→GEIjM,表示GEIi的属性A指向GEIjM;
[0041] 定义5:GEIjM→GEIkF,表示GEIj的方法M指向GEIkF;
[0042] 2.3.2、创建GGML,定义GGML=GEIiA→GEIjM→GEIkF,表示由GEIiA,GEIjM,GEIkF形成的一条元数据反射链,由GEIi的属性A指向GEIjM,GEIjM的方法M指向GEIkF;
[0043] 2.3.3、执行GGML,当执行到GEIi的属性A所对应的元素实体的方法时,通过查找相应的GGML来执行方法M;
[0044] 步骤2.4:为各个场景S与游戏元素实体GEIi之间设置场景——游戏元素实体元数据链SGML,每个场景S都包含相应的GEIi,包含GEIi的个数、种类,都在SGML中体现,最后生成场景配置文件;
[0045] 2.4.1、定义6:GEIinum表示i这个游戏元素的GEIi的数量为num;
[0046] 定义7:SmGML表示场景m所对应的场景——游戏元素实体元数据链;
[0047] 定义8:SmGML是场景m由GEIinum组成的集合,SGML={GEIinum};
[0048] 2.4.2、游戏模板GT通过读取SmGML来创建本场景所需的GEI的种类和数目,最终实现游戏场景的自动生成,游戏模板GT通过读取GGML来实现游戏场景内游戏元素实体对应方法的调用;
[0049] 2.4.3、每个GEIi拥有有限数目的离散稳定、相互独立又相互联系的状态,SRPG游戏以事件驱动的方式工作,使得每个游戏元素实体在这些状态内转移;在某一时刻,当收到输入事件,GT中的有限状态机FSM对该事件做出响应,并伴随状态的转移;有限状态机特别适用于游戏设计中复杂场景的切换以及场景内游戏元素实体状态之间的切换;
[0050] 在游戏云设计中,每个GEIi通过元数据反射链的方式传递各个GEIi之间的状态转换;
[0051] 步骤2.5:根据游戏元数据配置文件和游戏模板,生成WEB版本、IOS版本、Android版本的软件包;
[0052] 第三步:游戏云管理模块负责对游戏在线云设计模块开发的游戏提供测试、统计服务。
[0053] 进一步,所述步骤1.1中,游戏需求池:存放游戏需求方发布的与游戏制作相关的需求,需求分为二类,一类是与游戏素材相关的制作设计需求,例如游戏设计方在游戏设计过程中缺少相应的游戏素材,在游戏需求池中发布制作设计需求,游戏美工在游戏任务池中发现需求并完成缺少的游戏素材,将其放入游戏资源池;还有一类是与游戏设计相关的需求,例如某游戏玩家需定制SRPG游戏,但游戏模板池中并没有相应的游戏模板,在游戏需求池中发布该类需求,游戏开发者在游戏任务池中发现需求并完成玩家所需的游戏模板,将其放入游戏资源池;
[0054] 游戏任务池:游戏需求方发布游戏需求后,每个游戏需求进入游戏任务池,由游戏开发者、美工、音效师在游戏任务池中选择自己擅长领域的游戏任务并完成该任务;
[0055] 游戏资源池:游戏任务池中的任务被完成后进入游戏资源池,转变为游戏资源,游戏资源主要分为二类,一类是与游戏素材相关的游戏资源,这类游戏资源以图片,音效,视频等形式在游戏资源池中体现;另外一类是与游戏设计相关的游戏资源,以游戏模板的形式在游戏资源池中体现;这二类游戏资源为游戏设计方在游戏云设计模块进行游戏在线设计做好游戏资源准备。
[0056] 本发明的技术构思为:通常任何一款游戏均由各个静态的游戏资源组成,静态游戏资源包括:图片、音频、游戏模板等游戏素材。这些游戏资源构成游戏的各个元素,游戏元素包括地图、剧情、人物、道具、技能、效果函数等。每个游戏元素隶属于各自对应的游戏组件层,游戏组件层包括地图层、人物层、效果层、对话层、控制层,通过基于元数据反射链的方式将各个游戏组件层中的游戏元素按照游戏模板提供的逻辑组织到一起,从而形成多个游戏的场景,最后组合各个游戏场景即形成一款游戏。在游戏云设计平台中,游戏设计方通过可视化拖拽点击的方式创建各个游戏元素,关联各类游戏云资源与游戏元素,设置游戏元素之间的实体关系,形成多条元数据反射链,最后组合游戏模板与元数据反射链,实现游戏全生命周期的设计。
[0057] 本发明提出了一种基于元数据反射链的游戏云设计方法。通过云计算平台将大量高度虚拟化的游戏资源管理起来,组成一个游戏资源池,采用集中式的思想提供服务。基于元数据反射链的游戏云设计方法以游戏需求方、游戏设计方、游戏玩家为中心,以知识为支撑,构建一个虚拟化、分布式、按需分配的游戏制造资源共享平台,通过游戏云设计平台实现游戏全生命周期的协同制造、管理与创新。
[0058] 通过将各类游戏资源虚拟化、服务化构成游戏资源服务云池,并进行统一集中的优化管理和经营。游戏设计方选择相应的游戏模板,通过创建游戏元素实体,根据各个游戏元素实体之间的实体关系,通过反射链的形式关联各个游戏元素实体,从而形成多条元数据反射链。游戏模板通过读取相应元数据反射链达到游戏的自动生成以及游戏中具体函数的自动化调用的目的,最终实现游戏全生命周期设计的智慧化。
[0059] 本发明的有益效果主要表现在:提升游戏制作的效率,减少游戏制作团队对程序员的依赖,降低游戏制作的门槛及成本。游戏设计方通过游戏云设计平台做到无需写代码或者写少量代码,采用可视化的开发方式,通过简单的拖拽、配置即可完成游戏的制作过程。这样,对于擅长游戏创意的游戏策划师而言,不依赖程序员,就可制作出忠实于自己创意的游戏。
[0060] (1)无需编程,可视化开发,界面友好
[0061] (2)一次开发,跨平台发布
[0062] (3)在拥有一定用户基础后,可累积海量的云游戏模板和云游戏设计资源的共享[0063] (4)面向云计算的设计体系架构
[0064] (5)基于元数据反射链的复用思想

附图说明

[0065] 图1示出了在线游戏云设计的平台架构图。
[0066] 图2示出了基于元数据反射的在线游戏云设计的流程。
[0067] 图3示出了道具的GGML元数据反射链查找过程。
[0068] 图4示出了游戏中的SGML与GGML元数据反射链。
[0069] 图5示出了游戏过关时,场景1与场景2之间GEI状态之间的合并。
[0070] 图6示出了通过GGML导致GEI状态转变以及GGML的调整。

具体实施方式

[0071] 下面结合附图对本发明作进一步描述。
[0072] 实施例1
[0073] 参照图1~图6,一种基于元数据反射链的游戏云设计方法,所述游戏云设计方法包括如下步骤:
[0074] 第一步:建立一个通用的基于元数据反射链的游戏云设计的平台,如图1所示,平台架构分为游戏云资源模块、游戏云设计模块、游戏云管理模块。
[0075] 1.1、游戏云资源模块:负责对游戏需求方发布的相关游戏资源进行需求设计,并为游戏云设计提供所需的游戏资源。
[0076] 游戏云资源模块包括游戏需求池、游戏任务池、游戏资源池。
[0077] 游戏需求池:存放游戏需求方发布的与游戏制作相关的需求。需求分为二类,一类是与游戏素材相关的制作设计需求,例如游戏设计方在游戏设计过程中缺少相应的游戏素材,在游戏需求池中发布制作设计需求,游戏美工在游戏任务池中发现需求并完成缺少的游戏素材,将其放入游戏资源池。还有一类是与游戏设计相关的需求,例如某游戏玩家需定制SRPG游戏,但游戏模板池中并没有相应的游戏模板,在游戏需求池中发布该类需求,游戏开发者在游戏任务池中发现需求并完成玩家所需的游戏模板,将其放入游戏资源池。
[0078] 游戏任务池:游戏需求方发布游戏需求后,每个游戏需求进入游戏任务池,由游戏开发者、美工、音效师在游戏任务池中选择自己擅长领域的游戏任务并完成该任务。
[0079] 游戏资源池:游戏任务池中的任务被完成后进入游戏资源池,转变为游戏资源。游戏资源主要分为二类,一类是与游戏素材相关的游戏资源,这类游戏资源以图片,音效,视频等形式在游戏资源池中体现。另外一类是与游戏设计相关的游戏资源,以游戏模板的形式在游戏资源池中体现。这二类游戏资源为游戏设计方在游戏云设计模块进行游戏在线设计做好游戏资源准备。
[0080] 1.2、游戏云设计模块:负责游戏的云设计。
[0081] 游戏云设计模块包括游戏模板池、游戏设计配置文件、游戏资源层、游戏元素层、游戏组件层、游戏场景层、游戏逻辑层、游戏应用层。
[0082] 游戏模板池:存放游戏模板。游戏设计方选择所需的游戏模板进行游戏云设计,一个游戏模板代表着若干个游戏实例,游戏实例是指通过某游戏模板设计出来的具体的某一款游戏。
[0083] 游戏设计配置文件:游戏设计方通过可视化拖拽点击操作生成针对某个游戏实例的配置文件。配置文件中详细的记录了该游戏实例所需的游戏资源和游戏模板。
[0084] 游戏资源层:通过资源配置文件来管理、维护游戏实例相关的游戏资源。
[0085] 游戏元素层:负责管理、维护每个游戏实例中所需的游戏元素,包括战斗场地、剧情、人物、道具、技能、动画等。
[0086] 游戏组件层:负责管理、维护各个游戏元素在各个游戏组件层的状态、属性、事件等,包括地图层、人物层、效果层、对话层、控制层。
[0087] 游戏场景层:负责管理和维护各个游戏场景的生命周期,包括场景的创建、跳转、消亡等。
[0088] 游戏逻辑层:负责根据元数据反射链将游戏资源层、游戏元素层、游戏组件层、游戏场景层连接起来,组装成一个游戏实例。
[0089] 游戏应用层:负责将游戏逻辑层产生的游戏实例生成Web平台、IOS平台、Andriod平台的游戏,方便各个平台的游戏玩家试玩。
[0090] 1.3、游戏云管理模块:负责管理本平台的游戏资源、游戏模板和游戏实例,提供游戏实例运行的硬件资源和软件资源以及开发测试环境等。
[0091] 游戏云管理模块包括:基础架构层、云平台运营层。
[0092] 基础架构层:提供游戏实例运行所需的基础设施资源。
[0093] 云平台运营层:负责管理和维护本平台的游戏设计资源、游戏模板以及开发完成的游戏实例等。
[0094] 进一步,所述基于元数据反射链的游戏云设计平台中,游戏需求方,游戏设计方,游戏玩家,云平台运维方其职责如下:
[0095] 游戏需求方:指发布游戏相关需求的实体。包括:游戏玩家、游戏开发者、游戏美工,游戏音效师,游戏设计师等与游戏行业相关的实体。
[0096] 游戏设计方:指在线设计游戏实例的实体。包括:游戏玩家、游戏开发者、游戏美工,游戏音效师,游戏设计师等与游戏行业相关的实体。
[0097] 游戏玩家:指负责试玩游戏实例的实体。
[0098] 云平台运维方:指负责游戏云设计平台运维的实体。
[0099] 第二步:基于所述的平台架构,提出基于元数据反射链的游戏云设计方法如下,游戏云设计流程如图2所示。
[0100] 步骤2.1:游戏设计方通过游戏云设计可视化界面,从游戏模板池中选择相应的游戏模板,进行可视化游戏在线设计。选择游戏模板之前,通过试玩该游戏实例(Game Instance,GI),从而决定游戏模板是否满足游戏设计所需。
[0101] 2.1.1、选择游戏模板(Game Templet,GT)。每个游戏模板GT对应多个游戏实例GIi,玩家通过试玩各个GI决定是否选择该GT。每个GT都定义了本模板所提供的游戏元素(Game Element,GE),即GT→GE,GE={M,S,R,I,S,NPC,EXT}。GE主要包括地图M(Map)、技能S(Skill)、人物R(Role)、道具I(Item)、剧情S(Scenario)、NPC(Non-Player-Controlled Character),扩展元素EXT(Extended Element),EXT={EXT1,EXT2,…,EXTn}。不同的GT所提供的EXT会有所差别,游戏设计方一旦选择相应的GT,最后用户可创建的GE便可确定。
[0102] 步骤2.2:根据GT,选择所需的GE,创建该游戏元素实体(Game Element Instance,GEI),每一个GEI,包含属性集(Attribute,An)和方法集(Method,Mn),即GE→GEI,GEI={A1,A2,…,An}∪{M1,M2,…,Mn}。如选择M、R、S、P等GE,设置每个GE的属性,如主角的HP属性值、移动距离、移动速度,主角图片等,为GEI选择游戏静态资源,游戏静态资源可从游戏资源池中获取,也可游戏设计方自行上传,将创建的各个游戏元素实体与选择的游戏静态资源关联起来,从而完成GEI的创建。
[0103] 2.2.1、选择GE。不同的GE所拥有的属性及方法有所不同。如在RPG游戏中,对于主角这一游戏元素,包含的属性有主角的姓名、性别、图片、年龄、等级、金钱等,包含的方法有行走、停止、对话、战斗等。对于道具这一游戏元素,包含的属性有道具名、描述、数量、图片、音效等,包含的方法有道具的使用效果函数等。其中,各个GE的属性及方法通过XML进行描述。
[0104] 主角元素XML文件格式如下:
[0105]
[0106] 主角元素XML中的每个节点的含义如表1所示:
[0107]
[0108]
[0109] 表1
[0110] NPC元素XML文件格式如下:
[0111]
[0112]
[0113]
[0114]
[0115] 表2
[0116] 道具元素的XML文件格式如下:
[0117]
[0118] 道具元素XML中的每个节点的含义如表3所示:
[0119]
[0120] 表3
[0121] 技能元素的XML文件格式如下:
[0122]
[0123] 技能元素XML中的每个节点的含义如表4所示:
[0124]
[0125] 表4
[0126] 剧情元素的XML文件格式如下:
[0127]
[0128]
[0129] 剧情元素XML中的每个节点的含义如表5所示:
[0130]
[0131] 表5
[0132] 地图元素的XML文件格式如下:
[0133]
[0134]
[0135] 地图元素XML中的每个节点的含义如表6所示:
[0136]属性/方法 描述
mapId 地图编号
mapName 地图的名称
img 地图的图片源文件
role 主角坐标,包含roleId,roleX,roleY
roleId 主角Id
roleX 主角在地图上的X坐标
roleY 主角在地图上的Y坐标
npc npc坐标,包含npcId,npcX,npcY
npcId npc的编号
npcX npc在地图上的X坐标
npcY npc在地图上的Y坐标
[0137] 表6
[0138] 2.2.2、创建GEI。通过游戏在线设计可视化界面为选择的游戏元素设置好对应的属性值,涉及图片与音效的属性值,可从游戏资源池中选择相应的游戏图片、游戏音效以及游戏设计方自行上传的游戏素材到游戏资源池,最后生成实体元数据。
[0139] 步骤2.3:在游戏设计中,不同的游戏元素实体GEI之间往往不是独立的,而存在关联关系。对于每一个GEI,通过连接相互关联的GEI元数据,形成多条游戏元素实体元数链(Game Elements Instance-Game Elements Instance-Metadata Link,GGML)。GGML中GEI与GEI之间的关联关系可以是一对多(多对一)、一对一、多对多。
[0140] 一对多关系主要表现为:一张地图上可以出现多个主角、多个NPC,即一个元素实体与另一种元素的多个实体相关联、设置可以与多种元素实体相关联。
[0141] 一对一关系主要表现为:主角只能携带一个技能、或每个地图主角的起始出生点只存在一个等,即一个元素实体只能与另一个元素实体相关联。
[0142] 多对多关系主要表现为:多个主角可以携带多个不同的道具,即一种元素的多个实体与另一种元素的多个实体交叉多重相关联。
[0143] 最后生成游戏元素实体元数据配置文件。
[0144] 2.3.1、定义1:GEIiA表示游戏元素GEIi的属性A;
[0145] 定义2:GEIiM表示游戏元素GEIi的方法M;
[0146] 定义3:GEIiF表示游戏元素GEIi为一个具体的函数实体F;
[0147] 定义4:GEIiA→GEIjM,表示GEIi的属性A指向GEIjM;
[0148] 定义5:GEIjM→GEIkF,表示GEIj的方法M指向GEIkF;
[0149] 2.3.2、创建GGML。定义GGML=GEIiA→GEIjM→GEIkF,表示由GEIiA,GEIjM,GEIkF形成的一条元数据反射链,由GEIi的属性A指向GEIjM,GEIjM的方法M指向GEIkF。
[0150] 2.3.3、执行GGML。当执行到GEIi的属性A所对应的元素实体的方法时,通过查找相应的GGML来执行方法M。
[0151] 如图3所示,以游戏中主角使用道具为例,当主角要使用道具时,通过主角道具反射链(即图3中主角实体R与道具实体P之间的元数据反射链)查找到需要使用的道具实体P(通过表1人物元素实体中的itemId关联查找到表3道具元素实体),再根据道具使用反射链(即图3中道具实体P与效果函数实体F之间的元数据反射链)查找到该道具对应的效果函数M(通过表3道具元素实体中的itemFunc查找到效果函数M),效果函数M指向效果函数实体F,最后执行该效果函数实体F。
[0152] 效果函数M是调用技能元素或者道具元素所对应的方法名,根据方法名指向对应的效果函数实体F。
[0153] 效果函数实体F,简称函数实体F,是效果函数M对应的实际代码实体,产生实际的调用效果。
[0154] 步骤2.4:为各个场景S(Scene)与游戏元素实体GEIi之间设置场景——游戏元素实体元数据链(Sence-Game Element Instance-Metadata Link,SGML),每个场景S都包含相应的GEIi,包含GEIi的个数、种类,都在SGML中体现,最后生成场景配置文件。
[0155] 2.4.1、定义6:GEIinum表示i这个游戏元素的GEIi的数量为num;
[0156] 定义7:SmGML表示场景m所对应的场景——游戏元素实体元数据链;
[0157] 定义8:SmGML是场景m由GEIinum组成的集合,SGML={GEIinum};
[0158] 2.4.2、游戏模板GT通过读取SmGML来创建本场景所需的GEI的种类和数目,最终实现游戏场景的自动生成。游戏模板GT通过读取GGML来实现游戏场景内游戏元素实体对应方法的调用。
[0159] SmGML与GGML之间的关系如图4所示,在SmGML上分布着各个GEIi,有地图实体、剧情实体、主角实体、NPC实体、道具实体、技能实体、装备实体、函数实体。各个GEIi之间的关系以元数据反射链的形式体现,有地图实体与主角实体之间的主角反射链(说明该地图上主角实体的分布情况)、主角实体与道具实体之间的道具反射链(说明该主角实体所拥有道具的种类和数量情况)、道具实体与函数实体之间的道具使用反射链(说明该道具实体所对应的效果函数实体)等。每个游戏场景都有一条SmGML,SmGML上的各个GEIi之间的GGML配合GT实现本场景的游戏逻辑与效果。
[0160] 2.4.3、每个GEIi拥有有限数目的离散稳定、相互独立又相互联系的状态,SRPG游戏以事件驱动的方式工作,使得每个游戏元素实体在这些状态内转移。在某一时刻,当收到输入事件,GT中的有限状态机(Finite state machines,FSM)对该事件做出响应,并伴随状态的转移。有限状态机特别适用于游戏设计中复杂场景的切换以及场景内游戏元素实体状态之间的切换,为游戏云设计提供了一种可重用、模板化的设计方法。
[0161] 场景的切换如图5所示,每个游戏场景都有一条SmGML,记录了场景m中各个GEIi的状态。当游戏主角过关从场景1转换到场景2时,通过从S1GML中抽离出进入场景2所需的GEIi以及相关联的元数据反射链,融合到S2GML中,实现场景1到场景2的游戏环境的过渡,融合后的S2GML将成为场景2的初始化条件,GT读取S2GML完成场景2的初始化以及游戏逻辑的实现。
[0162] 假设主角从场景1进入场景2只携带了某道具实体,在进入场景2时,GT从S1GML中抽离出主角实体、道具实体、函数实体以及这三个实体之间的元数据反射链,与S2GML中现有的GEIi和GGML进行融合。GT读取融合后的S2GML初始化场景2的游戏逻辑。
[0163] 场景内游戏元素实体状态之间的切换如图6所示,在游戏云设计中,每个GEIi通过元数据反射链的方式传递各个GEIi之间的状态转换。主角元素实体拥有的状态为创建状态、激活状态、攻击状态、升级状态、死亡状态、复活状态。
[0164] NPC元素实体拥有的状态为创建状态、激活状态、巡逻状态、追赶状态、攻击状态、死亡状态。
[0165] 以主角发动技能为例,主角实体在玩家的操作下从激活状态转变为攻击状态,当玩家选择发动对应的技能时,与主角攻击状态相关联的技能反射链将被触发,通过技能反射链查找相应的技能,再通过技能使用反射链查找相应的函数实体,最后执行该函数实体作用于NPC实体,完成本次攻击。
[0166] NPC实体受到本次攻击后,从之前的激活状态转变为攻击状态,同样的,NPC实体的技能反射链将被触发,完成本次反击。在主角攻击,NPC反击来回的过程中,因NPC的战败使得NPC实体从攻击状态转变为消亡状态,从而触发主角实体从攻击状态转变为升级状态,升级结束后,再转变为激活状态。最后,由于NPC实体的消亡,反作用于元数据反射链,将所有与该NPC实体相关的元数据反射链移除,从而继续通过元数据反射链完成FSM中各个GEIi之间的状态转换。
[0167] 步骤2.5:根据游戏元数据配置文件和游戏模板,生成WEB版本、IOS版本、Android版本的软件包。
[0168] 第三步:游戏云管理模块负责对游戏在线云设计模块开发的游戏提供测试、统计服务,如为玩家提供游戏实例试玩的硬件资源,统计游戏实例玩家数量。
[0169] 本发明的有益效果主要表现在:提升游戏制作的效率,减少游戏制作团队对程序员的依赖,降低游戏制作的门槛及成本。游戏设计方通过游戏云设计平台做到无需写代码或者写少量代码,采用可视化的开发方式,通过简单的拖拽、配置即可完成游戏的制作过程。这样,对于擅长游戏创意的游戏策划师而言,不依赖程序员,就可制作出忠实于自己创意的游戏。
[0170] (1)无需编程,可视化开发,界面友好
[0171] (2)一次开发,跨平台发布
[0172] (3)海量的云游戏模板和云游戏设计资源的共享
[0173] (4)游戏云设计体系架构
[0174] (5)基于元数据反射链的复用思想
[0175] 实施例2
[0176] 本发明提供了一种基于元数据反射链的SRPG游戏云设计平台,通过该平台设计实现了《残魂春秋》SRPG游戏实例。该游戏实例所选择的游戏模板采用HTML5、CSS3、JavaScript技术开发实现。《残魂春秋》的游戏背景讲述的是在古代的武林中,残魂教的教主林春水被一个叫做“魂”的组织杀害,林春水的儿子林秋水在逃亡的过程中结实小伙伴,最后为父报仇的故事。
[0177] 以下所述各类游戏元素实体元数据配置文件的详细参数说明参见实施例一。
[0178] 主角元素实体元数据配置文件描述的是主角实体的各个属性值以及主角实体与技能实体的元数据反射链,如:主角实体的姓名为林秋水、等级为1级、血量hp为120、与技能编号skillId为1的技能实体形成元数据反射链等。
[0179] 主角元素实体元数据配置文件如下:
[0180]
[0181] 技能元素实体元数据配置文件描述了各技能元素实体的各个属性值以及各技能实体与对应的函数实体之间的元数据反射链关系,通过技能编号skillId查找到与主角实体形成元数据反射链的技能实体,即skillId为1的技能实体的名称为残食天地,其作用是对敌人造成60点hp的伤害,与效果函数名为SSoulKill形成元数据反射链。
[0182] 技能元素实体元数据配置文件如下:
[0183]
[0184] 地图元素实体元数据配置文件描述的是该元素实体的一些属性以及地图实体与主角实体、NPC实体之间的元数据反射链。地图的属性如地图的名称叫“逃生”,地图的图片路径为image/map/map1.jpg。地图实体通过关联roleId与npcId分别与主角实体和NPC实体形成元数据反射链,而主角实体又指向技能实体,技能实体指向函数实体,使得元数据反射链延长。
[0185] 地图元素实体元数据配置文件如下:
[0186]
[0187]
[0188] 世界地图元素实体元数据配置文件描述的是世界地图实体与各个地图实体形成元数据反射链关系。各个地图实体在世界地图实体中以关卡的形式体现。如世界地图实体包含了mapId为1的地图实体,其在世界地图中的X坐标为140,Y坐标为205等。mapId为1的地图实体又与以上所述主角实体和NPC实体形成元数据反射链,使得元数据反射链延长。
[0189] 世界地图元素实体元数据配置文件如下:
[0190]
[0191]