4 月底在台推出中文版的 PC 即時戰略遊戲《最高指揮官(Supreme Commander)》,製作人 克里斯‧泰勒(Chris Taylor)特別提供了遊戲模組製作 10 大秘訣,供玩家參考。
以下就是克里斯‧泰勒親自傳授的秘訣內容:
1. 學習 Lua
我們的遊戲完全使用開放原始碼的 Lua 語言來編寫。我們使用些微修改的 Lua 5.0 版本,這個程式允許你在註釋使用 # 以及在不均等比較使用 != instead of ~= 指令。你可以在以下兩個連結中的 Lua 5.0 參考手冊中找到一些非常有用的 Lua 線上教學資料。
http://www.lua.org/pil/
http://www.lua.org/manual/5.0/
2. 閱讀我們的程式碼
在《最高指揮官》安裝資料夾中你可以找到一個名為 gamedata 的目錄,裡頭包含 scd 檔。這些檔案實際上是單純的 zip 檔案,只是改過檔名而已。複製 lua.scd、mohodata.scd 和 mods.scd 檔案,把檔名改名成 zip 格式,然後解壓縮。我們所有 UI 和絕大部分遊戲玩法都是以 Lua 編寫,要曉得如何製作模組,你必須瞭解模組有什麼內容。
3. 特別注意檢視 mods.lua 中的註釋
一旦你解壓縮 mohodata.lua,你會發現一個名為 mods.lua 的檔案。這個檔案說明如何把模組打包到遊戲中的所有基本原則,以及提供創作特殊類型模組的訣竅,比如說只包含兵種單位的模組和改變平衡性的模組。
4. 設定遊戲選項以利早期模組製作
更改你的視訊選項成視窗模式方便你在遊戲和原始碼之間切換。
尋找你的 game.prefs 檔案。在 Windows XP 中你可以在:
Documents and Settings[使用者名稱]Local SettingsApplication DataGas Powered GamesAppDataLocalGas Powered GamesSupremeCommander
目錄中找到這個檔案。
這是儲存你的遊戲所有偏愛設定的檔案。在檔案中增加 1 條:
debug = {enable_debug_facilities = true}
你就能輕易地在除錯工具中進入 built。同時,如果你用「cheats enabled」和「sandbox」選項設定執行「獨立戰役」模式,你會發現測試模組將更為簡單。
5. 使用我們的除錯工具
當你在秘訣 4 所描述的內容中設置除錯旗標並且以視窗模式執行《最高指揮官》,你會發現系統選單出現兩個新命令:「切換輸出紀錄(Toggle Output Log)」和「開啟 Lug 除錯器(Open Lua Debugger)」。輸出紀錄是非常好用的工具,能夠顯示《最高指揮官》引擎正在發生什麼事。你也可以藉由在編寫的程式中使用 log() 功能來新增你自己的輸出(output)。Lua 除錯器是逐條追蹤程式碼和設定中斷點的便利工具,讓你瞭解《最高指揮官》程式正在發生什麼事。
6. 從控制台執行任意 Lua 命令
有時候在進行模組測試時,擁有可以從遊戲中調用來提供訊息或是啟動尚未銜接好的程式碼腳本相當便利。簡單地按下「`」鍵(在鍵盤左上角數字 1 鍵旁)開啟控制台視窗,接著輸入所有種類的除錯命令。你尋找的指令是一個名為「lua」的。
為了好玩以及一點作弊的樂趣,輸入:
lua import (‘/lua/ui/campaign/campaignmanager.lua’).InstaWin()
你會發現不用這麼費力就能在你所有戰役任務中獲勝。
7. 我們隨時提供你協助
到我們的
社群網頁並觀看「模組開發者協助(Mod
Developer Support)」討論區。幾位 GPG 開發人員會定期來這個討論區並且協助回答問題。這個模組社群也有許多經驗老道的成員,他們也有可能幫助你。發問問題之前,請閱讀以下的常見問題文章:
http://forums.gaspowered.com/viewtopic.php?t=2318
8. 下載其他模組觀摩其他模組開發者的創作
在上面提到的討論區中你可以找到「模組研討(Mod Talk)」討論串,玩家們在這裡提供他們已經製作好的模組連結。藉由觀摩其他玩家的創作你可以獲得一堆很棒的創意。
9. 使用支援 Lua 語法高亮度顯示的良好程式碼編輯器
這將有助你更有效率地閱讀和撰寫你的程式碼,而且也更能方便地瀏覽 GPG 和其他開發者的程式碼。有許多免費的程式碼器提供「立即使用」的 Lua 支援,像是
Grimson Editor、
jEdit 和其他類似的編輯器。在搜尋網頁上輸入「免費程式碼編輯器」,保證可以找到符合你需求的編輯器。
10. 用命令列切換 /EnableDiskWatch 來執行《最高指揮官》
進行兵種單位或平衡度變更時,此命令會在你儲存原始檔時自動重新讀取你的變更,方便你立即在遊戲中看見變更的結果。