一种游戏引擎制造技术

技术编号:12258649 阅读:65 留言:0更新日期:2015-10-28 21:03
本发明专利技术实施例公开了一种游戏引擎,包括:3D绘制模块使用Opengl ES驱动层适配重写代码,减少glsl shader的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除条件分支结构;文件访问组件封装KGFOpen以及KGFRead的文件读取方法,并参照fopen和fread的接口参数和使用方法;编译构建模块在Windows环境下使用vc编译,在Android环境下使用Eclipse和gcc编译,在ios环境下使用xcode llvm-gcc进行编译;格式处理模块使用预先制作的工具在编辑器内部对Windows平台、Android平台或ios平台需要的纹理格式进行自动转换发布导出;脚本模块使用脚本导出接口模式,并使用lua虚拟机进行接入。采用本发明专利技术实施例,可以实现游戏引擎的跨平台移植。

【技术实现步骤摘要】

本专利技术涉及电子
,尤其涉及一种游戏引擎
技术介绍
游戏引擎直接控制剧情、关卡、美工、音乐、操作等内容,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。游戏引擎可以用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。然而,目前的游戏引擎如Unity3d、Ureal几乎都是通用型的引擎,但是,定制性不灵活,而且很多特效过于复杂,结构过于庞大,不开源或开源成本很高,不具备有跨平台的特点。
技术实现思路
本专利技术实施例提供一种游戏引擎。可以实现游戏引擎的跨平台移植。本专利技术实施例提供了一种游戏引擎,包括3D绘制模块、文件访问组件、编译构建模块、压缩纹理模块以及脚本模块,其中:所述3D绘制模块,使用Opengl ES驱动层适配重写代码,减少glsl shader的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除条件分支结构;所述文件访问组件,封装KGFOpen以及KGFRead的文件读取方法,并参照fopen和fread的接口参数和使用方法;所述编译构建模块,在Windows环境下使用vc编译,在Android环境下使用Eclipse和gcc编译,在ios环境下使用xcode llvm-gcc进行编译;所述格式处理模块,Windows平台兼容微软的DDS格式、Android平台兼容ETC压缩纹理格式以及ios平台兼容PVRTC压缩纹理格式,并使用预先制作的工具在编辑器内部对所述Windows平台、所述Android平台或所述ios平台需要的纹理格式进行自动转换发布导出;所述脚本模块,使用脚本导出接口模式,并使用lua虚拟机进行接入。其中,所述游戏引擎还包括音效库,所述音效库选用OpenAL库。其中,所述游戏引擎还包括乘法指令集,所述乘法指令集采用ARM的NEON指令集。其中,所述游戏引擎还包括字符编码模块,所述字符编码模块使用UTF-8统一字符编码集并使用asciib编码进行编码和解码。其中,所述游戏引擎还包括字节处理模块,所述游戏引擎导出的引擎数据包括纹理数据、动画数据、mesh网格数据;所述字节处理模块,使用二进制对所述纹理数据、所述动画数据或所述mesh网格数据进行保存,并采用4字节小端字节序对齐的方式对所述纹理数据、所述动画数据或所述mesh网格数据进行预处理。其中,所述游戏引擎还包括网络库组件,所述网络库组件封装客户端socket库,同时采用脚本进行调用。实施本专利技术实施例,KGMobile3D根据不同平台自身特性综合汇集了3D绘制模块使用Opengl ES驱动层适配重写代码,减少glsl shader的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除条件分支结构;文件访问组件封装KGFOpen以及KGFRead的文件读取方法,并参照fopen和fread的接口参数和使用方法;编译构建模块在Windows环境下使用vc编译,在Android环境下使用Eclipse和gcc编译,在ios环境下使用xcode llvm-gcc进行编译;格式处理模块使用预先制作的工具在编辑器内部对Windows平台、Android平台或ios平台需要的纹理格式进行自动转换发布导出;脚本模块使用脚本导出接口模式,并使用lua虚拟机进行接入,完好的实现了覆盖PC和移动端跨平台特性的3D引擎,使得原有3D引擎不仅仅局限于windows平台3D游戏开发的应用,更适应了当下游戏多平台开发的特性。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术提出的一种游戏引擎的第一实施例的结构示意图;图2是本专利技术提出的一种游戏引擎的第二实施例的结构示意图;具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1是本专利技术提出的一种游戏引擎的第一实施例的结构示意图。如图所示,本专利技术实施例中的游戏引擎包括:3D绘制模块101,使用Opengl ES驱动层适配重写代码,减少glsl shader的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除条件分支结构。具体的,原有3D引擎绘制部分的代码采用Opengl ES驱动层适配重写,并且适配移动平台的特性,简化原有绘制流程,去除了复杂的绘制流程,最大程度贴近原有引擎的绘制效果,精简glsl shader的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除复杂的条件分支结构,优化绘制效率。例如:If(condition)    Result=expression0;else    Result=expression1;优化成    Result=condition*expression0+condition*expression1;condition传入0或1文件访问组件102,封装KGFOpen以及KGFRead的文件读取方法,并参照fopen和fread的接口参数和使用方法。具体的,不同平台的读取方法都不一样,引擎封装了统一的KGFOpen,KGFRead等方法,这些方法完全按照C库的接口进行封装模仿fopen和fread等方法的接口参数和使用方法,易于理解和使用,既能从不同平台的文件路径、assets路径加载数据,也能从自定义增量压缩包格式里面直接读取数据,从Api上层接口封装上消除了各平台的差异性。编译构建模块103,在Windows环境下使用vc编译,在Android环境下使用Eclipse和gcc编译,在ios环境下使用xcode llvm-gcc进行编译。具体的,构建了三套跨平台的编译环境,windows环境下使用vc编译,android下使用Eclipse和gcc编译,ios使用xcode llvm-gcc进行编译,同一套引擎代码在三个平台构建了3套编译环境,均能自动编译并链接输出为最终执行文件。格式处理模块104,Windows平台兼容微软的D本文档来自技高网...

