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小雨西游北大侠客行

1 comment:

  1. 請問安裝完成後,網絡架構要什麼要求?只需用lan連接另一台電腦,以telnet入0.0.0.0 port:6666 就可以了?

    ReplyDelete