前往
大廳
主題

[世紀帝國4]對世紀帝國4的官方Mod編輯器研究筆記part8[AOE IV][MOD]

狂戎 | 2023-12-29 03:09:19 | 巴幣 0 | 人氣 148

前一次筆記開始到了遊戲模式

遊戲模式目前看起來也就是寫程式的領域

那之前筆記間隔比較久了,畢竟最近花了比較多時間關注一下也許有機會影響遊戲業的政治

不過這邊就不討論,畢竟沒有聽到相關的政見

上次的筆記只有稍微介紹到怎麼創建遊戲模式的mod

那這次就從要開始前還可以做些什麼開始

有寫過程式碼多半知道程式碼是可以下中斷點的,那如果沒寫過也沒關係

這邊會一併說明,並且世紀帝國4的遊戲模式mod同樣也可以下中斷點

首先我們需要先做一個步驟


這邊先到Steam遊戲的收藏庫,點選世紀帝國4遊戲右鍵


選擇內容的選項

在啟動選項的地方加上這串字

-dev

從比較好理解的方式來說,就是加上這個字串

可以讓世紀帝國用開發者除錯模式開啟

那這邊要先提一點,加上這串後,你所在的伺服器會跟沒加的人是分開的

不過...因為我沒朋友,所以我也沒測試過到底連線的時候會怎樣

我只是提一下官方有這樣的說明

所以如果想要跟朋友一起玩,要嘛一起加上,不然就是先刪掉重新啟動遊戲

這行字是隨時可以刪掉的,只要重開遊戲就好

接下來,我們就可以開啟遊戲

這邊要先開啟遊戲(Steam版本確定需要這個順序)


接下來我們回到mod編輯器,就可以從上方選單的Script中選到Attach的選項

按下去就可以進行程式碼中斷點的效果了(算是前置作業完成)


那連接狀態的話Script選單會長這樣,如果要取消,就點選Detach

當然直接關閉遊戲也可以,連接會自動斷開

那我們就先來簡單的實驗一下


這個遊戲模式專案是上次筆記提到的,這是官方提供的範例

我們打開範例中的.scar檔案

為了確定這行程式碼到底是在遊戲的哪個階段執行

點擊我上面那張圖畫箭頭的地方,也就是所謂的下中斷點

他會在有連接到遊戲,選擇這個遊戲模式並且執行到這一行程式碼的時候停住

那這邊為了直接演示效果

就直接先Build這個mod

Build的方式跟之前調整包是一樣的


選擇遊戲模式的選單在這邊

隨便生成一場小規模遊戲

遊戲模式選自己Build的遊戲模式mod

那這邊自然是選擇自己當初創建mod的名稱


選好遊戲模式後,就會看到官方提供的這個遊戲模式只有一個額外選項可以選

按照官方的註解上面的意思就是你要每分鐘獲得多少資源

這個獲得的資源量可以從程式碼中間看到怎麼運作,不過這個這次先不提

不管選哪個都可以,直接開始遊戲

那我們剛剛下的中斷點在Mod_PreInit()的Core_CallDelegateFunctions

Mod_PreInit()正常來說會在我們加載完,開始的前一瞬間

也就是連遊戲畫面都還沒看到的情況下停住

如果有雙螢幕,把mod編輯器放另一個螢幕會比較好判斷(可用Alt+Tab跳出遊戲視窗)

不然有人可能會不知道為什麼會卡在開始前的一瞬間,以為是遊戲當掉了

其實這就是中斷點的效果

因為他執行到了那一行的程式碼


畫面上來看長這樣,會停在這

並且會用一個黃色的箭頭指向現在執行到的那一行程式碼

這樣就能觀察程式碼執行的過程


此時中斷點的狀態就能做這些操作,這是Script的選單

可以記住這些快捷鍵

例如F5可以讓程式碼繼續執行(繼續運行直到遇到下一個中斷點,如果沒有則是遊戲繼續)

F11可以進入當前這行程式碼,像是function的內部,如果不是則會跳到下一行

F10基本上就是跳到下一行

通常一開始只要知道這三個就行了

中斷點的狀態可以檢查不少東西,包含檢查是否有錯誤產生或是當前各種變數的數值是多少

這邊我們就讓遊戲繼續,所以在mod編輯器這邊按F5讓他繼續

最後講一個也是針對除錯的時候需要的東西

在-dev模式下的世紀帝國,是有log選單可以叫出來的(或是叫cmd之類的)

按快捷鍵Ctrl+Shift+~

就可以叫出log選單


詳細就是從上面跳出這個灰色半透明的視窗,會顯示一些log訊息(也可以輸入訊息)

之後也會講到如何自己增加log

這次就先提到這邊

主要先把一些可能會用到的前置作業做好

畢竟這些都是程式碼除錯中強烈需要的元素

到遊戲模式的程式碼這塊就要有無止盡調整跟除錯的心理準備

然後開始抱怨遊戲怎麼開這麼慢啊~之類的(畢竟遊戲開著不能Build mod)

而且這邊也要補充一下,執行階段程式碼跳Error也是很常見的

遊戲會直接卡住,可以按離開遊戲(如果有開-dev會看到錯誤log)

也有極少見的嚴重錯誤會直接讓遊戲閃退

不過本來跳錯誤後就是要回去調整程式碼,所以還是要關遊戲

從這點來看是不是嚴重錯誤影響不大

並且即使是官方範例,依然可以從中找到BUG的

所以不要太相信官方範例...

送禮物贊助創作者 !
0
留言

創作回應

相關創作

更多創作