OPENWORLD
下载

多人联机 · 服务器

自建游戏服务器:属于你们这群人的星球,一直在线

没有订阅,没有托管公司,没有付给第三方的月费账单:Openworld 服务器是一个在你自己的机器上运行的程序。从下载到备份,整个过程都在这里,附带真实可用的命令。

作者 Tom Pascard· 更新于 ·3 分钟阅读

简而言之

  • 服务器支持 Mac、Windows 和 Linux:在 launcher 里和游戏放在一起下载。
  • 一条命令就能启动;它会自己写出一个 server.json,其余一切(名称、人数上限、种子、难度……)都在里面设置。
  • 玩家通过 UDP 端口 24710 连接:在防火墙和路由器上开放它——或者用 mesh VPN 绕开路由器。
  • 角色、保护区、边界、家,还有一个网页控制台:运营一台生存服务器所需的一切。
  • 备份 = 复制一个文件夹。更新不会动你的世界:已经见过的地形会随世界一起保存。
阅读指南

嘘……点点它们

本页内容
  1. 我能在家里架设游戏服务器吗?
  2. 你需要什么
  3. 安装并启动服务器
  4. server.json:设置一次就够
  5. 端口转发,以及其他办法
  6. 管理命令、角色和保护区
  7. 你的世界存在哪里(以及怎样备份)
  8. 在家里架设服务器安全吗?
  9. 常见问题

我能在家里架设游戏服务器吗?

对大多数游戏来说,“给朋友们开的服务器”意味着每月向托管公司付订阅费。而在 Openworld 里,服务器是一个你自己运行的程序:可以跑在你玩游戏的那台电脑上,跑在壁橱里的一台旧 PC 上,也可以跑在你租来的机器上。中间没有任何供应商,世界的文件始终保存在你的硬盘上。

为什么要费这个事?因为服务器是一个一直开着的世界:朋友想来就来,哪怕你在睡觉。Openworld 是建在整颗圆形星球上的体素沙盒游戏——一直往前走,你会回到出发的地方——头顶是真实的天空,有月相和日食月食,途经月球和各大行星,一路直达太阳。有了你自己的服务器,这颗星球就属于你的小团体,想多久就多久。

小玩家狐狸女孩机器人独角兽小宇航员空手道选手

点一点玩家

从内部看你的服务器:玩家从 Mac、Windows 和 Linux 连进来,每一位都是机架上新亮起的一盏灯。点一点玩家:他们会挥手。
  • 24710游戏默认使用的 UDP 端口
  • 100默认的玩家名额(1 到 1,000)
  • 3个系统:macOS、Windows、Linux
  • 1完整备份只需复制的文件夹

你需要什么

  • 一台在玩家游玩期间保持开机的电脑:macOS(Apple Silicon 或 Intel)、Windows x64 或 Linux x64。服务器是一个控制台程序:不需要屏幕,也不需要显卡。
  • 处理器:核心越多,新地形生成得越快。默认情况下,服务器会用掉除两个核心之外的所有核心来生成地形(performance.workerThreads)。
  • 磁盘:世界会保存它生成过的每一块地形,每一列约 12 KB——探索一个 3 km 见方的区域,大约要占半个 GB。要进行长途远征的话,请多留些空间。
  • 上传带宽:一位正在探索的玩家,默认最高可以以 20 Mbit/s 的速度接收地形。家用宽带一般的话,就调低 performance.streamingBudgetBps:地形到得会稍慢一点,但游戏依然流畅。
  • 每位玩家的版本都要和服务器一致:launcher 让每个人都能选择版本。

安装并启动服务器

  1. 1

    从 launcher 下载

    在 launcher 里,点击开始游戏旁边的版本标签(“选择游戏版本”),选好你的版本,然后点服务器——“下载 openworld-server”。选择系统(Mac、Windows、Linux——不一定是你当前用的那个)和一个文件夹。

  2. 2

    找到它的文件夹

    launcher 会创建 openworld-server-<version>:里面有程序 openworld-server、它的 assets/ 文件夹(让它待在程序旁边)和一个 README.txt。

  3. 3

    在那个文件夹里打开终端

    macOS 和 Linux:./openworld-server。Windows(PowerShell):.\openworld-server.exe——第一次运行时,在弹出的防火墙窗口里点允许。

  4. 4

    仅 macOS,第一次运行时

    这个文件来自互联网:右键点击程序 → 打开,或者在该文件夹里运行 xattr -dr com.apple.quarantine .。

  5. 5

    干净地停止

    Ctrl + C(或者输入 stop):服务器退出之前,会先保存世界。

cd openworld-server-<version>
./openworld-server

# Windows (PowerShell)
.\openworld-server.exe

