2007年10月26日

关于XNA

在这里大概讲述一下什么是XNA,让大家对它有个初步的了解。好了,废话不多说,先来看看吧。
让我们先回来DOS时代。那个时候写一些游戏、图形演示、和类似的东西,程序员必须写一些底层和低级的代码来直接与显卡、声卡和输入设备打交道。用喜剧明星宋丹丹同志的话讲,“那是‘相当’的枯燥。”而且不同的硬件厂商的生产出的产品,BIOS中断、IO端口和内存条都不一样,所以写出来的程序在你的机器上能跑不一定在别人的机器上也能跑。要想写出在所有机器上都能正常运行的程序,得为每个厂商都写一个程序,累死不偿命。
在这之后,Microsoft发布了Win95操作系统。许多程序员开始怀疑Windows下编写游戏的的可行性。这样的怀疑是对的,因为在Windows系统下,没有办法直接操作硬件,而速度又是游戏的生命。Windows的内存保护模式防止开发者直接操作低级的硬件中断。
在这样的情况下,Microsoft发布了一种叫DirectX的东东。刚开始的时候它叫Windows Game SDK,包括DirectDraw、DirectSound和DirectPlay。但是被取笑了之后很快就改名为DirectX。在Win95发布几个月后,DirectX1.0就发布了。
使用DirectX,开发者只用编写一次代码就可以在所有的机器上运行,而不管他们的硬件是否相同。硬件生产商和Microsoft积极配合,统一标准化了他们的硬件接口。硬件的驱动使DirectX能正确映射硬件的API,这样游戏开发者就不用再把心思花在解决游戏对于不同硬件的兼容问题,而只用关心游戏的细节。硬件厂商称这叫“硬件抽象层(HAL)”。同时也开发了一个“硬件模拟层(HEL)”,也便使用软件来模拟一些显卡不支持的硬件特性。使用HEL是非常慢的,但它也允许游戏在没有某种特性设备的机器上运行。不过从目前来看,不管是对开发者还是玩家,HEL基本上没什么用,谁能容忍一秒钟一帧的画面而不把电脑给砸了?要开发游戏和玩游戏还是弄块好的显卡吧。
两年后Microsoft发布了DirectX 3.0,它能在Windows NT 4下运行。之后介绍了Direct3D,它允许开发者创建三维程序。Direct 4没有发布,Direct 5在1997年发布,之后升级版本能在Win98下运行。
到2000年,发布了Direct 8,一些新的显卡特性被加了进来,那就是VertexShader(顶点着色器)和PixelShader(像素着色器)。它使得开发者可以把自己写的程序(GPU运行的)传到显卡上。通过汇编代码,游戏开发者可以操作游戏传给显卡的数据。这些汇编代码直接被显卡运行。
然而使用汇编代码来写显卡运行的程序也是相当麻烦的。之后Microsoft发布了Direct 9引入了高级着色语言HLSL(High Level Shader Language),它使用类c的风格开发着色程序,使显卡程序的开发不再是少数人的专利。
为了迎合微软自己的.net战略,之后又加入了Managed DirectX。它是使用.net技术对DirectX进行的一个.net 包装(Wrap)。终于,.net的技术人员也加入了游戏开发的大军中来。使用Managed DirectX开发游戏的一个好处就是使用比较方便,开发效率比较高。对于刚入门的朋友学习DirectX很有帮助,而不会一开始就被一堆COM接口打得晕头转向。Managed DirectX出到1.1之后就走到了它的终点,原本准备出2.0,后来就没有了消息,后来微软宣布放弃Managed DirectX,取而代之的就是XNA。可以认为XNA是Managed DirectX2.0,也可以认为不是,随你便。认为是是因为微软把开发Managed DirectX2.0的精力全都投在了XNA上,两者都使用.net技术来开发,而且使用上区别不大,从Managed Direct转到XNA非常容易;认为不是那是因为两者还是有本质的区别的。前面提到Managed DirectX是对DirectX的一个.net Wrap,实质是调用的DirectX的API,而XNA是基于Direct 9,但是没有像Managed DirectX那样直接调用DirectX的API。XNA从头到尾是一个新的工程,和Managed DirectX没有关系。
XNA允许我们做很多事情,让我们处理游戏的图形、声音、鼠标键盘输入和其他数据都非常简单。在2.0中还将加入网络部分。

posted @ 2007-10-26 18:33 玩家小象 阅读(578) 评论(1) 编辑

开始XNA之旅

    工欲善其事,必先利其器!
    要使用XNA开发游戏,我们先得把要用的工具找齐。
硬件:
    支持Shader Model1.1或以上版本的显卡,如果你的显卡太老不支持,除了换一块新的显卡没有其他的办法。
软件
    1.安装Visual C# Express
    这个东东可以在这里下到,http://msdn.microsoft.com/vstudio/express/downloads/
    这里我希望您已经对C#有一个基本的认识,使用过C#开发过应用程序。如果你使用过C++、Java或VB.NET,你应该能很快的上手。这里就不多讨论关于C#的知识了。安装完后记得把Visual C# Express SP1补丁打上。
    2.安装DirectX Runtime
    到微软的官方网站下在一个最新的DirectX Runtime。你也可以下载最新的DirectX SDK,但这个不是必需的。
    3.安装XNA Game Studio Express
    XNA Game Studio Express 1.0 Refresh这个东东就是我们的主角,在这里可以下到 http://creators.xna.com/Resources/Essentials.aspx
    注意:安装XNA Game Studio Express 1.0 Refresh前必须保证Visual C# Express和DirectX Runtime已经安装,并且Visual C# Express IDE至少运行过一次,否则XNA Game Studio Express 1.0 Refresh无法正确被安装。
    安装完以上所需的软件后,运行Visual C# Express,新建一个项目,在模板里选择Windows Game,如下图所示:
    
    创建完项目后,运行。会看到一个天蓝色背景的窗口,如下图所示:
    
    Ok,我们的第一个“游戏”完成了,虽然什么都没有。但是我们迈出了使用XNA开发游戏的第一步。
    今天就到这里,下次我会讲一些XNA Framework的基础知识。

posted @ 2007-10-26 18:28 玩家小象 阅读(752) 评论(5) 编辑

大家好!

  大家好,终于开通我的博客了!在这里想写一些关于用XNA做游戏的文章。嗯嗯,还不知道该写些什么,今天就发一个处女贴吧,祝贺自己的blog开通:)发一张最近写的游戏的贴图。大家多捧场:)

posted @ 2007-10-26 16:43 玩家小象 阅读(223) 评论(4) 编辑

  

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

昵称:玩家小象
园龄:4年3个月
粉丝:0
关注:0

搜索

 
 

常用链接

随笔档案

最新评论