使用Docker搭建星露谷服务端
前言
最近又玩儿上了新游戏-星露谷物语,女朋友目前唯一感兴趣的联机游戏,让我爱搭服务器的心又泛滥了起来。
在网络上搜了很多开服教程,大部分都是Windows的开服教程,很少有Linux的,并且比较繁琐。
找着找着,找到了Docker部署星露谷的文章,原来是能用Docker部署的,于是开始疯狂找Docker部署的方法,还真让我找到了一个步骤简单,并且实验可行的Docker开服方法,下面记录下我的部署步骤。
开始
其实星露谷官方是没有服务端的,服务端是由主持创建的,服务端同时也是客户端,意思是必须要有一个主持玩家才能开服。
这个开服逻辑就是相当于在Docker容器里面运行了一个星露谷,并且还放了个主持人机。
拉取仓库
到服务器任意目录,如/opt/game
使用Git拉取docker-compose仓库
1 | # Github源仓库 |
启动容器
拉取完仓库后修改docker-compose.yml
文件,修改image
与VNC_PASSWORD
image:
registry.cn-hangzhou.aliyuncs.com/dockercns/stardew-multiplayer
VNC_PASSWORD: 你自定义的VNC密码(重要,不要泄露)
1 | services: |
使用命令启动docker编排
1 | sudo docker compose up -d |
开启服务器
启动完成后存档保存在valley_saves
文件夹中,你可以从你的Windows中下载存档并放到该目录下。
Windows存档地址C:\Users\你的用户名\AppData\Roaming\StardewValley\Saves
,可以看到有很多文件夹,文件夹名称对应的就是你的农场名称。
启动Docker编排后会启动一个容器,容器开放了5801
和24642
端口
5801
:NoVNC 的 Web端,不用下载VNC客户端,直接访问服务IP:5801
就能访问星露谷桌面了24642
:服务端端口,星露谷默认端口,在星露谷客户端点局域网连接的时候不用带上这个端口,直接给IP或者域名就行了
将你需要转移到服务器的存档上传,进入你的服务器IP:5801
就能访问Web端VNC了,此时你就能看到你正在星露谷的游戏界面,非常神奇。
选择?
可切换成中文,选择合作
可以选择你上传的存档,或者是自己新建一个存档,成功进入存档之后,此时服务器就已经开启了,这个主持就相当于一个人机。
如图,这是已经进入存档,开服后的界面:
服务器特性
目前知道的有
- 主持机器人,默认晚上9点睡觉,想要跳过今天,需要在9点睡觉
- 当服务器只剩主持机器人后,主持机器人会暂停,防止时间流逝
到现在服务器已经正常启动了,现在就可以尝试连接服务器了,打开星露谷客户端,点击合作
,加入局域网,输入你的ip,就能进入了!
安卓端
星露谷是多端互通的,可以到这里下载安卓学习版。
默认移动端是没有开放联机入口的,处于测试阶段,可以参考星露谷物语 (Stardew Valley) 联机指南 | SakuraFrp 帮助文档进行开启。
下面复制一下该网站的文章内容,以防止内容丢失:
目前移动版星露谷物语的联机功能仍可能不稳定,因此作为测试版功能存在,
您需要使用下面的秘籍来开启多人游戏功能。
首先,您应当点击右下角的语言列表,并将游戏切换到英文(English
)语言。
目前这个秘籍只能在英文版界面使用,在您开启之后即可切换回中文。
现在我们有英文版的游戏主界面,在这个界面中可以看到招牌上有四个叶子,
在下面图中圈出并以 ↑ ↓ ← → 来表示这四个叶子,
依次点击 ↑ ↑ ↓ ↓ ← → ← →,然后点击右下角的问号按钮,即可解锁多人模式。
构建镜像
拉取的仓库,使用的registry.cn-hangzhou.aliyuncs.com/dockercns/stardew-multiplayer
镜像,服务端版本是1.6.14
的,目前最新的版本是1.6.15
,因此在Steam安装的星露谷是进不了服务器的,因为版本不一样。
想要进入该服务器,你可以在Steam上,右键Stardew Valley
-> 属性
-> 测试版
-> 参与测试(previous_version - The previous version osf Stardew Valley (currently 1.6.14))
,可以让你回到1.6.14
版本,以进入服务器。
当然,还有一种办法,就是升级服务器版本,但是想要升级服务器版本,就得重新构建镜像,进入docker
目录,编辑DockerFile
文件,更换https://eris.cc/Stardew_1.6.15.tar.gz
为你想下载的指定版本试一试,目前已经是更新到1.6.15
了,例如你以后想要更新到1.6.16
就改为https://eris.cc/Stardew_1.6.16.tar.gz
,你可以先测试一下这个连接是否能下载到对应的文件。
修改完成后,在docker
文件夹执行以下代码构建新镜像(build时间有点儿长,我构建了一晚上T_T)
1 | # -t参数后的名字可以任意指定,这里是insectmk-stardew:0.1.0,不要忘了指令后面的点. |
修改仓库根目录docker-compose.yml
文件的镜像,改为build的镜像名称,这里是insectmk-stardew:0.1.0
1 | services: |
回到仓库根目录,重新构建docker编排
1 | sudo docker compose up -d |
运行成功后,使用对应版本的星露谷客户端连接试试。