# macOS, first time only: lift the download quarantine
xattr -dr com.apple.quarantine .
在服务器的文件夹里启动它(macOS / Linux,然后是 Windows PowerShell)。

默认情况下,服务器是在线模式:只有从 Openworld launcher 启动、账号有效的玩家才能进来——他们会带着自己的用户名和皮肤出现。在没有互联网的网络里,用 --offline 启动它:每个人都保留自己输入的名字,使用默认皮肤,什么都不会校验。

server.json:设置一次就够

第一次启动时,服务器会在你启动它的位置旁边写出一个 server.json,里面填好了默认值,排版也是给人看的。改一改,重启,就完成了。主要的键如下:

  • name、description、icon:服务器列表里显示的内容(图标用 PNG)。
  • port(24710)和 slots(100,范围 1 到 1,000)。
  • auth:online(Openworld 账号)或 offline。
  • seed:random、一个数字或任意文字,用于新世界;terrain:classic 或 continents(几块被海洋隔开的巨大大陆)。
  • world.difficulty:easy(没有怪物)、medium、normal、hard、very_hard 或 terrible(每个难度等级会改变什么);world.caves、world.creatures。
  • players.gameMode:新玩家的 survival、creative 或 spectre;players.superAdmins:你的用户名(或 UUID)——永远是 SuperAdmin。
  • dataDir(owserver_data)、logs、web.(控制台)、performance.、telemetry。
{
  "name": "Friday night planet",
  "description": "Our group's world. Be nice, build big.",
  "port": 24710,
  "slots": 12,
  "auth": "online",
  "seed": "friday night",
  "terrain": "continents",
  "dataDir": "owserver_data",
  "world": { "caves": true, "creatures": true, "difficulty": "normal" },
  "players": { "gameMode": "survival", "superAdmins": ["YourUsername"] },
  "web": { "enabled": true, "password": "change-me" }
}
一个给朋友小团体用的 server.json 示例(服务器自己写出来的文件包含全部的键和它们的默认值)。

在命令行里输入的任何选项,都会在本次运行中优先生效,而不会改写文件:--port、--slots、--name、--motd、--seed、--seed-text、--difficulty、--terrain、--offline、--web……--help 会列出所有选项。--port 25000 和 --port=25000 两种写法都行。

./openworld-server --offline                      # LAN without Internet, no accounts
./openworld-server --port 25000 --slots 20
./openworld-server --seed-text "friday night" --terrain continents   # a NEW world
./openworld-server --difficulty easy              # no monsters
./openworld-server --web --web-password change-me # dashboard on port 24711
./openworld-server servers/Survival               # an instance folder with its own server.json
./openworld-server --help
几次带选项的运行,这些选项在单次会话里优先于 server.json。

端口转发,以及其他办法

Openworld 使用一个 UDP 端口,默认是 24710。要让玩家进来,有三种情况:

  1. 1

    同一个网络(局域网)

    在防火墙里允许这个端口(Windows 会在第一次启动时询问;Linux:sudo ufw allow 24710/udp)。朋友们连接你的本地地址,比如 192.168.1.20:24710。

  2. 2

    从互联网连入

    在路由器上,把 UDP 24710 转发到运行服务器的电脑,然后把你的公网地址(address:24710)告诉朋友。每个路由器的叫法都不一样:找找“端口转发”或“NAT”。

  3. 3

    不做端口转发

    没法访问路由器,或者运营商让你和别人共用 IP?让所有人加入同一个 mesh VPN(Tailscale、ZeroTier……),然后分享它给你电脑分配的地址——或者在一台有公网 IP 的租用机器上运行 Linux x64 服务器。

sudo ufw allow 24710/udp
# the dashboard, only if other computers need it:
sudo ufw allow 24711/tcp
在防火墙里开放游戏的端口(Linux,使用 ufw)。

之后,玩家在多人游戏 → 添加服务器里添加你的服务器,它就会带着图标、名称、描述和玩家 / 名额显示出来。如果你只是想今晚和朋友玩,不想折腾这些,把你的单人世界对局域网开放只要点两下。

管理命令、角色和保护区

命令都是英文的,可以在游戏聊天(T,然后输入 /)或服务器的终端里使用(终端里不带 /)。在终端里输入 help 可以查看完整列表:有些命令只能在终端里用,有些只能在聊天里用。

  • 玩家:players、kick、tp、gamemode … survival|creative|spectre、kill、respawn、/playerinfo、/invsee(查看他们的背包)、/playerstats。
  • 世界:say、time set、weather clear|rain|thunder|snow… | auto、difficulty easy … terrible、/setworldspawn、mobs on|off。
  • 角色:SuperAdmin、Admin、Moderator 和 Player(默认)。/role assign PLAYER ROLE、/role create、/role add ROLE PERMISSION;/role nodes 会列出所有权限。
  • 区域:/zone create NAME [RADIUS] 会保护你周围的一个圆形区域(禁止建造、禁止爆炸),再用 /zone set NAME pvp deny 之类的命令继续设置——build、explosions、pvp、pve、mobs、chests、damage、entry。
  • 边界:/border set RADIUS 把世界限制在一个圆里;/border space deny 或 /border world moon deny 会封闭太空或月球。
  • 每个人都有的家:/sethome、/homes、/home(默认每位玩家 3 个)。
  • 服务器:save(立即把一切写入磁盘)、version、stop。
