最近突然对DirectX又有点兴趣(之前有过n次兴趣,都是轻轻碰一下让DirectDraw绘下图就不想弄了),于是就下载了最新的DirectX SDK下来,想看看现在的Managed DirectX(MDX)有什么好入手的地方。结果发现最新的DX SDK也只有MDX 1.1,那么MDX 2.0在哪呢?上网以搜索才发现,原来MDX 2.0的开发计划已经终止而技术支持也将中止,MS推出了XNA这个新项目,是类似MDX是托管的游戏开发框架,并且部分MDX 2.0支持的功能都迁移到XNA中了,看来XNA就是MDX 2.0的后继版本了。
其实之前就知道有XNA这东东,但是没深入了解,和大多数人一样觉得这是一个肤浅的游戏开发引擎,想着用XNA也就是拖动放入简单的游戏元素然后用C#写几句脚本,所以没花时间去了解。现在发觉它是MDX 2.0的后继版本,想着MDX并不是一个肤浅的东西,所以深入了解也好吧,于是搜索了一些专注于XNA有关技术的站点来看看,发现它的创意确实不错,而且目标也很好,只不过很多人误解罢了。
我们来看看XNA官方blog的第一张帖子XNA Then and Now Part One,里面解释了为什么MS要提出XNA这个项目,以及项目的终极目标是什么。XNA开发队伍调查了现在的游戏开发者开发过程中遇到的问题,然后列了一些:
- 游戏开发团队中的大部分都是美工和编剧,但真正有话事权的却是那些宁愿专注于引擎开发的程序员。
- 由于惧怕财务风险而毫无创新。
- 由于长期开发团队精疲力尽兴趣下降(称之为burnout),同时没有足够的毕业生填补空缺。
- 制作游戏如此困难——指编写代码的技术性感觉方面。美工素材如此复杂和混乱让你的C++指针在此毫无发挥的余地。
- 设计一个游戏并不容易。API、开发工具等如此多代码都是大师级程序员在脑袋里写成的。然而很不幸,最好的游戏设计师通常不是最好的程序员。
站在MS的角度来说,如此多的问题实在太不幸了,游戏开发商都保保守守开发一些成功游戏的仿制品,因为这样做财务风险低,收入多少比较容易预测。这样下去MS的XBox360肯定没办法卖,因为没有真正有好创意的游戏。为了解决此困境,MS推出了XNA,期望能够让创意重新变成游戏开发商的关注点,降低创意带来的风险,让MS的平台(Windows和XBox360)上有创意的游戏更多一些。