一种游戏引擎

阅读:935发布:2020-05-24

专利汇可以提供一种游戏引擎专利检索,专利查询,专利分析的服务。并且本 发明 提供一种游戏引擎,包括:游戏 框架 模 块 、第二引擎模块、位于游戏框架模块和第二引擎模块之间的第一引擎模块,其中,第二引擎模块的 内核 单元的对象单元包括缓存子单元,在该缓存子单元中,以主机域名和端口号,或者以地址和端口号组成的域来决定唯一的主机目录,所述主机目录存放该域下涉及到的app cache文件及普通的缓存文件,且以manifest文件的URL为标志来决定一个app cache文件的存储空间。,下面是一种游戏引擎专利的具体信息内容。

1.一种游戏引擎,包括:
游戏框架、第二引擎模块、位于游戏框架模块和第二引擎模块之间的第一引擎模块,
所述游戏框架模块用于存储游戏程序脚本,
所述第二引擎模块用于为第一引擎模块提供扩展的定义对象和扩展的API接口,为游戏框架模块中的游戏程序脚本提供HTML5运行环境,
所述第一引擎模块用于加载、解析并执行所述游戏框架模块中的游戏程序脚本,在执行过程中调用所述第二引擎模块提供的定义对象和API接口;
所述第二引擎模块包含插件单元和内核单元,
所述插件单元用于在通过NPAPI接口获取移动终端的浏览器的指令后,调用所述内核单元,
所述内核单元用于在被所述插件单元调用后,为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的定义对象和扩展的API接口,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;
所述内核单元包括对象单元,所述对象单元,用于为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的定义对象,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;
所述对象单元包括缓存子单元,在所述缓存子单元中,以主机域名和端口号,或者以地址和端口号组成的域来决定唯一的主机目录,所述主机目录存放该域下涉及到的app cache文件及普通的缓存文件,且以manifest文件的URL为标志来决定一个app cache文件的存储空间。
2.根据权利要求1所述的游戏引擎,其中,所述第二引擎模块通过NPAPI接口和移动终端的浏览器进行交互。
3.根据权利要求1所述的游戏引擎,其中,所述第二引擎模块还包含包壳单元,所述包壳单元用于利用所述内核单元的设置,提供将所述第二引擎模块打包成客户端形式供内容提供商使用的功能。
4.根据权利要求3所述的游戏引擎,其中,所述第二引擎模块的内核单元还包括接口单元,
所述接口单元用于为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的API接口。
5.根据权利要求4所述的游戏引擎,其中,所述第二引擎模块的内核单元的对象单元包括:
画布子单元,用于为所述第一引擎模块提供可调用的Canvas对象,实现HTML5的画布功能;
WebSocket子单元,用于为所述第一引擎模块提供可调用的WebSocket对象,按HTML5标准实现与服务器的通信。
6.根据权利要求5所述的游戏引擎,其中,所述第二引擎模块的内核单元的对象单元还包括以下的一个或多个子单元:
XHR子单元,用于为所述第一引擎模块提供可调用的XHR对象,实现本地和网络数据的读取;
音频子单元,用于为所述第一引擎模块提供可调用的Audio对象,实现音频处理;
本地存储子单元,用于为所述第一引擎模块提供可调用的LocalStorage对象,实现按照域名存储数据;
Cookie子单元,用于为所述第一引擎模块提供可调用的Cookie对象,实现按照域名存储Cookie信息。
7.根据权利要求5所述的游戏引擎,其中,所述第二引擎模块的内核单元的接口单元包括以下的一个或多个接口:
OpenGLES接口,用于提供接口实现图形渲染,被所述画布子单元进行封装实现对渲染性能的加速
媒体播放接口,用于提供接口实现音频播放;
套接字接口,用于提供接口实现网络请求
文本存储接口,用于提供接口实现数据存储。
8.根据权利要求7所述的游戏引擎,其中:
所述画布子单元创建Canvas对象,其中每个Canvas对象维护有画图列表,所述画图列表里面的对象对应屏幕上的元素;
所述OpenGLES接口的缓冲区接收所述Canvas对象维护的画图列表中的元素的填充,再通过GLSurfaceView视图显示渲染的图像。
9.根据权利要求3所述的游戏引擎,其中,所述第二引擎模块的插件单元包括:
获取子单元,用于通过NPAPI接口获取移动终端的浏览器当前运行的上下文;
请求单元,用于利用所述上下文向移动终端操作系统发起调用所述第二引擎模块的内核单元的请求,使得所述移动终端操作系统接收请求后调用所述内核单元。
10.根据权利要求3至9任一项所述的游戏引擎,其中:
所述游戏框架模块具体为JS游戏框架,所述第二引擎模块具体为加速引擎,所述第一引擎模块具体为JS引擎,
所述第二引擎模块中的内核单元具体为X-Canvas内核,所述包壳单元具体为X-Canvas包壳,所述插件单元具体为X-Canvas插件。
11.根据权利要求1所述的游戏引擎,其中,所述app cache文件的存储空间是app cache目录,该app cache目录下还包含app cache index文件,其管理app cache目录下的文件。

