2021/07/02

在Raspberry Pi上玩MUD遊戲:建構FluffOS(driver)並運行各種mudlib,如East Story 2(東方故事2)

試著在Raspberry Pi 4 Model B上跑MUD,建構FluffOS(driver),並運行各種mudlib,如East Story 2東方故事2。若不清楚何謂MUD、driver、mudlib,請參閱維基百科LPMud

參考資料:


首先把Raspberry Pi OS(舊稱Raspbian)燒錄到MicroSD記憶卡,用的版本是「Raspberry Pi OS with desktop and recommended software, Release date: May 7th 2021」,檔名「2021-05-07-raspios-buster-armhf-full.img」,我是在Windows 10上使用燒錄軟體Rufus

我的Raspberry Pi沒有連接螢幕鍵盤滑鼠,都將以SSH連線操作。所以在燒錄後,需要在MicroSD記憶卡裡、名為boot的分割區,新增一支檔案、取名為「ssh」,如此一來,在第一次開機時Raspberry Pi OS就會啟動SSH功能。

開機後,我先執行「sudo raspi-config」進行相關設定,然後更新套件資訊、升級套件。因為我選用的Raspberry Pi OS版本預設已包含很多軟體,所以更新需要花比較多時間,讀者可試試預含軟體較少的精簡版

$ sudo apt update

$ sudo apt upgrade


安裝FluffOS需要的各種程式庫與工具:
$ sudo apt install build-essential cmake bison libevent-dev libpcre3-dev libssl-dev zlib1g-dev libjemalloc-dev libicu-dev libpq-dev libsqlite3-dev libmariadb-dev libmariadb-dev-compat libmariadbclient-dev libdw-dev binutils-dev

跟FluffOS官方網站不一樣的地方:把libz-dev換成zlib1g-dev,把mysql相關的套件改成maria(因為Debian自版本9 Stretch後,就改以maria取代mysql了),cmake改以apt安裝而非pip,多安裝了libdw-dev與binutils-dev。

以上的準備工作完成後,記憶卡容量約佔了7 GB。接下來進入正題,我會直接把FluffOS(driver)與各種mudlib(如ES2)放在家目錄底下(~/home/pi)。

首先建構FluffOS,抓取原始碼(約74 MB)與,得到子目錄fluffos:

$ git clone https://github.com/fluffos/fluffos

進入子目錄:

$ cd fluffos

選取版本,我用的是最新版,另可用指令「git tag」看看其他版本,需選用有標示v2019的版本:

$ git checkout master

建立存放建構檔案的目錄:

$ mkdir build

進入該目錄:

$ cd build

因為FluffOS採用cmake建構系統,先以底下指令產生所需組態設定檔,兩個句號「..」代表指向上一層目錄,也就是FluffOS所在目錄:

$ cmake ..

然後執行建構指令make,加上參數install就會在完成後進行安裝:

$ make -j4 install

完成後(產生出約274 MB的檔案),會在build目錄裡產生出子目錄bin,裡面有執行檔「driver」。


接著是各種mudlib,首先是東方故事2(East Story 2),先回到家目錄,然後下載(約13 MB),接著進入該目錄:

$ cd

$ git clone https://github.com/MudRen/ES2-utf8

$ cd ES-utf8

先看看設定檔「config.ini」,一般來說,維持預設值即可,底下列出幾個重要的:

name : East Story II

mud ip : 0.0.0.0

external_port_1 : websocket 8888

external_port_2 : telnet 5555

external_port_3 : telnet 6666

mudlib directory : .


name是遊戲名稱,mud ip是可供連線的IP位址,若為0.0.0.0代表皆可,external_port_1是可使用websocket連接的埠號,external_port_2是可使用telnet連接的埠號(GBK編碼),external_port_3是可使用telnet連接的埠號(UTF-8編碼),mudlib directory是遊戲內容所在處。

然後執行:

$ ~/fluffos/build/bin/driver config.ini

會輸出一堆訊息:

========================================================================

Full Command Line: /home/pi/fluffos/build/bin/driver config.ini

Boot Time: Fri Jul  2 21:18:47 2021

Version: fluffos v2019.20210429-18-g63292d32 (Linux)

jemalloc Version: 5.1.0-0-g61efbda7098de6fe64c362d309824864308c36d4

ICU Version: 63.1

Backtrace support: libdw.

Core Dump: No, Max FD: 65535.

========================================================================

Final Debug Level: 0

Processing config file: config.ini

New Debug log location: "log/debug.log".

Initializing internal stuff ....

Event backend in use: epoll

==== Runtime Config Table ====

...(省略)...

Loading simul_efun file : /adm/obj/simul_efun

]simul_efun loaded successfully.

Loading master file: /adm/obj/master

*Warning: unable to open stat file domain_stats for reading.

*Warning: unable to open stat file author_stats for reading.


Loading preload files ...

/adm/daemons/securityd...

/adm/daemons/virtuald...

/adm/daemons/logind...

/adm/daemons/cmd_d...

/adm/daemons/chinesed...

/adm/daemons/emoted...

/adm/daemons/aliasd...

