本发明专利技术旨在打破游戏产品的封闭性,以内嵌技术为基础,为游戏提供开放式的内置平台。游戏内置平台的本质是实现游戏与外部应用程序的通道,基于这个平台能够让外部开发者以第三方身份为游戏开发更多扩展功能。从技术模型上来说,游戏内置平台是基于插件式的管理模型,根据插件规范进行配置并开发相应业务逻辑模块。本发明专利技术的游戏内置平台适用于所有的具有客户端的网络游戏,能够自动监测目标游戏的启动,并把内置平台注入到游戏中,然后通过插件管理器加载各项已配置的功能插件。
【技术实现步骤摘要】
本专利技术是一种能够在游戏环境植入外部应用程序的方法。
技术介绍
当前网络游戏是互联网各细分行业中的领头羊,经历10余年的快速发展,持续引领网民的大众化娱乐消费需求。当前网络游戏的研发也进入高速发展阶段,从最初的每年只发布2 3款新游戏到现在平均每天发布1款新游戏。网络游戏数量的剧增,大大的增加了网民娱乐的选择性,然而从产品角度也带来了一系列问题。其一,每一款游戏的所有组件、服务例如注册、登陆、支付等都是独立开发,不但耗费时间也大大增加研发成本;其二, 每款游戏的所有组件独立研发带来同一团队公司的产品无法形成一体化的服务模式,资源无法统一协调;其三,众多游戏玩家的附属需求难以实现,例如语聊、截图、录像、即时通讯、 浏览器等,绝大部分研发团队难以完全实现为玩家提供这些服务。而从研发角度来说,游戏本身又是一个封闭的系统,外部开发者难以为游戏开发插件或模块,这就游戏产品本身的封闭性。
技术实现思路
本专利技术旨在打破游戏产品的封闭性,以内嵌技术为基础,为游戏提供开放式的内置平台。游戏内置平台的本质是实现游戏与外部应用程序的通道,基于这个平台能够让外部开发者以第三方身份为游戏开发更多扩展功能。从技术模型上来说,游戏内置平台是基于插件式的管理模型,根据插件规范进行配置并开发相应业务逻辑模块。本专利技术的游戏内置平台适用于所有的具有客户端的网络游戏,能够自动监测目标游戏的启动,并把内置平台注入到游戏中,然后通过插件管理器加载各项已配置的功能插件。附图说明图1是本专利技术开放式游戏内置平台的整体架构图;图2是本专利技术开放式游戏内置平台中挂接引擎的功能原理具体实施例方式本专利技术基于插件式管理模型实现游戏内置平台,破除游戏产品技术本身的封闭性,能够从第三方角度为游戏提供更多扩展功能。游戏内置平台的整体架构如图1所示。本专利技术游戏内置平台核心包括5个部分游戏监测引擎、事件挂接引擎、内嵌渲染、插件管理器、插件与规范。(1)游戏监测引擎游戏监测引擎的作用是监测游戏的启动与结束。当应用程序启动时获取进程名, 通过把该进程名称与预存游戏进程名列表进行比较,可以确定是否游戏进程,且可以确定是什么游戏。对于进程启动与结束的监测可以使用全局钩子技术实现。游戏监测引擎的另外一个作用是,当游戏启动时负责把游戏内置平台模块内嵌到游戏中,当游戏结束时把游戏内置平台从游戏中卸载。全局钩子技术能够捕获所有进程的启动与结束事件,游戏监测引擎只需要在捕获到启动与结束事件时判定该事件是否发生在游戏进程即可。当游戏启动并被截获事件后,游戏监测引擎就会把游戏内置平台模块内嵌到游戏中。(2)事件挂接引擎当游戏内置平台模块进入到游戏进程后,首先就需要挂接各类事件,便于在后续传递给插件管理器并进行相应派发,实现对插件功能的驱动。要在游戏中显示各项插件UI, 需要依赖挂接图形渲染引擎;插件功能的实现则需要能够接收用户的鼠标键盘消息;而为使插件功能的正常执行还需要拦截一些功能事件。图2就是挂接引擎的功能原理图。游戏内置平台需要挂接4部分事件>图形渲染事件挂接图形渲染引擎,拦截图形渲染事件是为能够实现内嵌渲染,当游戏运行时随着主线程的消息循环会不断触发渲染事件用于实现游戏界面渲染。 渲染事件分为五种创建设备、销毁设备、渲染、设备重置、设备丢失。根据渲染引擎的不同,拦截方法也不同。对于⑶I类型游戏,只需要拦截BeginPaint和EndPaint这两个API接口即可;对于OpenGL类型游戏,需要拦截SwapBuffer接口 ;对于DirectX类型游戏,需要截取 IDirect3DDevice9 的 TestCooperativeLevel、Reset、Present 接口 以及 IDirect3DSwapChain9 白勺 Present 。>消息事件指对于游戏窗体消息处理过程的拦截,通aktWindowLong设置窗体消息处理新过程,替换原消息处理过程。>操作事件拦截用户的鼠标、键盘、手柄的操作,用于实现对插件功能的驱动。>其他功能事件改变窗体大小的事件、输入法事件、调节分辨率等。(3)内嵌渲染通过本专利技术游戏内置平台中的事件挂接引擎,已经拦截到图形渲染事件,那么就表明两点其一,渲染时机,每次需要渲染时就能得到通知;其二,渲染设备,对于同一个游戏渲染设备是相同的。由于各插件本身并不实现UI渲染,只实现插件功能业务逻辑,UI部分都是由内置平台本身内部实现。因而要把各项插件的图形渲染到游戏界面,首先要把插件UI转化为位图,因而不同插件的UI是一样的,都是位图。这样对于游戏内置平台来说,只需要针对不同的渲染引擎实现位图贴图功能即可实现插件UI在游戏中的内嵌渲染。对于GDI、0penGL类型的游戏,采用⑶I贴图方式即可。对于DirectX、DDraw类型的游戏,则需要为插件UI建立动态纹理,并把UI位图数据更新到动态纹理,最后才把该动态纹理渲染到游戏界面。(4)插件管理器插件管理器的作用是组织与管理各项插件。在Windows桌面环境,系统对于各个应用程序进行管理,确保同一时刻仅有一个窗口处于激活状态,各种设备输入消息都会派发到处于激活状态的窗口。游戏内置平台是通过强制手段把应用程序内嵌到游戏的,因而对于游戏环境而言原本并没有窗体管理这个概念,为实现对各项插件的管理,就需要实现插件管理器,以便维护窗口焦点状态以及各项参数,用于进行各项事件派发。插件管理器,首先维护一个插件链表,处于链表头的插件表示处于激活状态。当焦点改变时,需要调整链表顺序。对于图形渲染事件,确保派发给每一个插件;对于消息、操作事件,根据插件链表依次进行派发,直到有一个插件处理为止。(5)插件与规范为确保游戏内置平台的插件开发尽量简单,在插件中只包含目标功能的业务逻辑,而UI的渲染都是由内置平台本身内部实现。为使插件管理器能够识别插件,在应用之前需要对插件进行相关配置,包括界面大小、问题、UI元素、功能参数等,这些即为插件规范。本专利技术并不限定此规范的严格定义, 按照实际应用需求定义即可。权利要求1.开放式的游戏内置平台,其特征在于,能够自动监测游戏的启动并内嵌到游戏中,通过插件管理器加载各项已配置的功能插件。游戏内置平台被加载到游戏中后,挂接各类事件,便于在后续传递给插件管理器并进行相应派发,实现对插件功能的驱动。2.根据权利1所述的开放式的游戏内置平台,其特征在于,采用插件式的管理模型,能够让外部开发者以第三方身份为游戏开发更多扩展功能,而不需要游戏开发团队从代码级别的接入。3.根据权利1所述的开放式的游戏内置平台,其特征在于,适用于所有的具有客户端的网络游戏,能够自动监测游戏的启动并内嵌到游戏中。4.根据权利1所述的开放式的游戏内置平台,其特征在于,游戏内置平台内嵌到游戏后,至少挂接3类事件图形渲染事件、窗体消息事件、用户的鼠标、键盘、手柄等操作事件。5.根据权利1所述的开放式的游戏内置平台,其特征在于,能够让第三方功能组件的界面在游戏中实现渲染。6.根据权利1所述的开放式的游戏内置平台,其特征在于,所有操作仅通过挂接底层接口实现,不对游戏主程序作任何修改。7.根据权利4所述的开放式的游戏内置平台,图形渲染事件是指基于⑶I、DirectX, DDraw、OpenGL这4类渲染引擎的应用程序本文档来自技高网...
【技术保护点】
1.开放式的游戏内置平台,其特征在于,能够自动监测游戏的启动并内嵌到游戏中,通过插件管理器加载各项已配置的功能插件。游戏内置平台被加载到游戏中后,挂接各类事件,便于在后续传递给插件管理器并进行相应派发,实现对插件功能的驱动。
【技术特征摘要】
【专利技术属性】
技术研发人员:张静盛,
申请(专利权)人:张静盛,
类型:发明
国别省市:31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。