说明书全文

一种游戏引擎

[0001] 本专利申请是申请日为2013年7月30日、申请号为CN 201310324724.7、发明名称为“一种游戏引擎”的发明专利申请的分案申请,其在此全部引入作为参考。

技术领域

[0002] 本发明涉及移动网络游戏技术领域,更为具体地,涉及一种游戏引擎。

背景技术

[0003] 网页HTML5的标准已经制定,但各平台对HTML5的支持并不好,存在较为严重的兼容性问题和性能问题,导致HTML5应用一直处于无法大规模推广状态,采用HTML5开发游戏问题更为严重,因为游戏对HTML5的性能要求更高。另一方面,因为HTML5具备跨平台特性和开放性,如果能充分利用HTML5标准,则游戏开发商可以大大降低游戏研发成本和发行成本。对于用户而言,也希望游戏可以随处可玩,游戏的更新迭代速度更快。
[0004] 上述问题的实现都和游戏引擎相关,现有技术中提供的游戏引擎,一般具有以下特点:1)都是自有封装一套API(Application Programming Interface,应用程序编程接口),就是各自定义属于自己的标准。2)面向的开发者是熟悉编译型语言的开发者,例如c/c++或java语言,开发成本比较高。3)并未有提供完整的资源更新方案,需要开发者自己开发。
[0005] 因此,现有手机游戏的游戏引擎,存在平台不兼容、开放程度低、开发复杂等问题。

发明内容

