- 序
2009 年, 當年我是一個正在退學邊緣的大學生, 曾經妄想過要自己架
設一個屬於自己的 MUD, 並且妄想著用架設出來的作品當作進入遊戲業界
的敲門磚, 在數個月的嘗試之後以失敗告終. 探究其原因是我當年缺少太
多程式設計相關知識, 光是下載編譯 mudOS, 面對完全不熟悉的 C 語言
compiler 需要排除的問題就有很多, 成功編譯 mudOS 後也完全沒有能
力修改程式, 只能對 mudlib 做簡單的修改. 最後, 我被學校退學, 不
得已去當兵, 退伍後為了養活自己開始當貨車司機, 架設 MUD 的夢想也
越來越遠, 就這樣塵封在記憶深處中.
2019 年的 5 月, 我成功轉職為 java 程式設計師(a.k.a 碼農). 在
我還是貨車司機時因為工作繁忙, 每天只有下班後的幾個小時可以玩玩電
腦, 轉職成功後每天使用電腦的時數暴增到 10 個小時以上, 而且在公司
交付的進度都如期完成下, 電腦螢幕如果開著 IDE 寫自己的程式其實是
不太有人管的, 所以我又萌生了創作 MUD 的想法. 不過這次的動機和之
前並不相同, 10 年前想架設 MUD 最初要是想要『自己創作遊戲』, 這次
更多的動機是想藉由『從無到有獨立建構一個系統』驗證、培養自己在程
式設計方面的能力.
在寫這篇文時我已經斷斷續續開發了一個月, 目前已經可以讓使用者登
入並新建帳號, 也有簡易的房間、道具與 NPC 系統, 也寫了程式可以讀
取特定格式的純文字檔, 並用這些文字檔產生 MUD 內的物件. 原本是打
算等完成度更高再來發文的, 但是最近在回頭整理舊程式碼時又出現了不
少心得, 於是想趁記憶還鮮明時將這些心得記錄下來分享給大家.
- 開發環境 & 基礎知識
既然我身為 java 工程師, 當然是使用 java 做為開發語言囉, 本系
列文使用 java SE 8 + Eclipse 開發, 並且會使用到自訂 annotation,
反射, 代理, 等新手工程師比較沒機會用上的特性與技巧. 不過不用太擔
心, 只要你的 java SE 基礎夠穩固, 這系列對你來說不會太難的 :)
- 注意事項
都 2019 年了還在寫 BIG5 程式實在是很 low, 加上 java 預設使用
UTF-8 編碼, 因此提供的範例程式(如果有的話)皆使用 UTF-8. 經過測試
Mudlet 是可以正常處理 UTF-8 中文的, 但是 zmud 跟 PCMAN 的支援度
就不是那麼好了, 如果你還是習慣使用舊的連線程式來玩 MUD, 可以自己
把檔案編碼轉 BIG5, 不過我不對 BIG5 編碼提供任何協助與指引.