/role assign Alex moderator
/zone create spawn 40
/zone set spawn pvp deny
/border set 3000
/border world moon allow
/difficulty hard
/sethome base
在游戏聊天里(以管理员身份):角色、一个受保护的出生点、一道边界。

网页控制台

用 --web 启动(或者 "web": {"enabled": true}),然后打开 http://127.0.0.1:24711/:概览(TPS、tick、玩家、网络、内存)、玩家(位置、背包、操作)、世界的实时地图(2D、等距和 3D)、太空中的行星、生物、地形与存储,还有浏览器里的控制台。从另一台电脑访问时只能查看——除非你设置了 --web-password。

你的世界存在哪里(以及怎样备份)

  • server.json:设置;roles.json:角色。
  • owserver_data/:世界本身——它的种子(world.cfg)、生成的地形(chunks/)、被编辑过的地形(regions/)、每位玩家的存档(players/<uuid>.json:位置、背包、游戏模式)、zones.json、borders.json……
  • logs/:服务器的日志。
  1. 1

    备份

    输入 stop(或 Ctrl + C),把 owserver_data/、server.json 和 roles.json 复制到安全的地方,再重启。服务器自己也会每隔几分钟保存一次。

  2. 2

    更新

    从 launcher 下载新的 openworld-server(它会进入一个新的 openworld-server-<version> 文件夹),把你那三样东西移进去,启动。告诉你的玩家选择同一个版本。

  3. 3

    恢复

    停止服务器,把复制出来的文件夹放回去,启动。每个人都会回到原来的位置。

tar czf backup-$(date +%F).tar.gz owserver_data server.json roles.json
在服务器停止的状态下,从服务器的文件夹里做一次备份(macOS / Linux)。

更新不会改变你的土地:服务器生成过的每一块地形都随世界一起保存,原样提供,哪怕新版本生成新世界的方式不一样了。每次更新之前还是备份一下——只需要复制一次。

在家里架设服务器安全吗?

  • 只有一个 UDP 端口,它上面的流量是加密的(X25519 + ChaCha20-Poly1305)。
  • 在线模式会通过 Openworld 的服务核对每位玩家的账号:没人能冒用你朋友的用户名。
  • 控制台默认只让其他机器查看,除非你设了密码;如果用不到,就不要在路由器上转发它的端口(TCP 24711)。
  • 匿名统计:服务器会发送一些数字(在线玩家数、TPS)来帮助改进游戏,绝不会发送账号,也不会发送任何一行聊天。--no-telemetry 可以把它们关掉。

家用服务器的常规建议同样适用:让机器的系统保持最新,只转发你需要的那个端口。在 Linux 上架设?Linux 版本的内容见 Linux 上的 Openworld。

关注 Openworld

@play_openworld 是 Openworld 的 Instagram 官方主页:游戏视频和每次更新的新内容。

@play_openworld

Openworld 由 @tompascard 创建

服务器跑起来了?现在把玩家请进来:和朋友一起玩的指南会告诉你,每个人需要准备什么,以及该发给他们的那条消息。

三步进入游戏(和它的服务器)

  1. 1用下载的文件安装 Openworld:它会为你装好 launcher。
  2. 2在 launcher 中创建你的账号并确认你的邮箱。
  3. 3选好用户名……开始游戏。

常见问题

一台家用服务器能同时容纳多少玩家?

服务器默认设置了 100 个名额(在 server.json 里可调 1 到 1,000)。在家里真正限制它的,是负责生成新地形的处理器,以及你的上传带宽;网页控制台会显示 TPS 和 tick 时间,让你看清自己处在什么水平。

我需要固定 IP 吗?

不需要。把你当前的公网地址告诉朋友;如果变了,再发新的给他们。动态域名或 mesh VPN 能省去这个麻烦。

能在树莓派或旧笔记本上 24 小时运行吗?

旧的 x64 笔记本或 PC,可以:服务器是一个适用于 Linux x64、Windows x64 和 macOS 的控制台程序,不需要图形。树莓派,不行:目前没有 ARM Linux 的服务器。也没有官方的 Docker 镜像。

能把我的单人世界搬到服务器上吗?

