我很久很久没玩过 MMO 了。
不过前两天翻 Docker 项目的时候,突然看到一个叫 World of ClaudeCraft 的东西。
看了两眼介绍,我脑子里第一反应就是:
「我靠,NAS 架个类似魔兽世界的 MMO?」
嗯,这篇文章就这么水灵灵地来了~
更有意思的是,它还真不是一个只能自己玩的网页小游戏。自己架好服务器以后,朋友直接打开浏览器就能进来,各自建角色、一起跑图、组队、刷怪。坐骑、交易、PVP啥系统都有,样样齐全!
那就别废话了,直接拿手头的 NAS或VPS 开服开整吧!

游戏内容介绍
完整项目名:levy-street/world-of-claudecraft。
World of ClaudeCraft 是一款完整的经典时代 MMO:你现在就能在浏览器里直接游玩,用一条命令自行搭建,甚至还能训练 AI 智能体来玩它。它免费、开源。
至于说游戏特色,太多了大家可以看看截图。当然你也可以去项目地址查看所有内容。

另外我们主要是部署完毕后浏览器游玩,至于Windows和macOS的客户端,可以在浏览器端跳转到下载地址。
搭建流程
以威联通NAS为例进行演示。
我们先部署,做到能局域网内联机玩。如果外网想玩,大家可以用常规的反代,也可借助组网工具。
打开SSH工具,登录威联通NAS,输入以下指令:
cd /share/Container
git clone --branch v0.40.0 --depth 1 \
https://github.com/levy-street/world-of-claudecraft.git
cd world-of-claudecraft
如果大家没有Git工具,就直接下载官方 ZIP 文件,并解压到/share/Container/world-of-claudecraft。

接着将 .env.example 文件复制一份并重命名为 .env:
cp .env.example .env
然后输入指令生成一个随机密码,并保存好:
openssl rand -hex 24

接着我们修改.env环境变量。我建议是利用NAS自带的文本编辑器。当然也可以在SSH中通过vi .env指令直接修改。
当前是局域网,可以只查看和修改以下几个内容。
POSTGRES_PASSWORD=上文生成的密码
NODE_OPTIONS=--max-old-space-size=4096 # 内存限制
MAX_PLAYERS_PER_REALM=5 # 最大在线人数限制
可以直接control+F,快速搜索定位,修改完毕后别忘记保存。

接着是修改docker-compose.yml。同样建议直接web。当然也可选择指令 vi docker-compose.yml。我们仅需要找到端口部分,原本是默认限制本机访问。我们要将其改为局域网其他设备可访问。
如下图,改完同样别忘了保存。(补充说明,外网玩的话,端口的转发也是这个。)

之后我们在SSH界面,直接执行:
docker compose up -d

构建时间可能稍微久点,耐心等待即可。跑完之后,你可以看到四个运行中的容器。

如果出现 eastbrook-wiki-db 的 Error 运行报错。那么再执行一次docker compose up -d mediawiki即可。其实也无所谓,这个并不耽误游戏运行。
简单展示
部署完毕后,浏览器输入 NAS_IP:8787 即可访问项目页面。右下角可以设置语言以及显示质量。顶部则有排行榜、游戏百科、咨询等,甚至还有客户端提供!我在浏览项目的时候甚至没发现,还以为全程只是能在浏览器玩。

点击「开始游戏」,会自动转移到登陆界面。这里我注册一个。

注册好后,会自动进入服务器。

开始创建第一个角色。可自定义角色形象,以及九大职业可选。

进入游戏之后,降临在新手岛。

这里的NPC会提供新手任务,完成后能提供一些基础任务以及装备。

做任务中。。。。

获得装备和额外背包奖励。

好像第一次看到新手教程教玩家ZS和复活的。。。

新手任务完成后,被传送到正式地图。

全部地图其实很巨大。此时我们正在左下角。

把我的好基友喊过来~他那边也要创建自己的账户密码。

游戏系统完成度相当高。

连手柄适配也做好了。

当然作为一款多人在线MMO,团本、PVP、休闲下棋等功能都是支持的,因为我也没时间体验太多内容,大家可以到官方提供的wiki中查看,然后自己慢慢玩。

关于GM
GM 也就是 管理员后台。这个官方也有提供入口。
浏览器输入NAS_IP:8787/admin即可进入管理登录界面。

管理员账户需要我们单独创建,下面给出SSH命令流程。这是我以个人为例的,把我的玩家账户提权为管理员。当然个人是不建议吧正常玩家账号升 GM,最好是新建一个。
docker exec -it eastbrook-db psql -U eastbrook eastbrook
UPDATE accounts
SET is_admin = true
WHERE username = 'YDXian';
select id, username, is_admin from accounts;

可以看到上图,一前一后就提权成功了。
重启后再登录。可以看到后台情况,以及发材料物品啥的都还OK。


最后
折腾NAS依然好玩。
OVER!
评论区