Windows8 遊戲開發教程-開篇

來源:互聯網
上載者:User

http://www.cnblogs.com/crazylights/archive/2011/09/26/2190723.html

準備開始寫一個win8遊戲開發教程了,現在這裡整理一下思路。

需要在開篇解釋的問題就有一大堆了,先嘗試一個個把他們寫下來。

 

1.閱讀這個教程需要什麼樣的基礎?

2.這個教程能帶來一個怎樣的DEMO,結束之後能開發什麼遊戲?

3.這個教程覆蓋哪些知識,使用什麼語言和工具開發?

 

問 題1: 首先是編碼能力,這不是一本程式教材,編碼基礎不講,選擇c#作為主要開發語言,讀者需對c#有一定的瞭解。其次一定的動手能力,有時需要一定的c++開 發,會提供詳細的代碼,如果你跳過這些代碼,最起碼你應該能夠編譯他們,使用他們。第三、探索精神,重點是針對win8 遊戲開發這個專題,專題以外的知識一定有更合適的資料去瞭解和學習。

 

問題2: 這個教程不會帶來一個完美的遊戲,但一定會向你展示開發一個Win8 Metro 遊戲所需要的方方面面。帶來一個 2D 3D 繪圖、音樂音效、多點觸控,資源、線程管理的一系列例子,以及把多個樣本穿起來的示範項目,挑選一個簡單的遊戲方式來說明如何把這些例子穿成一個遊戲。理 論上來講,你可以開發任何遊戲了,只差一點,你的持續努力。

 

問題3:

這個教程會覆蓋一定的演算法、資料結構、圖形學。

開發工具涉及DirectX、winrt、xaml、xml、winmd

開發語言工具涉及c#、c++,

環境要求 windows 8、vs2011 for windows8

其他工具:

圖 片、模型處理工具:簡單點就是2D 3D美術工具,毫無意外的,這些東西程式員必須會使用,美術規格都應該由使用相關資源的程式員提供,自己當然要先熟悉。未免不必要的麻煩,雖然我基本都使 用一些大牌美術工具,考慮到著作權問題,教程中介紹時均採用免費工具,你可以用大牌工具完成一樣的工作。

版本管理工具:即使你只是在本機寫一些練習,也強烈要求你使用版本管理工具(比如svn),儲存自己的每一步操作,學習一個版本管理工具花不了幾個鐘頭,堅持使用他吧。

文本比較工具:版本管理的延伸,檢查兩個版本之間的差異,是一種非常實用的手段,當你搞不清楚改了什麼出問題了,看看上個版本吧。

工 作記錄工具:文本、郵件、blog,隨便什麼,無論多少,把自己的點滴進展記錄下來,經常回顧,堅持做計劃,堅持執行計畫。否則,幾乎不可能完成一個需要 10天以上的工作。30項工作你的大腦會把他擰成麻花,但是記錄在紙上不過半頁,而且很容易有條理,你今天只需關注今天的事情,別讓大腦在這件事情上折 騰,我們要思考的東西還多著呢。

 

嗯,工具說了一大堆,我在教程中並不會告訴你工具怎麼用,我會盡量在教程中提示該使用哪些工具,但這些使用工具習慣的養成終究要靠你自己。

 

讓我們開始說重點吧

為什麼需要 windows 8 遊戲開發教程

windows 8 使用的主要的介面叫做metro,傳統的介面稱為desktop,僅在win8案頭版支援,作為對老作業系統的相容和過渡。Metro UI程式的開發,始於windows phone 7,和過去的windows傳統型程式開發有比較大的不同。並且和windows phone 7也有很大的不同,甚至有種說法,windows phone 8 也會升級為和windows 8 類似的介面。

引入了winmd介面形式,c++的加入,dotnet效能的劣勢部分和winrt、dotnet ramework中沒有提供的功能,可以很容易的補上。winmd作為一個新的介面形式,還沒有充足的資料,此教程也將作為winmd的資料。

有什麼是新的

Metro UI :摒棄了視窗的概念,基本UI形式還是按控制群組織,用xaml組織,從wpf->silverlight->metro ui這樣發展而來。

WINMD:新的介面技術,像是com和dotnet的混血,使用c++、dotnet、js 都可以直接調用winmd介面。目前使用c++和dotnet都可以生產winmd介面的類庫,dotnet可以生產跨平台的winmd介面類庫,c++需要針對不同平台編譯。

windows kits:非 全新,有很大一部分來自windows sdk win32API,,c++標頭檔和lib,還有WINRT,這次提供了三種平台的lib(x86 x64 arm),並不包括所有的WIN32 API,Metro UI僅能使用windows kit,不要嘗試使用傳統win32 api。