/adm/daemons/fingerd...

/adm/daemons/channeld...

/adm/daemons/natured...

/adm/daemons/ftpd...

Accepting websocket connections on 0.0.0.0:8888.

Accepting telnet connections on 0.0.0.0:5555.

Accepting telnet connections on 0.0.0.0:6666.

Initializations complete.

若最後看到如上訊息,代表執行成功,便可使用telnet客戶端程式連線到埠號6666(UTF-8編碼)開始遊玩。哇,看到歡迎畫面囉:

註冊新玩家,進入第一站吧:

文字是簡體中文,看不習慣的朋友可試試ConvertZZ轉成繁體中文。

試試「俠客行100」:
回到家目錄,
$ cd
下載俠客行100的mudlib,
$ git clone https://github.com/MudRen/xkx100
另需下載子模組:
$ cd xkx100
$ git submodule init
$ git submodule update

然後執行:
$ ~/fluffos/build/bin/driver config.ini

若成功執行,便可使用telnet客戶端程式連線到埠號6666(UTF-8編碼)開始遊玩。哇,看到歡迎畫面囉: 

試試「泥潭7」,步驟與ES2相同,mudlib下載網址是https://github.com/MudRen/nt7:

試試「炎黄群侠传」,步驟與ES2相同,mudlib下載網址是https://github.com/oiuv/mud,建議使用git指令下載時,在尾端加個名字取為yhmud:
$ git clone https://github.com/oiuv/mud yhmud
其他適用於FluffOS v2019版的mudlib還有:风云2005西游记451小雨西游北大侠客行

2021/03/26

關於天瓏電腦書店的一兩則回憶

自從開始接觸電腦,大約就知道有一家專門賣電腦書的天瓏書局,我的電腦書也幾乎都在那裡買,至今已渡過無數年頭,往事如煙啊。以下回憶,茫茫然然,算不得準。

印象中,該處最早是一家天龍書局,賣各種書籍,如歷史、旅遊、財經等,而賣電腦書的天瓏書局則是在店內末端佔據一塊地方。還記得那時窮學生的我,有一次向老闆凹點折扣,老闆居然爽快地答應了,呵呵。

後來規模漸大,擁有獨立完整的一家店面。

再後來,有一年曾遭祝融,低價賣出煙燻書。

現在則是搬到新的店面(就在隔壁而已),注入新的經營團隊,二樓常辦許多活動,除了書籍,還有其他產品,如Arduino、Raspberry Pi等電子零件與開發板,馬克杯、T-shirt、貼紙等週邊商品。前幾天推出【天瓏SVIP悠遊卡】,數量不多,還好我手腳夠快。

在此謝謝天瓏書局陪伴我的成長歲月。



2020/12/21

年末雜記

本部落格在2017年的發表篇數大幅降低,2018與2019更只有一篇,今年(2020)至今居然一篇也沒有,說不過去,只好回顧一下過去兩三年,紀錄一下讀過且值得推薦的書籍與線上課程。


台大教授歐麗娟,中國文學史紅樓夢。 

台大教授呂世浩,秦始皇、史記(YouTube)。

台大教授林軒田,機器學習基石機器學習技法

精準預測:如何從巨量雜訊中,看出重要的訊息?(Nate Silver)、

不敗的數據學:從統計數字中看見真相的12堂思考訓練,不被造假及濫用的數字唬弄!(Alex Reinhart)、

因果革命:人工智慧的大未來(Judea Pearl, Dana Mackenzie)、

真確:扭轉十大直覺偏誤,發現事情比你想的美好(Hans Rosling, Ola Rosling, Anna Rosling Rönnlund)。

複眼人(吳明益)、

天橋上的魔術師(吳明益)、

最後的情書(岩井俊二)、

熊與夜鶯(Katherine Arden)、

少女與魔馬(Katherine Arden)、

新俠女圖(李永平)、

人間失格(大宰治)、

九雲夢(金萬重)、

百年孤寂(馬奎斯)、

道士下山(徐皓峰)、

刀背藏身(徐皓峰)、

俠隱(張北海)。

​撒哈拉歲月(三毛)、

小說課之王:折磨讀者的祕密(許榮哲)。

感應(伊藤潤二)、

恐怖編輯部(佐倉色)、

印刷業崩潰日記(奈良裕己)、

編輯小姐Yuli的繪圖日誌(許喻理)。

所羅門王的指環:與蟲魚鳥獸親密對話(Konrad Lorenz)、

孤獨的誘惑(Joanne Wieland-Burston)、

獨裁者手冊:解析統治權力法則的真相(Bruce Bueno de Mesquita, Alastair Smith)、

茶味裡的隱知識:風味裡隱含的物質之謎與台灣茶故事,我的10年學茶筆記(王明祥)、

籤詩密碼:神明誠徵專屬解籤人(徐維芷)、

瑪雅的智慧(林大雄)、

希臘羅馬神話:永恆的諸神、英雄、愛情與冒險故事(Edith Hamilton)。

官大為(Wiki Kuan),NiceChord 好和弦 - 不可不知的基礎樂理