[0006] 鉴于上述,本发明提出了一种游戏引擎,能支持目前HTML5的基本特性,屏蔽平台差异性,方便游戏开发者在手机平台上开发游戏,提高游戏性能和体验。
[0007] 根据本发明的一个方面,提供了一种游戏引擎,包括:游戏框架、第二引擎模块、位于游戏框架模块和第二引擎模块之间的第一引擎模块;所述游戏框架模块,用于存储游戏程序脚本;所述第一引擎模块,用于加载、解析并执行所述游戏框架模块中的游戏程序脚本,在执行过程中调用所述第二引擎模块提供的定义对象和API接口;所述第二引擎模块,用于为所述第一引擎模块提供扩展的定义对象和扩展的API接口,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;其中,所述第二引擎模块通过NPAPI接口和移动终端的浏览器进行交互。
[0008] 所述第二引擎模块包含内核单元、包壳单元和插件单元;所述插件单元,用于在通过NPAPI接口获取移动终端的浏览器的指令后,调用所述内核单元;所述内核单元,用于在被所述插件单元调用后,为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的定义对象和扩展的API接口,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;所述包壳单元,用于利用所述内核单元的设置,提供将所述第二引擎模块打包成客户端形式供内容提供商使用的功能。
[0009] 所述第二引擎模块的内核单元包括对象单元和接口单元;所述对象单元,用于为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的定义对象,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;所述接口单元,用于为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的API接口。
[0010] 所述第二引擎模块的内核单元的对象单元包括:画布子单元,用于为所述第一引擎模块提供可调用的Canvas对象,实现HTML5的画布功能;WebSocket子单元,用于为所述第一引擎模块提供可调用的WebSocket对象,按HTML5标准实现与服务器的通信。
[0011] 所述第二引擎模块的内核单元的对象单元还包括以下的一个或多个子单元:XHR子单元,用于为所述第一引擎模块提供可调用的XHR对象,实现本地和网络数据的读取;音频子单元,用于为所述第一引擎模块提供可调用的Audio对象,实现音频处理;本地存储子单元,用于为所述第一引擎模块提供可调用的LocalStorage对象,实现按照域名存储数据;Cookie子单元,用于为所述第一引擎模块提供可调用的Cookie对象,实现按照域名存储Cookie信息;缓存子单元,用于为所述第一引擎模块提供可调用的ApplicationCache对象,实现存储缓存文件。
[0012] 所述缓存子单元中,以主机域名和端口号,或者以地址和端口号组成的域来决定唯一的主机目录,所述主机目录存放该域下涉及到的app cache文件及普通的缓存文件,且以manifest文件的URL为标志来决定一个app cache文件的存储空间。
[0013] 所述第二引擎模块的内核单元的接口单元包括以下的一个或多个接口:OpenGLES接口,用于提供接口实现图形渲染,被所述画布子单元进行封装实现对渲染性能的加速;媒体播放接口,用于提供接口实现音频播放;套接字接口,用于提供接口实现网络请求;文本存储接口,用于提供接口实现数据存储。
[0014] 所述游戏引擎包括:所述画布子单元创建Canvas对象,其中每个Canvas对象维护有画图列表,所述画图列表里面的对象对应屏幕上的元素;所述OpenGLES接口的缓冲区接收所述Canvas对象维护的画图列表中的元素的填充,再通过GLSurfaceView视图显示渲染的图像。
[0015] 所述第二引擎模块的插件单元包括:获取子单元,用于通过NPAPI接口获取移动终端的浏览器当前运行的上下文;请求单元,用于利用所述上下文向移动终端操作系统发起调用所述第二引擎模块的内核单元的请求,使得所述移动终端操作系统接收请求后调用所述内核单元。
[0016] 所述游戏框架模块具体为JS游戏框架,所述第二引擎模块具体为加速引擎,所述第一引擎模块具体为JS引擎,所述第二引擎模块中的内核单元具体为X-Canvas内核,所述包壳单元具体为X-Canvas包壳,所述插件单元具体为X-Canvas插件。
[0017] 利用上述技术方案,在游戏引擎中,通过新增的第二引擎模块为第一引擎模块提供扩展的定义对象和扩展的API接口,并为游戏程序脚本提供HTML5运行环境,使得在第一引擎模块在游戏程序脚本的执行过程中可以调用第二引擎模块提供的定义对象和API接口,从而克服现有技术的游戏引擎各自封装一套API接口而不兼容的缺陷,实现屏蔽平台差异性,方便游戏开发者在手机平台上开发游戏,提高游戏性能和体验。
[0018] 为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。

附图说明

[0019] 根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中:
[0020] 图1是本发明实施例的游戏引擎的结构示意图;
[0021] 图2是本发明实施例的游戏引擎中的第二引擎模块的结构示意图;
[0022] 图3是本发明实施例的游戏引擎中的第二引擎模块的内核单元的结构示意图。
[0023] 在所有附图中相同的标号指示相似或相应的特征或功能。

具体实施方式