winrt:用 winmd介面封裝的物件導向形式的windows api,基本上取代了dotnet framework或者說是dotnet framework中的大部分改成了winmd介面。現在c#開發metro ui應用,大部分調用都是winrt。c++ 和 js 應用開發,也需要調用winrt。

從容量上對比,就可以看出dotnet framework的大部分功能都瘦身掉了,瘦身掉了的部分就由winrt補上了,開發中調用的 windows命名空間中全部是winmd介面,他們就是winrt。

c++ cx:c++和 winmd 通訊的擴充,典型文法"^“ “ref new xxx”

 

看 上去很可怕,一大堆新東西,其實呢,你根本不用關心winmd winrt都是什麼東西,他們都是api,調用時都以命名空間的形式組織,作為類庫來說副檔名是winmd,實際使用dotnet類庫和winmd類庫從 編碼角度沒有差異,winrt中的lib 也是標準的c++類庫。和c++以前連結庫也沒有差異。

 

有什麼舊的可用

c++開發知識沒有變化,毫無變化,唯一不同的是提供了三種平台的lib 多了arm。

c# 和dotnet 開發知識沒有變化,dotnet framework 還是那麼工作的,不過是有一部分被winrt替代了。而且替代部分也不影響你的開發,最多命名空間不同,重新找一下。

directX 知識,目前winrt中沒有提供繪圖API,dotnet framework中刪去了繪圖api,XNA還沒有登陸win8的訊息。所以使用c++ 調用 DX 來開發圖形部分,成為目前開發windows 8 遊戲的必然選擇。

由 於winmd介面的引入,混合編程變得容易,c++ 和 DirectX 積攢了大量的遊戲、引擎,我們可以大膽預測,XNA4或許是最後一個版本,XNA5恐怕會以winmd介面形式出現,退回MDX的模式,作為DX的 winmd介面版本,總之按照這個發展勢頭,XNA不再是平台唯一解決方案,他將面對無數的競爭,包括本教程^_^。

還可以大膽預測winmd這麼華麗的形式,一定會登陸 windows phone 和 xbox,然後,dotnet的XNA會逐漸層成可選項,然後就沒有然後了,還是那句話,XNA5可能就變成了DX的winmd封裝。

 

如果發現有什麼不對的地方,請求大家積極的批評指正。

預告、下周結合代碼介紹Metro UI

http://www.cnblogs.com/crazylights/archive/2011/09/26/2190723.html

準備開始寫一個win8遊戲開發教程了,現在這裡整理一下思路。

需要在開篇解釋的問題就有一大堆了,先嘗試一個個把他們寫下來。

 

1.閱讀這個教程需要什麼樣的基礎?

2.這個教程能帶來一個怎樣的DEMO,結束之後能開發什麼遊戲?

3.這個教程覆蓋哪些知識,使用什麼語言和工具開發?

 

問 題1: 首先是編碼能力,這不是一本程式教材,編碼基礎不講,選擇c#作為主要開發語言,讀者需對c#有一定的瞭解。其次一定的動手能力,有時需要一定的c++開 發,會提供詳細的代碼,如果你跳過這些代碼,最起碼你應該能夠編譯他們,使用他們。第三、探索精神,重點是針對win8 遊戲開發這個專題,專題以外的知識一定有更合適的資料去瞭解和學習。

 

問題2: 這個教程不會帶來一個完美的遊戲,但一定會向你展示開發一個Win8 Metro 遊戲所需要的方方面面。帶來一個 2D 3D 繪圖、音樂音效、多點觸控,資源、線程管理的一系列例子,以及把多個樣本穿起來的示範項目,挑選一個簡單的遊戲方式來說明如何把這些例子穿成一個遊戲。理 論上來講,你可以開發任何遊戲了,只差一點,你的持續努力。

 

問題3:

這個教程會覆蓋一定的演算法、資料結構、圖形學。

開發工具涉及DirectX、winrt、xaml、xml、winmd

開發語言工具涉及c#、c++,

環境要求 windows 8、vs2011 for windows8

其他工具:

圖 片、模型處理工具:簡單點就是2D 3D美術工具,毫無意外的,這些東西程式員必須會使用,美術規格都應該由使用相關資源的程式員提供,自己當然要先熟悉。未免不必要的麻煩,雖然我基本都使 用一些大牌美術工具,考慮到著作權問題,教程中介紹時均採用免費工具,你可以用大牌工具完成一樣的工作。

版本管理工具:即使你只是在本機寫一些練習,也強烈要求你使用版本管理工具(比如svn),儲存自己的每一步操作,學習一個版本管理工具花不了幾個鐘頭,堅持使用他吧。

