论文部分内容阅读
游戏引擎是游戏或一些交互式实时图像应用程序的核心组件,它为了简化游戏开发,将诸多游戏开发工具整合到一个开发环境中。这种介于硬件层与用户界面之间的游戏中间层的封装模式,通过其自身的通用化设计与强大的功能性,为游戏开发者提供更加简易、高效的开发平台,从而产出更多的游戏产品,并为企业从日益激烈的游戏开发中获得更多的效益。 近年来,国内公司开发的引擎多以自用为主,虽然市场上也有很多使用这些引擎开发出来的成功产品,但是如果将其作为通用的商业引擎,尚不成熟。主要是因为自用引擎是游戏的附带产品,很多地方仅仅以满足某个单一项目的需求为目标,而通用的商用引擎则是一个高度专业的独立技术产品,在很多地方会更精雕细琢,精益求精,在兼容性、灵活性、适用性、可靠性上更好。 针对目前游戏开发技术的三个主要趋势:引擎通用化、游戏引擎3D化和游戏引擎开发向跨手机平台发展的主要趋势,考虑Android目前作为市场占有率最高的手机操作系统,必将是开发者和手机运营商们最看好的方向。本文按照通用游戏引擎的设计框架在Android平台上详细设计并实现了一个基于OpenGL ES的3D通用游戏引擎原型系统Android ES3D。论文的主要工作如下: (1)对Android平台上主流开源游戏引擎进行了系统的研究和分析,针对Android ES3D游戏引擎的项目需求,基于Android NDK开发平台设计了ES3D游戏引擎的总体框架。ES3D游戏引擎框架主要包含七个核心组件,分别是图形引擎、事件模块、工具模块、音效模块、网络模块、物理引擎、脚本模块。 (2)基于设计的Android ES3D游戏引擎总体框架,主要实现了其中的图形引擎,包括纹理、光效、摄像头设置、模型动画管理等以及物理引擎和工具引擎。并对实现中的两大难点和关键技术进行了较为深入的研究。 (3)对实现中难点Android ES3D游戏引擎中图形引擎的场景管理模块的地形渲染研究,在手机平台上实现了ROAM算法。 (4)对Android ES3D游戏引擎中物理引擎中实时碰撞检测的进行了研究,在手机平台上采用八叉树算法实现了碰撞检测和响应。采用八叉树碰撞检测算法,在检测过程中,采用逐步精确求交对潜在区域中的每个三角形进行精确的相交检测,最后确定对象是否发生碰撞,已达到实时的碰撞检测效果。 主流的开源游戏引擎以Java作为首选开发语言,而本引擎考虑手机平台的特点,采用了性能更佳,移植性更好的C++语言开发。并且选用Google NDK开发平台,它具有快速,易实现和开发模式简单等特点。本文的游戏引擎方案提升了游戏在手机上的运行效率,便于系统功能的扩展与移植,方便不同平台游戏的移植,具有较好的应用价值。