[Windows8|Monogame]在Windows 8下開發XNA遊戲

Published: 09/26/2013, Last Updated: 09/26/2013

前言

開發遊戲這件事,到前段時間為止如果是開發Windows的桌面遊戲到Xbox再到Windows Phone都是使用XNA為主要選擇。XNA是微軟提供的一個遊戲框架,提供許多相關的遊戲資源如鍵盤輸入、音效、載圖繪製以及遊戲的流程邏輯等等,而且是一個免費的遊戲框架,協助許多開發者學習如何開發製作獨立遊戲,也有開發者從中獲利。但是在最新的Windows 8作業系統上卻不再支援XNA了,更有消息指出微軟將讓XNA在明年4月1正式退休結束並不在提供任何資源或開發上架的動作,不管如何XNA即將被淘汰是不爭的事實。

但是由於XNA已經培育出了許多的廣大開發用戶,也加上XNA的遊戲開發資源整合便利性,所以有許多人仍然期望可以繼續沿用XNA框架,因此後來便出來了一個「使用XNA框架開發並可跨平台執行」的遊戲框架-Monogame,主打「Write Once,Play Where」的願景,並且透過對XNA框架的重新撰寫,讓開發者可以使用熟悉的XNA框架在Windows8上開發執行!

Monogame介紹

如上所述,Monogame「使用XNA框架開發並可跨平台執行」的遊戲框架-Monogame,主打「Write Once,Play Where」的願景,並且透過對XNA框架的重新撰寫,而Monogame之所以能在Windows 8上執行是在XNA底下透過了一個Open Source-SharpDX使XNA能在Windows 8上(WinRT API)執行。

1.下載Monogame並安裝

進入Monogame的官網,下面便會擺出許多使用Monogame開發的遊戲(其中不乏很多上架的遊戲!當然Windows Store App也有)

2.開啟Monogame Windows Store Project

下載完後開啟你的Visual Studio 2012,便會看到Monogame的專案選項,並選擇Monogame Windows Store Project開啟

然後執行!

你便會看到一個藍色的畫面,那便是預設的XNA背景畫面囉!

補充-遊戲流程介紹

如果是沒有開發遊戲經驗的人,個人滿建議使用類似這樣的遊戲框架做一個開發學習,因為他有一個最基本的遊戲主流程可以做為學習,再來是這類型的遊戲框架,可以讓你學習如何開發從中製作不同類型的遊戲

那麼稍微介紹一下遊戲框架,他主要包含是大流程

1.Initialize(初始化):

設定一些遊戲中角色或其他資源的資料,如:一位英雄要屠龍,那麼英雄與龍會有他們的生命值,所以一般會在Initialize要設定英雄與龍的生命

2.Load Content(載入資源):

載入要呈現遊戲的圖檔,如像是前面提到的英雄與龍,為了呈現給玩家看到一定要有龍與英雄的圖片以及血量呈現出來

注意!!此時圖片還沒有顯示在畫面上,只是載入圖像資源到電腦記憶體中

3.Update(更新):

處理遊戲中所有元件角色的邏輯條件,如按下Enter英雄攻擊龍,龍的血量扣100

4.Draw(繪製):

把圖像畫出來到螢幕上給玩家看,此時如果Update有更新一些會影響到畫面呈現的事物時,畫面也要更新新的情況,如:上面我們英雄攻擊了龍,使血量扣了100,那麼此時龍的血量在畫出來時,要畫出減少的血量

最後,上述這些流程的走法會是:Initialize -> Load Content 之後便會進入Update與Draw的循環之中

參考資料:

Windows 8, XNA and MonoGame – Part 1, Overview

以上用圖取自第三方資源,如有侵權請告知

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804