您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 3D游戏编程入门(C#)
3D游戏编程入门(C#)目录第I部分Microsoft.NET简介第1章游戏开发和托管代码....31.1什么是.NET?......31.2什么是托管代码......51.3使用MicrosoftVisualStudio.NET2003IDE编写代码......51.3.1C#代码.....61.3.2VB.NET代码.....81.4在命令行中编译.NET代码......91.5游戏开发简述......101.6开发人员......101.7游戏开发过程......111.8工具......121.9小结......16第II部分图形和游戏1的介绍第2章策划第一个游戏....192.1提出游戏构想......192.2理解一个3D游戏的需求......212.3游戏规范......242.4小结......26第3章理解示例框架....273.1创建项目......273.2枚举所有设备选项......323.3小结......39第4章在屏幕上显示....404.1创建设备......404.2开始绘图......474.3加载并绘制网格......484.4在场景中添加照相机......514.5小结......54第5章完成代码....555.1理解高分辨率计时器......555.2处理丢失的设备......605.3添加帧速率输出......635.4设计UI界面......655.5设计按钮......725.6小结......75第6章实现用户界面....766.1设计主菜单......766.2插入到游戏引擎中......816.3选择人物(Loopy)..846.4利用新界面更新游戏引擎......916.5小结......95第7章实现玩家和块....967.1编写Player对象......967.2设计块......1047.3小结......110第8章实现级别对象....1118.1实现级别......1118.2控制玩家的移动......1168.3处理级别的更新......1198.4小结......123第9章综合应用....1249.1包含玩家......1249.2挂钩级别......1289.3实现退出界面......1329.4结束工作......1359.5小结......140第III部分基本的数学规则第10章3D数学快速入门....14510.12D与3D....14510.2使用3D点......14710.3操作3D对象......14810.3.1平移(移动)对象.....14910.3.2缩放.....14910.3.3旋转.....15010.3.4坐标系.....15010.4数学结构......15110.5向量......15110.6矩阵......15410.7小结......157第IV部分间接图形、对等网、游戏2第11章开始创建游戏....16111.1Tankers——下一个游戏构想......16111.2创建Tankers项目......16311.3项目的图形绘制......16911.4为纹理构建对象池......17111.5小结......173第12章开发更先进的用户界面....17412.1使用Blockers的基类(Base类)..17412.2添加新的基类......17912.3实现主界面......18212.4利用用户界面绘制3D模型......18912.5小结......193第13章绘制真实的坦克....19413.1理解网格层次结构......19413.2加载坦克层次结构......19713.3绘制网格层次......19913.4操作坦克......20113.5坦克的属性......20413.6创建照相机类......20713.7小结......210第14章天空?级别?玩家!....21114.1没有天空的世界将是黑色的世界......21114.2有了一个天空,但坦克不能驱动到那里......21414.3控制坦克......21614.4IMoveableObject接口......22514.5基本碰撞检测......23114.6小结......234第15章准备,瞄准,开火!....23515.1实现Ammunition类......23515.2Bullets集合......24215.3完成玩家......24315.4添加声音......24515.5小结......248第16章避免单人游戏的枯燥....24916.1使用DirectPlay...24916.2创建会话......25516.3加入会话......25716.4事件处理程序......25816.5发送及接收数据......26016.6小结......265第17章完成Tankers游戏....26617.1插入到游戏引擎中......26617.2绘制游戏......27217.3小结......275第V部分高级绘图、客户/服务器网络和游戏3第18章添加特殊效果....27918.1实现基本粒子系统......27918.2绘制粒子系统......28718.3将各部分连接到一起......29018.4小结......292第19章构建自己的游戏....29319.1阐明思想......29319.2创建自己的项目......29419.3设计用户界面......30019.4小结......305第20章可编程流水线....30620.1定义可编程流水线......30620.2使用HLSL...30720.3编写VertexShader..30920.4使用着色增加逼真度......31420.5添加Pixelshader..31520.6小结......317第21章控制细节的级别....31821.1简化网格......31821.2使用简化的网格......32221.3使用渐进网格控制细节的级别......32321.4小结......324第22章使用绘图目标创建特效....32522.1绘制跑道和多辆卡丁车......32522.2创建绘图目标和表面......33122.3将场景绘制到绘图目标......33322.4演示后视镜......33422.5小结......335第23章理解高级渲染语言....33623.1理解老的shader模型的限制......33623.2添加卡丁车镜面高亮......33723.3逐pixel镜面高亮......34023.4小结......343第24章关于性能的注意事项....34424.1事件模型和ManagedDirectX....34424.2生成本机程序集......34524.3Boxing恶梦......34624.4ManagedDirectX的速度......34824.5理解方法的开销......34924.6小结......350第VI部分附录附录A开发级别创建器....353成为游戏开发人员的条件我所遇到的每一个开发人员都至少在某一段时间想成为一个游戏开发人员。对于很多人来说,视频游戏不只是空闲时的一种爱好,他们完全被游戏所吸引。人们沉浸在这些虚拟世界中,常常梦想由自己创建如此神奇的天地。不要被美丽的图形、奇妙的故事情节和感人悦耳的音乐所愚弄,编写游戏是非常困难的工作,只有某些特定的开发人员才能够获得成功。除了所需要的技术天赋之外,一个优秀的游戏开发人员应当拥有其他一些技能,例如,您首先是一个游戏爱好者。如果不是游戏爱好者,则不可能编写出伟大的游戏,这一条件使得游戏开发工作更具有挑战性。成为游戏开发人员确实不是一件容易的事情。如果没有经验,则不会被游戏开发公司聘用,并且当没有公司聘用时,将更难以获得经验。当前只有少量的课程以及某些学校专注于讲授游戏的开发。但是,入门的最好方式是制作一个样片(demoreel)。它能向您未来的老板展示您的能力和处理事情的方式。通过本书,您将制作出一个引人注目的样片。读者对象我常常被问到:“为什么每个人都想使用.NETFramework编写游戏程序?”。其他的问题包括:“.NETFramework不是只用于Web服务器应用程序的吗?”,“它不是很慢吗?”,等等。对于游戏开发人员(或者未来的游戏开发人员)来说,这些都是很重要的问题,但他们误解了.NETFramework。.NETFramework不是最新的Web服务器版本,也不是任何服务器组件的扩展。当然能够使用.NETFramework创建强大的Web服务器应用程序,但是,这并不是它们的全部功能。.NETFramework包括一种功能强大的客户端应用程序编程接口(API)以及ManagedDirectX,实际上.NET开发人员需要掌握整个DirectXAPI。利用它能够编写很多新的应用程序,包括游戏。如果认为.NETFramework只能够编写服务器应用程序,则显得有一点单纯。您也可以利用它创建复杂的客户端应用程序。关于.NET的性能问题仍然存在,这些问题也很难简单描述。当引入一门“新的”语言或者运行库时,开发人员在采用之前,通常比较犹豫。不久以前,很多游戏仍然是采用汇编语言编写的,因为游戏开发人员不相信C或者C++语言足够快。.NETFramework也遵循这个规则。在证明.NETFramework的性能之前,游戏开发人员都会以一种怀疑的眼光看待它。在本书中,大量的游戏是使用.NET运行库开发的。事实胜于雄辩,与其喋喋不休地讨论.NET运行库的性能有多好,还不如让本书中一些真实的游戏来证明这一点。为什么使用.NETFramework任何曾经编写过Windows程序的人都(无论是否使用.NETFramework)能够认识到,即使使用Win32API编写简单的Windows应用程序都比较困难。设计.NETFramework的目的是提供一种较简单的方式来执行在Windows程序中一些常见的事情,并且为普通的开发人员自动处理很多问题,例如内存的管理。利用.NETFramework,开发人员可以省去很多麻烦的任务,例如花费三天的时间寻找一个内存泄漏bug,他们可以将一些功能直接添加到正在编写的游戏里面。很多情况下,从游戏中删除某些好的特性是因为需要花费大量的时间解决问题,而这些问题.NETFramework已经为您解决。.NETFramework的另外一个令人感兴趣的特性是语言的中立性。只要所使用的功能兼容公共语言规范(CommonLanguageSpecification,CLS),则可以采用任何能够使用CLS兼容功能的语言。过去,VisualBasic开发人员转向使用严格的C++进行编码时,可能比较困难。现在,VisualBasic.NET开发人员能够较容易的转向C#,因为这两种语言之间仅存在较小的语法差别。本书中的代码是使用C#编写的。本书的目的编写本书的目的是为了满足游戏开发群体的需求,他们缺少关于本书主题方面的信息。由于不能找到所需要的信息,太多可能成为优秀游戏开发人员的程序员选择了退出。目前市场上的多数游戏开发书籍是关于2D图形的,它们是比较好的起点,但现在编写的多数游戏几乎全是3D图形的,并且现在的游戏爱好者也希望如此。并不是不需要继续编写2D游戏,但是如果那是游戏开发人员所能够做的所有,则他所做的可能毫无用处。本书并不教导您如何去编写一个价值数百万美元的游戏。而是给出所有的工具和信息,让读者自己学会如何开发3D游戏。在阅读本书的过程中,将实现两个完整的3D游戏,阅读完本书后,读者将能够设计并实现自己的3D游戏,以使自己成为一名优秀的游戏开发人员。本书中最后的游戏将留给读者作为一个练习。作者简介TomMiller是ManagedDirectXAPI的设计师和首席开发人员。自1997年开始,他工作于Microsoft公司。他最初在VisualBasic组工作,后来他喜爱上了游戏和游戏编程,因此进入了DirectX组。自1999年
本文标题:3D游戏编程入门(C#)
链接地址:https://www.777doc.com/doc-5398951 .html