§8.0概览
上几章编写游戏引擎挺有趣,那么下一个游戏是什么呢?别担心现在你将遇到一个真正酷的游戏:Rocket Commander。最初版本是在2006年3月发布在www.coding4fun.de网站上,那时Visual Studio 2005也在德国推出,一个月后被试玩了几千次后来英文版的视频教程也出现了,并有了两个MOD版本。半年后,在线试玩达十万次,离线试玩更多,更多的MOD版本被制作出来。游戏引擎被证明很可靠,有两个商业游戏也采用了Rocket Commander游戏引擎,它们是:Pizza Commander 和Rocket Racer。
Rocket Commander游戏和源代码是免费下载的,也鼓励你修改它并由此制作自己的游戏。我收到很多第一次学习C#编程的人们寄来的电子邮件,告诉我他们通过学习coding4fun英文和德文网站上的源代码和视频教程,在很短时间内制作出了自己的引擎和游戏。
可以说Rocket Commander游戏是成功的。我没有因此变得富有但出了名。当2006年12月XNA Game Studio Express发布后,我又开始制作Rocket Commander的XNA版本,让它在Xbox 360上也能玩到。XNA版本性能很好,比老版本运行得更好,即使在HDTV分辨率(1920×1080,希望我也能有这样一个显示器或电视)下渲染几千个高细节的小行星模型也没出现任何问题。新版本的最大改进是支持多核,这对今天的CPU和X360都是很重要的。游戏在另一个CPU内核中执行一个额外的线程去计算物理效果、碰撞检测等,而不占用渲染线程因为这个线程总是忙于将数据传递给GPU。
在进入Rocket Commander之前,先要学习Post-Screen Shader,这也是Rocket Commander引擎和物理效果(关于物理效果的更多知识可参见第13章)。3D物体shader渲染的大部分知识前面已经学习过了,如果你对游戏逻辑感兴趣,可参见源码和Rocket Commander视频教程。
本书的其余部分当然仍要用到XnaGraphicEngine,深入优化渲染系统或物理效果的改进将在以后的项目中用到。在接下来的几个游戏中,包括Rocket Commander,都用到了本章要介绍的Pre-Screen和Post-Screen Shader。
Pre-Screen Shader在3D场景被渲染前执行,让你能渲染贴图、天空盒、背景效果等,这个shader是很容易的。
Post-Screen Shader复杂得多,它在渲染过程的最后被执行,将整个场景作为一个贴图,在shader中经过几个步骤的调整,渲染到目标,将最终效果显示在屏幕上。获得正确的渲染目标并不容易,但一旦成功你就能容易地插入更多的Post-Screen Shader。不要滥用发光和运动模糊效果,这些效果虽然酷,但过度使用不会让你的游戏变得更好。你应确保Post-Screen Shader运行得尽可能快,因为在高分辨情况下会严重影响性能,特别是当你用5个以上的pass去调整屏幕上的每个像素的时候。
发布时间:2008/9/19 下午2:51:18 阅读次数:5316