《XNA高级编程:Xbox 360和Windows》5-1

第五章编写自己的XNA图像引擎


5.1本章概览


      在本书的第一部分,您学习了 XNA Framework ,使用 SpriteBatch 类渲染 2D 图像,并且做了几个有趣的小游戏。现在,是时候探索更加令人兴奋的 3D 图像编程世界了。制作 3D 游戏比拼装一个 2D 游戏需要更多的工作量,如果没有 3D 图像技术的飞速发展,很多游戏都是不可能完成的。有些游戏也可以是 2D 的,例如即时战略游戏,而且大多数成功的即时战略游戏(例如星际争霸、魔兽争霸、命令与征服、帝国时代等)都证实了 2D 游戏仍然很受欢迎。但如果您看一下射击类游戏,没有 3D 图像的支持它们都是不可能实现的,并且通常图像质量越好、越逼真,游戏也就越好玩。其它一些游戏类型,比如 横板闯关类(beat-'em-ups 、冒险类、体育竞技类等等,也都获益于近几年图像技术的进步。当然,在 10 年或者 20 年前, Pong 以及早期的 Tennis 游戏也都很受欢迎,但它们都无法和今天的体育竞技类游戏相提并论。

      XNA 是一个很棒的快速创建 2D 游戏的框架,即使您是个人,也完全有可能快速鼓捣出一个游戏构思,自己做几张图片或者找人帮您做图片,然后用不了几个星期或者几个月就可以编写出整个游戏。

      但是,大多数游戏开发者都更加热衷于制作 3D 游戏。而且,几乎每个人都常犯一个错误,那就是拿他们自己的游戏创意和那些大的游戏工作室花费好几年才完成的拥有 AAA 头衔的最成功的游戏作品相比较。如果您是个人,您根本不肯能和 EA 出的游戏相竞争,即使您认为他们的游戏还不够好,因为他们拥有超过 100 人的经验丰富的游戏工作室来开发游戏。

      但这都无关紧要,我们大多数人进入游戏开发领域只因为我们喜欢,有时还因为我们相信我们能比其他人做得更好。好的一方面是,虽然制作一个成熟的可以和 AAA 级游戏相竞争的 3D 游戏很困难,但您必须要从某个地方开始,随着我们的不断讲解,步入 3D 编程世界会变得越来越容易。有很多大型网站、学习指南、开发框架和书籍可以快速帮助那些即使是没有什么开发经验的编程人员进入制作 3D 游戏图像的大门。

      既然有了这么多的学习资源,我不会把重点放在讲解诸如数学基础、如何使用矩阵或者其它有关 3D 图像的基础知识等方面。因为对于很多已经了解这些知识的编程人员来说,介绍这些东西会很无聊,而且这也会占用更多的篇幅。就如我在第一章中告诉您的,如果您对 C# 编程没什么经验,那么您应该先从阅读介绍 C# 的书籍开始。如果您真的很想了解有关 3D 图像的基础知识,那么就找本书看看吧。如果您之前有使用 Direct3D 或者 OpenGL 方面的经验,那您应当已经了解这些基础了(希望大多数读者都是这样),就可以开始学习本章的内容了。

      本章仍使用了典型的学习路线,即先写需求,并针对这些需求创建单元测试,然后再深入到每一个需要的新的类的细节中。正如本章标题所说,您的目标是创建自己的图像引擎,并为本书剩余的项目和游戏准备好基础框架。上一章的 Tetris 游戏已经使用了很多有用的辅助类,有些新的图像类要在本章进行重构,另外还会添加几个新的类。重构的意思是,有些类需要重写以满足新的需求。

你可能感兴趣的:(windows)