1、3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 1 页 共 33 页 3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 【 摘要 】 视频游戏产业在娱乐业所占的比例越来越大,根据美国去年的调查显示, 2009 至2010 年美国的电子游戏产业的营业额已经超过了好莱坞的电影票房收入。可以看出这个市场有着巨大的潜力,当然在我国也不例外。但是由于种种已知原因,这个行业在我国还处于比较落后的局面,缺乏各种核心的技术,尤其是当游戏引擎 这种集软件行业顶尖智慧于一身的开发形式面世后,大大加速了各种游戏的开发效率。而大部分的游戏引擎技术都掌握在欧美手
2、里,这种软件的开 发难度又不亚于操作系统的编写难度,几家核心游戏引擎的开发商也因此大大的赚了个盆丰钵满。既然要为了这个远大的目标而奋斗,一个基于 DirectX技术所开发的 3D 游戏实验性项目便成为了我这次的选题 【 关键词 】 游戏引擎;图形学;自主开发 DirectX 1 引言 1.1 现今游戏市场背景 从某种意义上来说,电子游戏这的开发市场主要以欧美一些主流游戏开发商为主,包括了市面上现在流行的单机或网络游戏都是如此,国内市场鲜有沾光。造成这种局面的原因比较复杂,一是国内在计算机专业领域起步非常晚,尤其是计算机娱乐和多媒体这个领域更是如此, 二是国内的游戏市场始终打不开局面。在 PC
3、平台上的单机游戏正热火朝天的时候,国内其实也有点这种乘胜追击的势头,比如当年以仙剑为主的一系列武侠 RPG 游戏也给了我们这一代人不少少年时候的美好回忆。可惜当时国内的单机游戏市场黯淡无光的主要原因是因为被盗版这个始终挥之不去的毒瘤给毁了,国内游戏制作人只能看着国外的同行们一个一个的成为百万富翁,而自己却只能改行或者默默的成为角落里的角色而暗自悲哀。可到了网游盛行的年代,虽然制作以及技术核心以国外为主的局面仍然没有大的改观,但是国内网游制作商以国内玩家这个特殊的游戏群体, 以及其巨大的市场潜在价值为基础,以投机取巧的商业运营方式,还是能在这个大蛋糕上赚得一部分份额的。 1.2 解决的办法 但是
4、问题始终是问题,不能因为其能赚钱而忽略了国内游戏制作商缺乏核心技术的巨大漏洞。如果说现在的国内游戏市场靠着大部分休闲 /非核心玩家的大量涌入的道具收费方式得意谋取利润的话,那么到了若干年后,主流游戏玩家们成长为核心游戏玩家,他们追求游戏质量,游戏可玩性,而不是现今的泡菜游戏博一一乐的游戏理念,那么这种打一枪换一个3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 2 页 共 33 页 地方的游戏运营方式和理念迟早都是要被淘汰在历史之中的。所以,要培养国内自己的 核心游戏开发团队和游戏人才输出现在来说是一个非常有前瞻性并且大胆的人才投资方向。 1.3 DirectX
5、的优势 DirectX 在过去的数十载中已经逐步稳固的进化为游戏开发者们在微软的 Windows 平台上开发游戏的首选开发接口。每一代的 DirectX 都带来为新的硬件提供的图形加速支持,使得游戏开发人员能以惊人的速度前进着。 图 1 利用 DirectX 制作的逼真的游戏场景 DirectX 有着多种开发接口, Direct 3D 是基于 HAL 硬件加速的图形接口, DirectSound是声音接口, DirectInput 可以用与微软自家的游戏机 Xbox 的输入系统等等。 DirectX 很底层,但是也很强大,利用它几乎可以制作所以令人乍舌的视觉效果和性能卓越的精彩游戏。而且微软也
6、在不断的更新着 DirectX,使它支持更多的特效,更多的功能, 更新的软硬件架构。在推动了游戏发展的同时,也成为了硬件市场发展的强心针,在为玩家带来了快乐的同时,也为商家带来了更多利润。 2 本毕业设计所开发的游戏 2.1 第三人称跟随视角类游戏 3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 3 页 共 33 页 图 2 著名的 TPS 战争机器 TPS(第三人称射击)游戏是我个人比较喜欢的类型,第三人称跟随视角的游 戏一般比较适合做 ARPG 或者 MMORPG 游戏,玩家的视角被固定在自己的角色身后,这样可以随时看到自己的人物的装扮,以产生一种满足感。相
7、对于第一人称射击类游戏来说,可以看到自己身边和身后的一些状况, 玩家能观察到自己角色流畅的动作,增加了游戏整体的流畅感与爽快感。 对于快节奏的射击类游戏来说也是相当重要的环节。而且很重要的一点,第三人称跟随视角的动作类游戏不容易使有 3D 眩晕症的玩家头晕。所以第三人称视角适合用于做 ARPG, MMORPG,TPS 这几类游戏,也使得越来越多的网游厂商为了吸引更多核心 /非核心玩家而采取第 三人称视角,例如魔兽世界等游戏。 图 3 著名网游魔兽世界截图 3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 4 页 共 33 页 图 4 游戏截图 2.2 游戏简介 图
8、 5 游戏失败画面 游戏操作很简单,用只要用键盘就应付所有操作 W 向正前方前进 S 向后方后退 A 向左平移 3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 5 页 共 33 页 D 向右平移 方向上 向上爬升 方向下 向下下降 方向左 向左旋转 方向右 向右旋转 空格 开炮 游戏方式就是通过移动和旋转躲避敌人的子弹,然后向敌人开火击落他们。当击中敌机的时候敌机会死亡。你一共有 4 格生命值,当生命值被耗光时游戏结束。 3 具体设计部分 3.1 DirectX SDK 的安装与开发环境配置 开发环境 visual Studio 2010 图形界面接口 Dire
9、ct SDK 开发包 (March 2009 #endif DXUTSetCallbackDeviceCreated( OnCreateDevice ); DXUTSetCallbackDeviceReset( OnResetDevice ); DXUTSetCallbackDeviceLost( OnLostDevice ); DXUTSetCallbackDeviceDestroyed( OnDestroyDevice ); DXUTSetCallbackMsgProc( MsgProc ); DXUTSetCallbackKeyboard( KeyboardProc ); DXUTSet
10、CallbackFrameRender( OnFrameRender ); DXUTSetCallbackFrameMove( OnFrameMove ); DXUTSetCursorSettings( true, true ); InitApp(); DXUTInit( true, true, true ); 3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 9 页 共 33 页 DXUTCreateWindow( L“NewGame“ ); DXUTCreateDevice( D3DADAPTER_DEFAULT, false, 0, 0, IsDeviceA
11、cceptable, ModifyDeviceSettings ); DXUTMainLoop(); return DXUTGetExitCode(); DXUT 框架有着许多它自己的很好的特性也是我使用它的一大原因。其中支持一些DirectX 自定义的控件得以在制作游戏时可以使用一些很方便的比如按钮,滑动条,文本框,下拉框这 样的操作。 为了支持控件,需要添加一个回调函数 OnGUIEvent();函数原型如下 void CALLBACK OnGUIEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserC
12、ontext ) 图 10 控件使用效果图 使用控件后,可以在游戏内添加按钮,以完全可视化的操作方式来设计游戏的 UI 界面,让交互变得不再生硬。 3D 游戏设计与开发 基于 DXUT 应用程序框架的 DirectX 开发 第 10 页 共 33 页 图 11 DXUT 即时文本效果 3.3 程序逻辑 程序从主函数入口进入,第一部先初始 化全局变量 : 检查设备可用性 : bool CALLBACK IsD3D9DeviceAcceptable( D3DCAPS9* pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, bool bWindowed, void* pUserContext ) 接着把当前设备修改为默认设备,此函数也为回调函数 : bool CALLBACK ModifyDeviceSettings( DXUTDeviceSettings* pDeviceSettings, void* pUserContext ) 创建设备,如切换全屏,或者其他属性时调用此函数来设置设备属性。在此创建的资源在 OnDestroyDevice()函数中销毁 : HRESULT CALLBACK OnD3D9CreateDevice( IDirect3DDevice9* pd3dDevice,
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。