欢迎来到天天文库
浏览记录
ID:31359176
大小:112.00 KB
页数:9页
时间:2019-01-09
《基于c++和directx技术的3d 游戏引擎开发》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于C++和DirectX技术的3D游戏引擎开发 摘要:如今的电子游戏风靡世界,无论什么大型的游戏都是基于游戏引擎设计和开发出来的。该文对游戏引擎的各个功能进行了详细的阐述,并使用C++程序设计语言实现了游戏引擎中内存池管理、文件管理、图形控制系统、渲染器、物理系统、媒体系统、输入控制系统等主要功能。 关键词:C++;DirectX;游戏引擎 中图分类号:TP311文献标识码:A文章编号:1009-3044(2015)27-0064-03 1游戏引擎概述 1.1什么是游戏引擎 电子游戏中玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直
2、接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。简单地说,引擎就是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等。 1.2游戏引擎介绍 游戏引擎是负责与系统底层联络的一套程序规范,游戏的效果很大程度取决于游戏引擎的好坏。一款好的游戏引擎所带来的画面冲击感和游戏流畅度,对于一个游戏的生命周期来说是至关重要的。 1.3目前主流游戏引擎简介9 CryEngine由德国Crytek开发,主要的游戏产品是《孤岛危机》,《孤岛危机:弹头》,《蓝色火星》
3、等。Gamebryo由NumericalDesignLimited与EmergentGameTechnologies公司开发,主要的游戏产品是《上古卷轴Ⅳ》,《辐射3》,《魔界2》等。用BigWorld引擎制作的游戏主要有《北斗神拳OL》,《天下2》,《星门世界》,《三国群英传online2》,《传世西游》,《峥嵘天下》,《格兰蒂亚OL》,《鬼吹灯OL》等。此外还有EpicGames公司的UnrealEngine、CriterionSoftware公司的RenderWare以及开源免费的Ogre引擎等。 2游戏引擎各模块介绍 游戏引擎一般应包含以下系统:渲染引
4、擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、人工智能、网络引擎以及场景管理。 2.1渲染器 在Windows平台下的渲染器主要就是DirectX3D。DirectX是一种应用程序接口(API),是计算机计算图形的一种规则。它可以让Windows为平台的游戏或多媒体程序获得更高的执行效率,在这个规则中大量包含着现实实例的抽象集合,意味着它具有强大的灵活性和多态性。然而其抽象主要表现在参数的自定义和运算结构的随意组合,但其运算结构的坚固(独特/固定的运算规则)也使其具有很强的稳定性。DirectX加强3D图形和声音效果
5、,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。9 2.2物理引擎 目前在游戏里被大量普遍应用的物理引擎有两种,分别是Ageia开发的PhysX以及Havok的Havok系列引擎。 PhysX是原AGEIA公司开发的一套物理运算引擎,主要竞争对手是Havok。同Havok一样,Physx也可运用在Xbox360,Playstation3,PC,Mac等多种平台之上。Physx的另外一个优势是可以运用独立的浮点处理器(包括独立的物理加速卡和GPU)进行更为复杂的运算效果,同时减轻CP
6、U的计算负担。Havok成立于1998年,主要为游戏开发商提供物理仿真技术,从而使对象能够以更加真实的状态展现。 2.3音频引擎 目前主流的音频引擎为FMOD。声音系统是为游戏开发者准备的革命性音频引擎。采用了FMOD作为音频引擎的游戏包括FarCry(孤岛惊魂)、TomClancy'sGhostRecon(幽灵行动),甚至著名的WorldOfWarcraft(魔兽争霸)等。 2.4脚本引擎 主流的脚本语言有perl,lua,ruby。游戏中一般使用的脚本语言是lua,因为lua体积小、开源、执行速度快,语法也比较简单。例如魔兽争霸用的脚本就是lua,网游
7、中的任务也一般是lua。 2.5人工智能9 人工智能就其本质而言,是对人的思维的信息过程的模拟。人工智能是一门前沿交叉学科,属于自然科学和社会学科的交叉。网游中用到的并不多,一般就应用在怪物发现玩家在附近就主动攻击等场景中,在格斗类游戏中,就是对玩家出招,进行相应的反击操作。 2.6网络引擎 网络引擎主要职责是负责数据传输,保证数据的稳定性。ace是一个比较有名的开源网络通讯库,而且跨平台。 2.7场景管理 场景管理是对数据进行有序的组织和管理。现在的游戏动不动就10G以上,如果没有一个有效的数据管理就不行了,如何在适当时候加载相应资源,一些资源不需要
8、了,就从内
此文档下载收益归作者所有