【技术保护点】
一种游戏引擎,其特征在于,所述游戏引擎包括3D绘制模块、文件访问组件、编译构建模块、格式处理模块以及脚本模块,其中:所述3D绘制模块,使用Opengl ES驱动层适配重写代码,减少glsl shader的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除条件分支结构;所述文件访问组件,封装KGFOpen以及KGFRead的文件读取方法,并参照fopen和fread的接口参数和使用方法;所述编译构建模块,在Windows环境下使用vc编译,在Android环境下使用Eclipse和gcc编译,在ios环境下使用xcode llvm‑gcc进行编译;所述格式处理模块,Windows平台兼容微软的DDS格式、Android平台兼容ETC压缩纹理格式以及ios平台兼容PVRTC压缩纹理格式,并使用预先制作的工具在编辑器内部对所述Windows平台、所述Android平台或所述ios平台需要的纹理格式进行自动转换发布导出;所述脚本模块,使用脚本导出接口模式,并使用lua虚拟机进行接入。

【技术特征摘要】
1.一种游戏引擎,其特征在于,所述游戏引擎包括3D绘制模块、文件访
问组件、编译构建模块、格式处理模块以及脚本模块,其中:
所述3D绘制模块,使用Opengl ES驱动层适配重写代码,减少glsl shader
的顶点着色器和像素着色器指令,使用0乘和1乘的方式去除条件分支结构;
所述文件访问组件,封装KGFOpen以及KGFRead的文件读取方法,并参
照fopen和fread的接口参数和使用方法;
所述编译构建模块,在Windows环境下使用vc编译,在Android环境下使
用Eclipse和gcc编译,在ios环境下使用xcode llvm-gcc进行编译;
所述格式处理模块,Windows平台兼容微软的DDS格式、Android平台兼
容ETC压缩纹理格式以及ios平台兼容PVRTC压缩纹理格式,并使用预先制作
的工具在编辑器内部对所述Windows平台、所述Android平台或所述ios平台需
要的纹理格式进行自动转换发布导出;
所述脚本模块,使用脚本导出接口模式,并使用lua虚拟机进...

【专利技术属性】
技术研发人员:李侃黄静邹涛杨林
申请(专利权)人:珠海金山网络游戏科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1