序言
? 我在诺门大学(Neumont University)教授DirectX和XNA游戏开发课程也有好几年了,然而我总是为自己没能找到适合这些课程的书籍而倍感失落。这门学科有着海量的相关书籍,但却没有一本适合我的课程目标(专门为熟悉C#编程语言的大学生设计的初级游戏开发课程),或者说那些书的内容没有以一种我觉得合适的风格和顺序来呈现。
许多书籍要求事先具备太多的游戏或图形开发领域的预备知识,不然就是假定读者几乎不具备游戏开发之外的相关知识。还有一些书则过分地依赖第三方库,或者以一种让新接触游戏开发的读者违背直觉的顺序来组织书中的内容。
我发现我经常需要从一本书的第3章跳到另一本书的第18章,然后跳回原来的书看第7章和第9章,如此反反复复地跳跃,同时我还需要用自己创作的幻灯片、代码示例和文档来进行衔接。
最后,我决定以我为XNA游戏开发课程所创作的内容为题材写一些能够在课堂上使用的材料。最初我只是打算简单地给学生们写一些讲义和短文,但后来我又意识到这所大学之外的广大读者或许也能够从这些材料中受益。于是我联系了O'Reilly出版社,然后就有了大家手上的这本书。
根据自己在XNA游戏开发方面的教学经验,我能够判断出学生们通常会在哪些方面遇到学习上的障碍,而哪些表达方式又能让学生很容易地理解;此外,我也创造了一种直观的教学方法,能够以合理而容易接受的顺序,循序渐进地呈现书中的内容。这本书就是遵照这样一种顺序,并且以帮助读者充分理解每一个独立的教学主题为目的,来设计书中的所有课程,以及介绍各式各样有关游戏开发的实用概念的。
?
本书为谁而写
? 本书为掌握.Net Framework和C#(或相关技术)基础的读者提供完整的入门基础教程,不要求读者具备XNA或者其它游戏、图形领域的开发经验或知识。
?
本书如何组织
? 本书将带领读者漫步于三个不同的XNA游戏的开发过程,同时向读者介绍XNA游戏开发的相关概念。尽管大多数资料通用于任何可用平台的游戏开发,但第17章和第16章分别专门讲解了Windows Phone 7和Xbox 360游戏主机上的游戏开发。
?
本书的第一部分带领读者了解XNA 4.0的新特性和一个2D游戏的开发过程,下面是组成这个部分的章节:
第1章
带领读者了解XNA 4.0与之前的版本相比有哪些变化。
第2章
简单地介绍XNA,开发XNA游戏需要的工具和XNA Game Stduio 4.0的安装。
第3章
介绍2D精灵、透明度、排序次序、移动、帧率、精灵位图还有动画。
第4章
涵盖键盘、鼠标和Xbox 360手柄的输入处理并实现简单的碰撞检测。
第5章
讨论并实现游戏组件,并把面向对象类层次结构应用到您的游戏设计中。
第6章
介绍跨平台音效制作工具(XACT),以及使用新的简化的音频API为您的游戏(PC、Xbox360、Windows Phone 7)添加声音。
第7章
介绍人工智能学科的本质和人工智能的基础概念,并且在类层次中使用自定义的派生类来为您的精灵实现不同的行为。
第8章
完成2D游戏的最后一步,包括2D文本、分数、添加不同类型的精灵、背景图片、游戏状态和法宝系统。
??
下一个部分将带领读者走进3D PC游戏开发。在这部分的末尾,将对游戏进行调整并最终移植到Xbox 360上。这一部分的章节有:
第9章
讨论坐标系、摄像机和图元的绘制,3D空间中物体的平移、旋转和缩放。另外也将谈到背面消隐和纹理技术。
第10章
介绍3D模型,3D模型在3D空间中的绘制、旋转和移动。
第11章
带领读者实现一个基于向量的第一人称的摄像机;实现前后移动,平移,偏航(yaw),俯仰(pitch)和翻滚(roll)。
第12章
深入研究射击移动中的敌人的代码,创建一个射击目标,在3D空间中移动它,并且用包围球处理3D空间中的碰撞检测;为游戏添加3D准星HUD和音效。
第13章
介绍高级着色语言(HLSL )语法及其实现和在XNA中使用HLSL特效所需要编写的代码;用HLSL实现多种图像处理效果。
第14章
带领读者实现一个用来创造爆炸粒子效果的自定义顶点和粒子。
第15章
微调您的3D游戏,包括启动画面,游戏状态,分数和能力提升功能等。
第16章
带领读者将Xbox 360连接到PC,并将游戏部署到Xbox 360上,另外还探讨了XBox 360和PC上的用户输入与屏幕分辨率的差异。
?
下一个部分将带领读者开发一个完整的Windows Phone 7游戏:
第17章
带领读者开发Windows Phone 7上的新游戏,同时探讨Windows Phone 7开发与其它平台上的开发的关键区别。
?
本书的最后一部分将带领读者用XNA开发一个网络游戏。这一部分只有一章,以之前的所有章节为基础,在开发一个新的XNA游戏的过程中集中展现XNA的网络功能:
第18章
通过分屏功能和网络功能来介绍多人游戏的概念;涵盖了网络体系架构、网络状态、通过信息包进行网络通信和提供游戏玩家服务等主题。
??
最后,在附录中,您将会找到每个章节末尾的测试题的答案。
?
技术支持
我写这本书的目的是帮助读者真正地理解和热爱XNA游戏开发。为此,我将通过我的博客来支持这本书。我的博客地址为:
http://www.aaronreed.com/serenitynow/?(需_翻_墙)。
在这个网站上,您可以找到本书的源代码,和一些XNA相关的内容(当然也有一些非XNA相关的内容)。请自由地在论坛上发表您的疑问、评论甚至是为其它读者解答问题。
?
全书链接:http://item.eachnet.com/prd/1294660392977521_prd.html