Programming

[2010] 沙漠商旅C的遊戲設計(2)-Resource Editor


作者:NDark

時間﹔201001

編輯器-Resource Editor

ResourceEditorSS01
ResourceEditorSS01

資源管理器是一個口古月時期的引擎中就有的元件,
但是當時的設計還沒有很成熟,將資源的處理都包入了管理器中。
造成管理器深陷於其他物件中。
因此沙漠商旅C的開發中就依照資源池的設計概念重新打造這個元件,
同時開發了資源編輯器。

動機

資源管理的目的我想很多人應該都已經知道了,
就是希望減少檔案的讀取,以及增加資源的重複利用。

系統與特色

  • 由資源池物件管理內部的資源物件(圖片等資源)。
  • 基本資源物件的屬性主要有資源名稱(Rich Name),檔案路徑,說明。依照不同的資源物件有個別屬性來紀錄資源的內容。
  • 目前主要是管理貼圖資源與透明貼圖資源兩種。其他預留了檔案,影像,音效,視訊,模型,人物等物件的擴充區域。
  • 影像與貼圖最大不同是貼圖在傳送產生貼圖之後就會釋放影像。只留下貼圖識別。
  • 可以使用自訂的資源池物件,也可以使用靜態預設的全域資源池。
  • 資源的讀入/處理/釋放由系統程式來執行,避免過複雜的底層結構介入資源池。

內容

資源編輯器沒什麼好講的主要就是維護一個清單,
清單中就是每一項目的資源屬性及指定檔案的路徑。

原本的設計中有對於資源在程式碼中的超連結,
希望清單設計的時候可以與程式開發有資訊的溝通。
但是因為這個設計並不好處理,所以目前的版本就從編輯器中移除了。

使用資源池時讀入資源清單檔案

RPool.ReadResourceList( … )

取用資源時就依照該資源的類別取用

RPool.FindTexByRText( 資源名稱 , pRsrcText )
取用貼圖辨識標籤 pRsrcTex->m_uiTexID

有關貼圖資源的處理在沙漠商旅C的架構。
如Stage分段之中描述,進入主選單或關卡之前會進行資源的讀取。

  • 第一步先讀入資源清單檔案。
  • 第二步讀入清單中各個資源。譬如說貼圖就傳去顯示卡產生貼圖辨識標籤。
  • 第三步將選單中有使用到資源的菜單物件從資源池中找到相對應的資源物件,進行一個對應的動作。譬如說菜單圖片就去取得貼圖資源的辨識標籤。多個菜單圖片就可以共享一個資源。

因此在沙漠商旅C的目前版本,維護了三個資源清單,分別是
主選單資源,關卡資源,以及戰場資源。
每次資源重新讀入後都會把目前選單資料進行上述的對應動作。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s