Microsoft XNA

微軟遊戲開發平台

Microsoft XNA是微軟提供的一套用於視頻遊戲開發和視頻遊戲管理的工具。

平台簡介


Microsoft XNA ("XNA's Not Acronymed"),完全支持託管代碼的運行環境,由微軟提供用以幫助電腦遊戲開發、電腦軟體開發及管理的一些工具。XNA把遊戲設計員從“反覆刻版編程”中解放出來,還把遊戲開發上的所有需要結合到一個系統之中。XNA 工具集在2004年3月24日在美國加州聖荷西市的遊戲開發者大會首次亮相,第一個公開技術預覽在2006年3月14日推出,最新版本3.0在2008年10月30日推出。
XNA Framework是建置於.NET Framework 2.0上,XNA將DirectX的功能以託管代碼的方式封裝運作(因此微軟終止了Managed DirectX 9.0的開發,所以有人稱XNA為Managed DirectX 2.0,另外還加入了一些專註於遊戲開發上類庫,在指定的平台上使“代碼重用”達之最大效果。XNA Framework在一個特別為有管理式遊戲運行的通用語言運行庫(Common Language Runtime)版本上運行。這個運行層支持Windows XP、Windows Vista、Windows 7、Windows Phone 7和XBox 360。由於遊戲是開發在運行層上,使得遊戲能在所有支持XNA Framework的平台上只要很少甚至不需要任何更改便能運行。現時所有在XNA Framework上的遊戲必須使用C #和XNA Game Studio Express IDE開發。
XNA的程序都是繼承自Game class,它包含了所有重要的遊戲組件,比如圖形設備(Graphic Device)、窗口設置以及內容管理器,你也可以添加GameComponent class到你的Game class。XNA Framework把所有用作遊戲編程的低級技術封裝起來,例如XNA提供了Effect(BasicEffect)類型來處理大部分繪圖著色相關的工作,開發人員不需再理會“矩陣變數”相乘,只要指定對象的World、View、Projection即可,其相乘效果由Shader檔自動處理。Effect本身還能用於載入和編譯shader、Effect Current Technique可用於指定technique,像是AmbientLight;Effect.SetValue可以用來設置Shader的參數。一個effect包含一個或多個technique,一個technique包含一個以上的pass。在pass裡面可能還有VertexShader、PixelShader,這些元素構成一份effect文件,這也就是極簡化后的HLSL代碼。因此,遊戲開發員就可以專註於遊戲內容開發而不用關心遊戲移植至不同平台上的問題,遊戲只要開發於XNA 的平台上,所有硬體只要支持XNA都能運行。XNA Framework 還內置一些工具,例如XACT以幫助遊戲內容開發。
XNA Framework同時支持2D和3D的遊戲開發也支持XBox 360的控制器和震動效果。Content pipeline被用來導入.fbx格式,而且載入像紋理(Texture)、3D模型、著色器(shader)。Shader指令經過編譯之後,直接載入到顯卡上的GPU來運行。Xbox Live賣場可以升級開發者的XNA Game Studio Express以使能把他們開發的遊戲用於Xbox 360上。