目前还没有这个按钮。如果只是和几位朋友玩,改为把你的单人世界对局域网开放(暂停菜单里的对局域网开放)。用同样的文字种子(--seed-text)和地形类型启动服务器,会得到相同的风景,只是没有你的建筑。

怎样备份我的服务器?

停止它,把 owserver_data 文件夹连同 server.json 和 roles.json 一起复制走,再重启。恢复就是把那份副本放回去。

没有互联网也能用吗?

可以,用 --offline:不核对账号,每个人保留自己输入的用户名,穿着默认皮肤。在线模式(默认)需要互联网来核对账号。

我怎样获得 Openworld 服务器?

你在 launcher 里和游戏放在一起下载它。玩家仍然需要有游戏。

继续阅读

更多指南

游戏

继续探索 Openworld

下载

准备好出发了吗?

一个小文件,你的星球就在等你。游戏会自动更新。

现已上线。Openworld 处于 alpha 阶段,你今天就能玩。

  1. Alpha你在这里今天。完整的游戏,从 alpha 第一天起就能玩,而且价格更低。
  2. Beta等游戏更稳定的时候。
  3. 正式版最终版本。launcher 会自动带你过去。

无需等待:Openworld 从本站下载,不是从 Steam 或任何其他商店。

你的系统

Windows

Windows 10 或 11,64 位

下载

Openworld.exe

你的系统

Linux

x64,glibc 2.31+(Ubuntu 20.04+),Vulkan 驱动

下载

Openworld-linux-x64.tar.gz

  1. 1用下载的文件安装 Openworld:它会为你装好 launcher。
  2. 2在 launcher 中创建你的账号并确认你的邮箱。
  3. 3选好用户名……开始游戏。

关注 Openworld

@play_openworld 是 Openworld 的 Instagram 官方主页:游戏视频和每次更新的新内容。

@play_openworld

Openworld 由 @tompascard 创建

Openworld 已经上线了吗?

是的。Openworld 从 alpha 第一天起就能玩。下载 Mac、Windows 或 Linux 版,在 launcher 里创建账号就能开玩:没有需要等待的发售日期。

Openworld 会上架 Steam 吗?

Openworld 不在 Steam 或任何其他商店,你也不需要它们:直接从本站下载游戏,今天就能玩,它的 launcher 会让游戏始终保持最新。

Alpha、Beta、正式版:分别是什么意思?

Alpha:游戏已经能玩,并随着每次更新不断成长;内容会变,有时也会出问题。等它更稳定后,会进入 Beta,再到正式版。从头到尾都是同一款游戏:你现在就能玩,每个新版本由 launcher 自动安装。

为什么要在 alpha 阶段玩?

你可以马上开玩,看着游戏随着一次次更新慢慢长大,而且 alpha 比之后的正式版价格更低。

macOS 提示应用“未打开”

目前这是正常的:应用还没有拿到 Apple 证书。点击完成,打开系统设置 → 隐私与安全性,向下滚动到 Openworld,点击仍要打开。只需要一次。

Windows 显示“Windows 已保护你的电脑”

安装程序还没有拿到证书。点击更多信息,然后点击仍要运行。

Linux 上怎么办?

解压压缩包并运行程序:

tar xzf Openworld-linux-x64.tar.gz && ./Openworld

你需要支持 Vulkan 的显卡驱动(Mesa 或 NVIDIA),以及 glibc 2.31 或更高版本(Ubuntu 20.04、Debian 11、Fedora 32 或更新版本)。

我需要什么样的电脑?

一块支持 Vulkan 的显卡(Mac 上需要 macOS 11 或更新版本)。游戏会自动调整视距和天气质量:一台较新的笔记本电脑就够了。

launcher 打不开?

请从 NVIDIA、AMD 或 Intel 的官网更新显卡驱动。如果笔记本有两块显卡,请两块都更新。在 Linux 上,请安装 Mesa 的 Vulkan 驱动(mesa-vulkan-drivers)。

正在下载!

安装 Openworld

游戏还没有拿到 Apple 和 Microsoft 的证书:第一次启动时,你的电脑会起疑心。这很正常,下面教你怎么告诉它一切安好。只需要一次。

  1. 1

    打开 Openworld.dmg

    把 Openworld 拖进应用程序文件夹,然后从“应用程序”中启动它。

  2. 2

    macOS 拒绝了:点击“完成”

    千万别点“移到废纸篓”。

  3. 3

    系统设置 → 隐私与安全性

    向下滚动到“已阻止 Openworld”,点击仍要打开并确认(输入密码或使用触控 ID)。

  4. 4

    重新启动 Openworld

    最后一次点击打开。就这样:macOS 不会再问了。

习惯用终端吗?
xattr -dr com.apple.quarantine /Applications/Openworld.app

然后像往常一样启动 Openworld。