[0024] 下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
[0025] 本发明提出了一种游戏引擎,能支持目前HTML5的基本特性,屏蔽平台差异性,方便游戏开发者在手机平台上开发游戏,提高游戏性能和体验。
[0026] 下面将参照附图描述本发明的各个实施例。
[0027] 图1是本发明实施例的游戏引擎的结构示意图。
[0028] 如图1所示,游戏引擎包括:游戏框架模块、第二引擎模块、位于游戏框架模块和第二引擎模块之间的第一引擎模块,第二引擎模块通过NPAPI(Netscape  Plugin Application Programming Interface,网景插件应用程序编程接口)接口和移动终端的浏览器进行交互。
[0029] 其中,游戏框架模块,用于存储游戏程序脚本;
[0030] 第一引擎模块,用于加载、解析并执行所述游戏框架模块中的游戏程序脚本,在执行过程中调用所述第二引擎模块提供的定义对象和API接口;
[0031] 第二引擎模块,用于为所述第一引擎模块提供扩展的定义对象和扩展的API接口,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境。
[0032] 进一步的,游戏框架模块具体为JS(Javascript)游戏框架,第二引擎模块具体为加速引擎,第一引擎模块具体为JS引擎。加速引擎是用于扩展JS引擎,而游戏框架是运行在JS引擎上面,因此可以说JS引擎是加速引擎和游戏框架两者之间的连接桥梁
[0033] 具体的,游戏框架是被JS引擎加载、解析和执行,因此可以认为游戏框架是运行在JS引擎上面。游戏引擎中是提供一些可选的JS游戏框架,即在游戏引擎可插拔地加入了一些游戏框架。
[0034] 游戏框架模块存储的游戏程序脚本可以分两种,一种是游戏引擎提供的游戏库中的游戏程序脚本(目前提供createjs、quarkjs、box2d等游戏程序脚本),另外一种是游戏逻辑的游戏程序脚本。开发游戏时可以自行引入一些第三方的游戏库,例如CreateJS,QuarkJS,Cocos2D-HTML5等库,这可以给游戏开发提供足够的灵活性。
[0035] 具体的,JS引擎可以进行各种不同操作,包括例如数据类型操作、Runtime(运行时刻)控制、类与对象的创建和维护、函数与脚本执行、字符串操作、错误处理、安全控制、Debug支持等功能。与游戏程序相关的操作则包括:加载、解析并执行游戏框架模块中的游戏程序脚本,并在执行过程中调用第二引擎模块提供的定义对象和API接口。
[0036] 具体的,加速引擎可以提供使用OpenGL(Open Graphics Library)硬件加速实现的HTML5的运行环境,为JS引擎提供扩展的定义对象和扩展的API接口,例Canvas对象和OpenGLES(OpenGL for Embedded Systems)接口等,实现加速HTML5游戏的功能。
[0037] 图2是本发明实施例的游戏引擎中的第二引擎模块的结构示意图。
[0038] 第二引擎模块(加速引擎)是游戏引擎中最重要和关键的部分。如图2所示,第二引擎模块包含内核单元、包壳单元和插件单元。
[0039] 具体的,内核单元指X-Canvas内核、包壳单元指X-Canvas包壳、插件单元指X-Canvas插件。本发明的游戏引擎也称为X-Canvas游戏引擎。
[0040] 其中,插件单元,用于在通过NPAPI接口获取移动终端的浏览器的指令后,调用所述内核单元;
[0041] 内核单元,用于在被所述插件单元调用后,为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的定义对象和扩展的API接口,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;
[0042] 包壳单元,用于利用所述内核单元的设置,提供将所述第二引擎模块打包成客户端形式供内容提供商使用的功能。
[0043] 具体的,包壳单元提供与第二引擎模块相关的jar包和so库,使得内容提供商利用android系统本身的打包工具将所述第二引擎模块打包成客户端形式。
[0044] 进一步的,所述第二引擎模块的插件单元包括:获取子单元和请求单元(图中未示出)。
[0045] 其中,获取子单元,用于通过NPAPI接口获取移动终端的浏览器当前运行的上下文(Context);
[0046] 请求单元,用于利用所述上下文向移动终端操作系统发起调用所述第二引擎模块的内核单元的请求,使得所述移动终端操作系统接收请求后调用所述内核单元。
[0047] 本发明技术方案中,通过插件单元(X-Canvas插件),可以把第二引擎模块(加速引擎)做成一个插件的形式,在浏览器上以一个浏览器插件形式存在,可以直接安装在手机中,这样就可以使游戏引擎中的游戏直接在手机浏览器上运行。
[0048] 图3是本发明实施例的游戏引擎中的第二引擎模块的内核单元的结构示意图。
[0049] 如图3所示,第二引擎模块的内核单元包括对象单元和接口单元。
[0050] 其中,对象单元,用于为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的定义对象,为所述游戏框架模块中的游戏程序脚本提供HTML5运行环境;
[0051] 接口单元,用于为所述第一引擎模块执行所述游戏框架模块中的游戏程序脚本提供扩展的API接口。
[0052] 进一步的,对象单元包括:缓存(ApplicationCache)子单元、本地存储(LocalStorage)子单元、Cookie子单元、XHR(XMLHttpReuequest)子单元、画布(Canvas)子单元、音频(Audio)子单元、Window子单元、WebSocket子单元。其中画布(Canvas)子单元为必选单元,其他为可选单元。
[0053] 其中,画布子单元,用于为所述第一引擎模块提供可调用的Canvas对象,实现HTML5的画布功能。例如Canvas对象中的fillRect,用于在屏幕上面填充矩形,Canvas对象中的strokeRect,用于在屏幕上面画矩形。画布子单元支持多个Canvas绘图。多个Canvas对象的层叠关系根据创建顺序来定,后创建的覆盖在先创建的Canvas对象之上。
[0054] WebSocket子单元,用于为所述第一引擎模块提供可调用的WebSocket对象,按HTML5标准实现与服务器的通信。
[0055] XHR子单元,用于为所述第一引擎模块提供可调用的XHR对象,实现本地和网络数据的读取。例如XHR对象中的onreadystatechange,用于指定当readyState属性改变时的事件处理函数,XHR对象中的readyState,用于返回当前请求的状态。
[0056] 音频子单元,用于为所述第一引擎模块提供可调用的Audio对象,实现音频处理。例如Audio对象中的Load,用于预加载音频,Audio对象中的src,用于设置音频文件路径。
[0057] 本地存储子单元,用于为所述第一引擎模块提供可调用的LocalStorage对象,实现按照域名存储数据。例如LocalStorage对象中的key,是key-value对的key索引。
[0058] Cookie子单元,用于为所述第一引擎模块提供可调用的Cookie对象,实现按照域名存储Cookie信息。Cookie对象具备自动过期功能和在XHR请求的时候会自动带上本地cookie信息。
[0059] 缓存子单元,用于为所述第一引擎模块提供可调用的ApplicationCache对象,实现存储缓存文件。
[0060] Window子单元,用于为所述第一引擎模块提供可调用的Window对象,兼容浏览器的一些接口和调用本地的某些对象或方法。
[0061] 其中,在所述缓存子单元中,是以主机域名和端口号,或者以地址和端口号组成的域来决定唯一的主机目录,所述主机目录存放该域下涉及到的app cache文件及普通的缓存文件,且以manifest文件的URL为标志来决定一个app cache文件的存储空间,即app cache目录。其子目录cache文件目录存放manifest中描述需要进行本地缓存的文件,即manifest文件中cache字段下所列举的文件。app cache目录下还包含app cache index文件,其主要是管理app cache文件目录下的文件。
[0062] 进一步的,接口单元包括以下的一个或多个接口:OpenGLES接口、媒体播放(Media Player)接口、套接字(Socekt)接口、文本存储(File System)接口。
[0063] OpenGLES接口,用于提供接口实现图形渲染,被所述Canvas子单元进行封装实现对渲染性能的加速;
[0064] 媒体播放接口,用于提供接口实现音频播放;
[0065] 套接字接口,用于提供接口实现网络请求;
[0066] 文本存储接口,用于提供接口实现数据存储。
[0067] 结合上述描述的结构,其中,画布子单元创建Canvas对象,其中每个Canvas对象维护有画图列表,所述画图列表里面的对象对应屏幕上的元素,所述OpenGLES接口的缓冲区接收所述Canvas对象维护的画图列表中的元素的填充,再通过GLSurfaceView视图显示渲染的图像。其中,GLSurfaceView是一个视图,用于OpenGLES的渲染。
[0068] 从上述技术方案可以看出,本发明提供的游戏引擎(即X-Canvas游戏引擎)是遵循W3C的HTML5标准接口,在游戏引擎中,通过新增的第二引擎模块为第一引擎模块提供扩展的定义对象和扩展的API接口,并为游戏程序脚本提供HTML5运行环境,使得在第一引擎模块在游戏程序脚本的执行过程中可以调用第二引擎模块提供的定义对象和API接口,从而克服现有技术的游戏引擎各自封装一套API接口而不兼容的缺陷,实现屏蔽平台差异性,方便游戏开发者在手机平台上开发游戏,降低了开发手机游戏的槛,为开发手机游戏提供了一套完整的手机游戏平台解决方案。而且,该游戏引擎不仅可以运行在PC浏览器上,也可以在手机浏览器上面运行、打包成客户端进行发布,并且可以跨Andorid、IOS平台使用。另外,该游戏引擎采用系统的GPU进行加速,大大地提高了游戏的体验。
[0069] 本领域技术人员将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。
[0070] 尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
[0071] 虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