文本比較工具:版本管理的延伸,檢查兩個版本之間的差異,是一種非常實用的手段,當你搞不清楚改了什麼出問題了,看看上個版本吧。

工 作記錄工具:文本、郵件、blog,隨便什麼,無論多少,把自己的點滴進展記錄下來,經常回顧,堅持做計劃,堅持執行計畫。否則,幾乎不可能完成一個需要 10天以上的工作。30項工作你的大腦會把他擰成麻花,但是記錄在紙上不過半頁,而且很容易有條理,你今天只需關注今天的事情,別讓大腦在這件事情上折 騰,我們要思考的東西還多著呢。

 

嗯,工具說了一大堆,我在教程中並不會告訴你工具怎麼用,我會盡量在教程中提示該使用哪些工具,但這些使用工具習慣的養成終究要靠你自己。

 

讓我們開始說重點吧

為什麼需要 windows 8 遊戲開發教程

windows 8 使用的主要的介面叫做metro,傳統的介面稱為desktop,僅在win8案頭版支援,作為對老作業系統的相容和過渡。Metro UI程式的開發,始於windows phone 7,和過去的windows傳統型程式開發有比較大的不同。並且和windows phone 7也有很大的不同,甚至有種說法,windows phone 8 也會升級為和windows 8 類似的介面。

引入了winmd介面形式,c++的加入,dotnet效能的劣勢部分和winrt、dotnet ramework中沒有提供的功能,可以很容易的補上。winmd作為一個新的介面形式,還沒有充足的資料,此教程也將作為winmd的資料。

有什麼是新的

Metro UI :摒棄了視窗的概念,基本UI形式還是按控制群組織,用xaml組織,從wpf->silverlight->metro ui這樣發展而來。

WINMD:新的介面技術,像是com和dotnet的混血,使用c++、dotnet、js 都可以直接調用winmd介面。目前使用c++和dotnet都可以生產winmd介面的類庫,dotnet可以生產跨平台的winmd介面類庫,c++需要針對不同平台編譯。

windows kits:非 全新,有很大一部分來自windows sdk win32API,,c++標頭檔和lib,還有WINRT,這次提供了三種平台的lib(x86 x64 arm),並不包括所有的WIN32 API,Metro UI僅能使用windows kit,不要嘗試使用傳統win32 api。

winrt:用 winmd介面封裝的物件導向形式的windows api,基本上取代了dotnet framework或者說是dotnet framework中的大部分改成了winmd介面。現在c#開發metro ui應用,大部分調用都是winrt。c++ 和 js 應用開發,也需要調用winrt。

從容量上對比,就可以看出dotnet framework的大部分功能都瘦身掉了,瘦身掉了的部分就由winrt補上了,開發中調用的 windows命名空間中全部是winmd介面,他們就是winrt。

c++ cx:c++和 winmd 通訊的擴充,典型文法"^“ “ref new xxx”

 

看 上去很可怕,一大堆新東西,其實呢,你根本不用關心winmd winrt都是什麼東西,他們都是api,調用時都以命名空間的形式組織,作為類庫來說副檔名是winmd,實際使用dotnet類庫和winmd類庫從 編碼角度沒有差異,winrt中的lib 也是標準的c++類庫。和c++以前連結庫也沒有差異。

 

有什麼舊的可用

c++開發知識沒有變化,毫無變化,唯一不同的是提供了三種平台的lib 多了arm。

c# 和dotnet 開發知識沒有變化,dotnet framework 還是那麼工作的,不過是有一部分被winrt替代了。而且替代部分也不影響你的開發,最多命名空間不同,重新找一下。

directX 知識,目前winrt中沒有提供繪圖API,dotnet framework中刪去了繪圖api,XNA還沒有登陸win8的訊息。所以使用c++ 調用 DX 來開發圖形部分,成為目前開發windows 8 遊戲的必然選擇。

由 於winmd介面的引入,混合編程變得容易,c++ 和 DirectX 積攢了大量的遊戲、引擎,我們可以大膽預測,XNA4或許是最後一個版本,XNA5恐怕會以winmd介面形式出現,退回MDX的模式,作為DX的 winmd介面版本,總之按照這個發展勢頭,XNA不再是平台唯一解決方案,他將面對無數的競爭,包括本教程^_^。

還可以大膽預測winmd這麼華麗的形式,一定會登陸 windows phone 和 xbox,然後,dotnet的XNA會逐漸層成可選項,然後就沒有然後了,還是那句話,XNA5可能就變成了DX的winmd封裝。

 

如果發現有什麼不對的地方,請求大家積極的批評指正。

預告、下周結合代碼介紹Metro UI

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.