遊戲主迴圈,幀、幀動畫這些東西的理解非常重要。
常用的設計模式和編碼調試技巧也非常重要。
但有點難以言傳的意思,語言和文字並不能在以上兩點協助你,自己努力練習和理解吧。
就講講資源和工具。
很多人總是搞不清楚遊戲要怎麼製作,這有一個簡單的方法讓你清楚,遊戲和應用絕無任何區別。
只不過圖形的要求稍微搞了那麼一點點,所以經常需要基於幀重新整理的圖形系統來開發各種各樣的功能。
僅此而已,基礎不牢靠的話,可能會稍微有點迷茫。
其他的方向,我相信會寫應用就會了。
由於metro app 是按包發布的,所以資源檔要包括在項目中,build action 選擇 content。
,這個教程只提供了從包內載入的方式。
也可以考慮下載之類的。
今天主要討論一形。
首先windows8 裡面我覺得傳統UI可以用於遊戲UI,你看現在不是流行flashUI嘛?所以我們也可以利用xaml來製作UI,這部分資源都可以直接編輯,先按下不表。
在D2D D3D的部分、需要以下幾種資源 d2dbitmap d3dtexture d3dmesh shader
這裡就更不適合做教程了,資源系統的設計其實沒有一條固定的路徑要怎麼做。
我只能介紹一下我怎麼做,和我這麼做的用意。
首先d2dbitmap 和 d3dtexture 都是貼圖,我這裡先支援texture2d,cubemap和texture1d就先不管它。
這個樣本項目中我準備用極座標替代cubemap,texture1d在任何場合都可以被texture2d代替。
那麼d2dbitmap和d3dtexture最好是同源的,而且最好支援多一些格式。
所以就這麼設計介面了,先從檔案中載入一個Bitmap,再用這個對象建立d3d貼圖或者d2d位元影像。
然後是模型和shader
模型我自己定了個簡單的格式,寫了個工具從fbx匯出資料,利用xna4 vs2010開發,用不了多少代碼。
使用fbx是一個比較好的選擇,主流的3d開發工具均可匯出fbx。
shader嘛,dx11 支援載入bytecode,提前用fxc 編譯成bytecode當作資源檔即可。
為了調試方便,我們採用一個即使編譯的辦法
首先得把這個檔案當作資源套件進檔案包,Just-In-Time 編譯需要他。
然後把fx檔案也當資源,從中讀出字串編譯。
工具:
3dmax 或者其他模型編輯工具
phoneshop或者其他影像處理工具
fbx轉換工具,上面那個。
https://crazylights.googlecode.com/svn/CLReach/win8/fbxconv