切换语言: Deutsch English Español 日本語 Русский Українська

Multiplayer/zh: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
Tiumo (talk | contribs)
m en edit was minor
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Languages}}{{Stub/zh}}
{{Languages}}{{Translation verification|revisionID=214134}}
[[File:players_colored_preview.png|190px|right]]
虽然异星工厂是一款单机游戏,但它也支持多人游戏,允许{{L|Player}}们在游戏中合作互助,或在对战模式中相互竞争。本页面会介绍如何创建多人游戏、如何加入多人游戏,以及管理其他用户和服务器时的需要的管理员功能。默认情况下,玩家们可以在[[Game modes and options/zh|标准模式]]游戏中进行合作,以获取游戏胜利。更多场景(包括对战地图)可以在官方论坛的[https://forums.factorio.com/viewforum.php?f=36 地图和场景区]下载。


[[File:players_colored_preview.png|190px|right]]除了单人游戏之外,Factorio还支持多人游戏,允许许多玩家合作并互相帮助,或者在PVP中相互对抗。本页面介绍如何设置多人游戏以及如何加入,以及在管理其他用户和服务器时涉及的多人游戏管理员功能。默认情况下,多人游戏运行合作[[Game modes and options/zh|自由模式]],所有玩家一起工作,发射一颗卫星进入太空的火箭。其他场景,包括PvP地图,可以从[https://forums.factorio.com/viewforum.php?f=36&sid=93d1fbe9336d31d6bac60847b6c97985 地图和场景论坛]下载。
== 创建多人游戏 ==


== 设置多人游戏 ==
玩家可以加入多人游戏,或以本机为主机创建多人游戏,亦或由专用服务器托管。多人游戏可以在局域网或整个互联网范围内公开,允许其它玩家加入游戏。


玩家可以加入多人游戏,或以本机为主机建立多人游戏,亦或由专用服务器托管。建立好的多人游戏可以被同一局域网玩家或全球其他玩家找到并加入。
要创建多人游戏,可以在主菜单中选择“多人游戏”,然后选择以下选项之一来创建游戏:


使用''开始游戏''菜单中的''多人游戏''按钮开始多人游戏,选择''新游戏''或''载入游戏''或''游戏场景''建立主机并开始游戏,或者选择''局域网游戏''或''互联网游戏''以连接到已经其他人的的游戏中。主机也可以选择不在服务器列表中显示建立的游戏,在这种情况下,您需要服务器的(公共或其他方式)IP地址;然后你可以选择''连接服务器''以加入游戏。
* '''搭建服务器-创建游戏''':选择所需场景,{{L|Map generator}}设置,并设置服务器可见性。服务器可见性决定它被哪些玩家搜索到。玩家可以进行如下设置:
 
** '''互联网''':游戏将在互联网大厅列表中列出。
选择''开始游戏''菜单中的''多人游戏''按钮开始多人游戏。然后从以下选项选择联机方式并开始游戏:
** '''Steam''':启用或禁用Steam的“加入游戏”功能。
 
* '''搭建服务器-创建游戏''':指定需要的场景,调整[[Map_generator/zh|地图生成器]]的设置,并设置服务器可见性。服务器可见性决定你的游戏能被哪些玩家搜索到。你可以从以下选择:
** '''互联网''':你的游戏将在互联网大厅列表中列出。
** '''Steam''':开启后可以通过 Steam 的“加入游戏”功能。
** '''局域网''':你的游戏将在局域网大厅列表中列出。
** '''局域网''':你的游戏将在局域网大厅列表中列出。
* '''搭建服务器-载入存档''':从列表中选择一个存档,并设置服务器可见性。
* '''搭建服务器-载入存档''':从列表中选择一个存档,并设置服务器可见性。


可以通过如下选项加入一个服务器:
要加入多人游戏,可以选择以下选项之一:


* '''互联网大厅''':根据你的要求搜索服务器并加入游戏。
* '''互联网大厅''':根据玩家要求搜索服务器并加入游戏。
* '''局域网大厅''':加入你本地局域网上的服务器。
* '''局域网大厅''':加入本地局域网上的服务器。
* '''服务器直连''':通过服务器的IP地址加入服务器。该选项可以加入未设置任何可见性的服务器。
* '''服务器直连''':通过服务器的IP地址加入服务器。该选项可以加入未设置任何可见性的服务器。


注意与提示:
注意与提示:


* 所有玩家的游戏版本和安装的mod必须完全一致。
* 服务器中所有玩家的游戏版本和模组必须完全一致。
* 游戏使用端口'''34197'''。端口可以在[[Application directory|设置]]中更改。
* 服务器使用端口'''34197'''。端口可以在[[Application directory/zh|配置文件]]中更改。
* 游戏仅支持 '''UDP'''协议。请确保你的路由器有正确的设置。(游戏拥有自己的“可靠通信层”建立在UDP之上来解决丢包问题。)
* 异星工厂仅支持'''UDP'''协议。请确保路由器正确配置。(游戏基于UPD构建自己的“可靠通信层”,以解决丢包和重组问题。)
** 请确保没有防火墙或杀毒软件阻止了UDP数据包。
** 确保路由器转发端口正确配置,端口为34197。
* 同时联机人数的理论上限是[http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6481&p=50661#p50586 65535],然而,实际的限制要低得多。
** 确保路由器不会对34197端口发送的数据包进行[https://doc.pfsense.org/index.php/Static_Port 端口随机化](一些路由器默认会执行此操作)。玩家需要进行[https://forum.pfsense.org/index.php?PHPSESSID=3k4h9n5o2tksgqv910fknf7qt7&topic=142188.msg798594#msg798594 额外设置]以避免此类情况发生。
** 确保防火墙或杀毒软件不会阻止UDP数据包传输。
* 服务器联机人数的理论上限是[http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6481&p=50661#p50586 65535],然而,实际的上限要低得多。一些热门主播已经成功尝试过一百人以上同时在线。


===专用/Headless服务器===
=== 专用/无头服务器 ===


从Factorio版本0.12.0开始,可以使用--start-server命令行选项启动专用(或Headless)服务器。您可以运行factorio --help来获取Factorio接受的所有命令行参数的列表。
专用或无头(Headless,指不配备键鼠、显示器等外设,仅通过网络进行操作的设备)服务器可以通过<code>--start-server</code>命令行选项启动。玩家可以运行<code>factorio --help</code>命令以获取游戏支持的所有命令行参数的列表。任何版本的游戏都可以在无头模式下运行,尽管Linux服务器可能更倾向于使用无头版本(不含图像资源)的游戏以减少下载量。无头版本的游戏可在[https://www.factorio.com/download 官方下载页面]下载。


在Headless模式下:
在无头模式下:


* 图形界面未初始化。(启动速度更快,内存使用量更少,适用于Headless服务器)
* 图形界面不会初始化。(启动速度更快,内存使用量更少,适用于无头服务器)
* 在键入命令后,游戏立即开始,并按照给出的参数(存档名)加载存档。
* 在键入命令后,游戏立即启动,并按照给出的参数(存档名)加载存档。
* 服务器在游戏中没有角色。
* 服务器在游戏中没有对应角色。
* 在没有玩家连接的情况下,游戏会暂停。(尽管可以使用server-settings.json中的no-auto-pause选项覆盖此选项)
* 在没有玩家连接的情况下,游戏会暂停。(尽管可以使用server-settings.json中的no-auto-pause选项覆盖此设置)
* 退出时保存游戏。(并正常执行自动保存)
* 退出时保存游戏。(并正常执行自动保存)


从0.13开始,--start-server命令后需要加上存档文件的路径。
从0.13版本开始,<code>--start-server</code>命令后需要加上存档文件的路径。


您需要在启动服务器之前创建保存文件,因为专用服务器需要提供保存文件。这可以使用--create命令行参数轻松完成。例如:
玩家需要在启动服务器之前创建存档文件,因为专用服务器需要一个存档文件。这可以通过<code>--create</code>命令行参数轻松完成。例如:


<pre>
<pre>
./bin/x64/factorio --create ./saves/my-save.zip      # 这将建立一个新存档,就像在游戏中点击新游戏那样
./bin/x64/factorio --create ./saves/my-save.zip      # 建立新存档文件,等效于在游戏中点击“创建游戏”按钮
</pre>
</pre>


<pre>
<pre>
./bin/x64/factorio --start-server ./saves/my-save.zip # 这将启动游戏服务端,并且会使用上一行中创建的存档
./bin/x64/factorio --start-server ./saves/my-save.zip # 启动服务器并使用上一行中创建的存档文件
</pre>
</pre>


有几个JSON配置文件可供factorio用来更改服务器和地图设置:
有数个JSON配置文件可用于更改服务器和地图设置:


* 在map-gen-settings中设置地图生成器使用的参数,例如宽度和高度,矿块的频率和大小等。(在0.13中添加)
* '''map-gen-settings''':用于设置{{L|Map generator}}使用的参数,例如地图的宽度和高度,资源的分布情况和规模大小等。
* 编辑map-settings来控制污染扩散,扩散和演变等等。(0.15版本中增加)
* '''map-settings''':设置{{L|Pollution}}扩散、[[Enemies/zh#扩张|敌人扩张]]和[[Enemies/zh#进化|进化因子]]等参数。
* server-setting将多个命令行选项合并到单个文件中(在0.14.12中添加)
* '''server-setting''':将多行命令合并到单个文件中。


data子目录中包含每个参数的示例文件。
每个参数的示例文件都保存在其data子目录中,也可从官方的[https://github.com/wube/factorio-data Github项目]上找到。


创建新地图时,必须将--map-gen-settings和--map-settings选项与--create选项一起使用。例如:
创建新地图时,<code>--map-gen-settings</code>和<code>--map-settings</code>选项必须与<code>--create</code>选项一起使用。例如:


<pre>
<pre>
Line 69: Line 69:
</pre>
</pre>


启动factorio服务器需要您指定server-settings.json文件的位置。默认情况下,这是在factorio数据文件夹中。例如,要使用最新保存的地图启动factorio,您可以运行:
服务器在启动时需要指定 server-settings.json 文件的位置。默认情况下,该文件位于游戏的data文件夹中。例如,要使用最近保存的地图启动游戏,可以运行:


<pre>
<pre>
Line 75: Line 75:
</pre>
</pre>


要在同一台计算机上启动服务器和客户端,需要使用以下启动选项启动客户端:
在Windows系统中,使用bat批处理命令启动服务器会很有用,其内容如下:


<pre>
<pre>
--no-log-rotation
start /wait .\bin\x64\factorio.exe --start-server-load-latest --server-settings .\data\server-settings.json
</pre>
</pre>


===设置Linux Factorio服务器===
请参阅{{L|Command line parameters}}以获取更多信息。


'''注意''':Factorio现在需要glibc 2.18版本,但 CentOS/RHEL 7 仅附带 2.17 版本,因此如果不[https://forums.factorio.com/viewtopic.php?t=54654#p324493 手动编译glibc 2.18],本指南将不再起作用。
=== 创建Linux服务器 ===


本分步指南已在新安装的 CentOS 7 和 RHEL 7 环境下进行了验证,同时在大多数发行版中几乎不用做任何更改。
'''注意''':异星工厂现在需要2.31版本的glibc运行库,但 CentOS/RHEL 7仅附带2.17版本的运行库,因此本指南在没有[https://forums.factorio.com/viewtopic.php?t=54654#p324493 手动编译]glibc 2.31的情况下将不再适用。


本指南假设您将在 '''/opt/factorio''' 下安装 Headless 服务器,请根据您自己的设置调整路径。我们还建议您将 Factorio 服务器在单独的用户中运行,以加强安全性。
以下内容已在全新安装的CentOS 7和RHEL 7环境下进行了验证,同时在大多数Linux发行版中几乎不需要进行任何更改。


请注意,Linux 有两种不同的软件包可用于运行 Headless 服务器。首先是普通的 Linux 下载,其中包含完整的游戏。另一种是特殊的 [https://www.factorio.com/download-headless/stable Headless] 包。Headless 包不包含与纯服务器无关的任何文件,如图形和声音。它也不与服务器机器上不存在的库链接,如 Xlib,libGL 或 libasound。如果在第三方托管服务器中运行,应选择此选项。
本指南假设您将在 '''/opt/factorio''' 目录下安装无头服务器,玩家可以根据自己的设置改变安装路径。此外建议玩家以单独的用户身份运行游戏服务器,以增强设置的安全性。


本指南不处理防火墙/端口转发,因为这可以在 Linux 中以各种方式完成(请务必在您的特定发行版上以 Linux 管理员的身份了解这些内容)
请注意,有两种不同的Linux游戏版本适用于无头服务器。首先是标准的Linux版本,包含完整的游戏内容。另一种是特殊的[https://www.factorio.com/download-headless/stable 无头版本]。无头版本不包含与服务器运行无关的其它文件,例如图像和声音资源;它也不与服务器上不存在的运行库链接,如Xlib、libGL或libasound。如果在第三方托管服务器中运行,应选择此选项。


==== 基本安装 ====
本指南不涉及防火墙/端口转发,因为这可以通过Linux系统以多种方式进行(玩家需要掌握在自己的Linux系统中以管理员身份执行这些操作的方法)。


您可以使用 [https://github.com/Bisa/factorio-init Linux factorio-init脚本]以更好的方式启动/停止无头服务器。该脚本将确保您只能在服务器启动时使用最新的存档(即使这是自动保存),同时还可以设置许多其他设置项,例如自动保存频率和延迟设置。此脚本还将简化与 [https://github.com/narc0tiq/factorio-updater Linux factorio-updater脚本]结合使用时更新服务器的流程。
==== 安装游戏 ====


* 下载所选软件包 - 完整游戏或是无头包 - 并将 Linux tar.gz 或 tar.xz 软件包上传到您的服务器的 /tmp 目录下
* 下载游戏安装包(完整版或无头版均可),并将下载的 tar.gz 或 tar.xz 文件包上传到服务器的 /tmp 目录中。
* 将 /tmp 中的软件包解压到 /opt/factorio
* 将 /tmp 目录中的文件包解压到 /opt/factorio 目录中:


<pre>
<pre>
$cd /opt/
$cd /opt/


$sudo tar -xzf /tmp/factorio.tar.gz # 请使用正确的文件名称。它包含factorio版本号
$sudo tar -xzf /tmp/factorio.tar.gz # 请使用正确的文件名称,包含游戏版本号
$sudo tar -xJf /tmp/factorio.tar.xz # 如果您下载了.tar.xz文件请使用这条命令(版本0.15.x)
$sudo tar -xJf /tmp/factorio.tar.xz # 如果下载的是.tar.xz文件,请使用此命令(0.15.x 版本)
</pre>
</pre>


* 将一个新用户添加到您的系统中,并为其分配 factorio 目录的所有权(请不要以root用户身份运行,可能需要sudo)
* 在Linux系统中创建新用户,并为其分配 factorio 目录的所有权(请勿以root用户身份运行,可能需要sudo权限)


<pre>
<pre>
Line 120: Line 120:
</pre>
</pre>


如果失败并提示它无法找到或打开你设置的 savename.zip,这时只需从自己的计算机上传一个保存,并将其保存在 /opt/factorio/saves 目录中,或者使用 --create ./saves/newgame.zip 创建一个存档。
如果运行失败,并提示无法找到或打开 savename.zip 文件,则游戏实际上就安装成功了。此时玩家只需上传一个自己的存档文件,并将其保存在 /opt/factorio/saves 目录中,或者使用<code>--create ./saves/newgame.zip</code>命令创建一个存档文件即可。


===如何在匹配服务器中列出服务器托管的游戏===
=== 如何在匹配服务器中列出服务器托管的游戏 ===


为了将游戏发布到匹配服务器,需要给Factorio一些额外的信息,而不仅仅是保存文件的位置。这些信息在''服务器设置文件''中提供。
要把游戏发布到匹配的服务器,除了保存文件的位置以外,还需一些额外的信息。这些信息需要在''服务器配置文件''中设置。


要创建服务器设置文件,请查看Factorio [[Application_directory|Application目录]]中data/server-settings.example.json中的示例文件。推荐的方法是制作此示例文件的副本并编辑副本。
要创建服务器配置文件,请查看游戏{{L|Application directory}}中的 data/server-settings.example.json 示例文件。建议复制该文件后进行编辑。


以下值可以更改:
以下值可以更改:


; Name: 这将是服务器在服务器列表中显示的名称
; Name: 服务器在游戏大厅中显示的名称。
; Description: 服务器的简要说明
; Description: 服务器简要说明,最多包含5000个字符,参见[https://factorio.com/blog/post/fff-304 多人服务器描述]。
; Tags: 游戏标签列表
; Tags: 游戏标签列表。
; Max Players: 允许您限制可以同时连接到服务器的玩家数量。如果你不想要限制,只需将max_players设置为0即可。
; Max Players: 同时连接到服务器的最大玩家数量。如果不想限制此数量,只需将 max_players 设置为0即可。


* 服务器浏览器的可见性:可以是公共的,局域网可见的或隐藏的。
* 服务器可见性:可在公开(Public)、局域网(LAN)和隐藏(Hidden)三者中选择。
** 公开:服务器将出现在公共服务器列表中。这需要在下方填写登录凭据。
** 公开:服务器将在互联网大厅列表中展示。需要填写用户凭证。
** 局域网:服务器不会出现在公共服务器列表中,但可通过“局域网游戏”按钮使用
** 局域网:服务器不在互联网大厅列表中展示,但可通过“局域网游戏”选项访问。
** 隐藏:客户端必须使用服务器的IP地址进行连接
** 隐藏:客户端必须使用服务器的IP地址进行连接。
* 使用用户名和密码或验证令牌的用户凭证(可在factorio网站或player-data.json中找到):如果您希望公开服务器,则这些是必需的。否则可以留空。
* 用户凭证,使用用户名和密码,或身份验证令牌(可在官方网站或player-data.json中找到):如果要公开服务器,则需要填写用户凭证。否则可以留空。
** 出于安全原因,建议使用身份验证令牌,因为此文档以纯文本形式存储。应该指出,身份验证令牌也是敏感信息,因此建议您保密。
** 出于安全考虑,建议使用身份验证令牌,因为此文档以纯文本形式存储。应该指出,身份验证令牌也是敏感信息,因此玩家最好 将其保密。
* 服务器密码
* 服务器密码
** 字段名称是game_password
** 字段名称为 game_password
* 是否验证用户身份
* 是否验证用户身份


(factorio的v0.14中还有其他值。)
(在0.14版本中还有其他值。)


===技术实施细节===
=== 技术细节 ===


关于多人游戏的一些技术细节的注意事项由开发团队在几个Friday Facts博客文章中发布:
开发团队在周五工厂报中公布了多人游戏的一些技术细节:


* [http://www.factorio.com/blog/post/fff-76 步调一致架构]
* [http://www.factorio.com/blog/post/fff-76 同步架构]
* [http://www.factorio.com/blog/post/fff-99 客户端 - 服务器连接]
* [http://www.factorio.com/blog/post/fff-99 客户端 - 服务器连接]
* [http://www.factorio.com/blog/post/fff-143 NAT穿透,0.13引入]
* [http://www.factorio.com/blog/post/fff-143 NAT穿透](在0.13版本引入)
 
=== DNS SRV 记录 ===
异星工厂从1.1.67版本起支持[https://www.cloudflare.com/learning/dns/dns-records/dns-srv-record/ DNS SRV记录]。
 
此服务使玩家可以在单台主机上更容易地运行多个游戏服务器,同时允许用户通过不同的子域名连接服务器,而非必须输入端口号。
 
服务名称为<code>_factorio</code>,该服务仅支持<code>_udp</code>协议。
 
'''示例:'''
 
<pre>
Domain: subdomain.domain.tld
IP:    192.0.2.2
Port:  10002
 
DNS records:
subdomain.domain.tld    IN A  192.0.2.2
_factorio._udp.subomain.domain.tld IN SRV 0 0 10002 subomain.domain.tld.
</pre>
 
此时,连接到<code>subdomain.domain.tld</code>的客户端实际上会连接到<code>subdomain.domain.tld:10002</code>
 
'''Cloud Flare配置示例:'''
 
[[File:Screenshot of SRV record settings Cloudflare dashboard.png]]
 
'''日志条目:'''
 
* 游戏将在找到指定域的SRV记录时记录"DNS SRV lookup returned [...]"(DNS SRV查找返回[...])信息
* 当没有找到SRV记录时,游戏将记录"DNS SRV lookup for [domain] didn't return any usable records"(DNS SRV查找[域名]未返回可用记录)的详细日志。


===杂项===
=== 其它 ===


* [[Console/zh|控制台命令]]的按键也用于多人游戏中的开始聊天。要执行命令而不是聊天,您需要在命令前键入/c。执行的命令对所有玩家都是可见的。此外,多人游戏必须启用了允许命令工作的设置。
* 开启{{L|Console}}命令的快捷键也用于在多人游戏中发起聊天。要执行命令而不是发起聊天,需要在命令前输入/c。执行的命令对所有玩家都是可见的。此外,多人游戏必须启用“允许命令工作”设置。
* 使用该命令设置玩家的颜色:
* 设置玩家角色的颜色:
<pre>
<pre>
/c game.players["player_name"].color = {r=0.7, g=0.5, b=0.1, a=0.9}
/color r g b
</pre>
</pre>


r,g和b分别代表红色,绿色和蓝色(可能的值介于0和1之间,请使用http://prideout.net/archive/colors.php上的最右边一列将颜色转换为rgb数字)。 a是阿尔法通道,也就是透明度。
r、g和b分别代表红色,绿色和蓝色(输入0和1之间的数字,可使用[https://www.w3schools.com/colors/colors_converter.asp 此网站]将颜色转换为RGB数值)。
 
* 要给自己赋予管理员权限,玩家需要在 factorio-current.log 所在的目录中创建 server-adminlist.json 文件。该文件应当包含所有管理员的用户名,例如:<code>[ "user1", "user2" ]</code>。
 
此文件将在管理员通过控制台提升玩家权限时创建。


== 加入多人游戏 ==
== 加入多人游戏 ==


从版本0.13开始,端口转发不再是玩家加入多人游戏的唯一选择。现在玩家还可以通过Steam服务彼此加入游戏。
从0.13版本开始,端口转发不再是玩家加入多人游戏的唯一方式。现在玩家还可以通过Steam服务加入多人游戏,或者直接加入已经通过端口转发的主机。


玩家可以通过多种方式来加入一个多人游戏:
玩家可以通过多种方式加入多人游戏:


* 通过直接输入公共IP和端口加入Factorio。
* 直接输入公开服务器的IP地址和端口。
* 从活跃的公共服务器菜单中选择服务器加入。
* 在互联网大厅中选择活动服务器。
* 通过Steam服务加入游戏。
* 通过Steam服务加入游戏。
* 通过局域网进行联机游戏。
* 通过局域网进行联机游戏。


建议玩家使用语音聊天(TeamSpeak,Discord,Mumble,(译注:或者中国特色语音软件)),因为您需要协调连接,构建,处理攻击等等。TeamSpeak服务器发布在[https://forums.factorio.com/viewforum.php?f=53 多人论坛]中。 Factorio社区的公共Discord频道可以在[https://discord.gg/yGQWgy5 这里]找到。
=== IP地址和端口 ===
 
要使用IP地址加入多人游戏,玩家需要知道有效的服务器公网IP。可以通过社交媒体,网站或口耳相传来获取这些信息。知道IP和端口后,只需进入开始游戏 ->多人游戏 ->连接服务器,并提供所需的IP以及端口即可加入游戏。
 
如果服务器设置正确并允许公共连接,玩家应该可以正常加入游戏。
 
=== 服务器列表 ===
 
异星工厂的开发者维护着一个包含所有公开服务器的列表,这些服务器允许玩家通过互联网大厅直接加入。大多数服务器需要密码,但同时也有许多完全公开的服务器可以无密码连接。要通过服务器列表加入多人游戏,请转到开始游戏 ->多人游戏 ->互联网游戏。如果需要,玩家需要提供官网账号名,然后会显示公共服务器列表。只需选择一个并加入就可以开始游戏。
 
=== Steam服务 ===


=== 通过输入IP以及端口加入游戏 ===
Steam提供了一个“游戏邀请”系统,使用它即可加入多人游戏。玩家可以在Steam文档中找到更多关于如何使用此功能的信息。这是普通玩家与朋友一起进行多人游戏的最简单(可能也是最佳)方式,因为Steam会替玩家处理所有问题。


要通过IP加入多人游戏,您需要知道有效的服务器公网IP。您可以通过社交媒体,网站或口耳相传来得到这些信息。获得IP和端口后,只需进入开始游戏 ->多人游戏 ->连接服务器,并提供所需的IP以及端口即可加入游戏。
=== 局域网游戏 ===


如果服务器设置正确并可以接受公共连接,你应该可以正常加入游戏。
如果玩家与朋友使用相同的互联网连接(例如在同一幢建筑或同一个学校中),就可以通过局域网进行游戏。只需转到开始游戏 - >多人游戏 - >局域网游戏即可。


=== 通过服务器列表加入游戏 ===
=== 使用NAT穿透连接服务器 ===


Factorio的开发者维护了一个包含所有公开服务器的列表,这些服务器向官方服务端声明并认证后,即可允许玩家通过Factorio直接加入。大多数服务器需要密码,但同时也有许多完全公用的服务器可以无密码连接。要通过服务器列表加入,请转到开始游戏 ->多人游戏 ->互联网游戏。如果询问,请提供您的Factorio.com用户名,并显示公共服务器列表。只需选择一个并加入就可以开始游戏啦。
异星工厂要求服务器(在客户端 - 服务器模式下)具有公网IP地址,或者所有玩家都在同一局域网内。如果玩家的网络位于NAT设备后方,就必须设置端口转发(请参阅[[#创建多人游戏|上文]]的端口号)或使用虚拟局域网软件,例如蛤蟆吃(Hamachi)。


=== 通过Steam服务加入游戏 ===
多人游戏将以客户端 - 服务器模式启动(也被称为[http://www.factorio.com/blog/post/fff-99 多人转发]模式)。在此模式下,所有客户端都会将数据包发送到服务器,然后服务器再将数据包转发给其他客户端。这种模式的优点是同时允许局域网和公网中的玩家加入游戏;缺点是由于数据包必须经过额外的转发(通过服务器),因此可能造成些许延迟。


Steam提供了一个“游戏邀请”系统,只需使用它即可加入别人的游戏。你可以在相关文档中找到更多关于如何使用steam的信息。这是普通玩家与朋友一起进行多人游戏的最(简单)佳方式,因为它允许Steam处理所有事务。
* [https://forums.factorio.com/viewtopic.php?f=53&t=6393 不登录路由器转发端口](官方社区,英文)
* [http://steamcommunity.com/sharedfiles/filedetails/?id=653628496 蛤蟆吃连接指南](Steam社区,英文)


=== 加入一个局域网游戏 ===
== 对战模式 ==


如果你在同一个局域网内有一些朋友建立了游戏(在同一个建筑物中),你就可以通过局域网加入。只需转到开始游戏 - >多人游戏 - >局域网游戏即可。
在对战模式中,玩家可以选择不同的阵营。每个阵营可以由一名(自由对战)或多名(团队合作)玩家组成。每个阵营都有各自独立的科研进度。此外,每个阵营的{{L|Military units and structures}}都会将其它阵营的玩家视为敌人并自动开火,除非进行了停火设置。注意,根据场景的不同,停火可能是单方面的——将其它阵营设置为停火并不能保证他们也将己方阵营设置为停火。


=== 寻找其他玩家 ===
要创建一个多人对战游戏,玩家可以在“开始游戏”界面中选择“对战模式”场景,或下载一个支持对战模式的自定义场景。


* 使用论坛的[https://forums.factorio.com/viewforum.php?f=53 多人游戏版块]。
下载对战场景后,玩家需要将其移动到应用程序目录中,并使用该场景创建多人游戏。
* 许多玩家使用Evolve等其他软件来与其他玩家会面。这也具有在玩家中创建虚拟局域网的“优势”。
* 有些人还使用[https://forums.factorio.com/viewtopic.php?f=5&t=9136 Steam]来寻找其他玩家。
* 通过一个带有各种搜索选项的外部[http://serverlist.lgms.nl/ 服务器浏览器]。
* 告诉你的朋友购买Factorio,然后和他们一起玩!


=== 穿过NAT连接服务器 ===
# 下载游戏场景文件,并将场景文件夹移动到[[Application directory/zh#用户数据目录|用户数据目录]]下的 ''/scenarios'' 目录中。
# 启动游戏
# 点击 ''开始游戏''
# 点击 ''多人游戏''
# 点击 ''场景''
# 选择需要的对战场景,并点击 ''创建''
# 选择延迟和其它设置,然后点击 ''开始游戏''
# 其它玩家现在可以加入游戏


Factorio要求服务器(在客户端 - 服务器模式下)具有可公开访问的IP地址,或者所有播放器都在同一局域网内。如果您位于NAT后面,则必须设置端口转发(请[[Multiplayer/zh#MPlaying_over_LAN_.2F_Internet|参阅上面]]的端口号)或使用虚拟LAN软件(如Hamachi或Evolve)。
=== 阵营 ===


多人游戏将以客户端 - 服务器模式启动(也是[http://www.factorio.com/blog/post/fff-99 多人转发]模式)。在这种模式下,所有客户端都将其数据包发送到服务器,服务器将流量转发给其他客户端。这样做的好处是它允许一些玩家在局域网内而另一些在外网进行游戏。由于数据包必须经过额外的转发(通过服务器),因此这样做的缺点是可能稍微有些延迟。
可以通过控制台手动创建阵营。这允许使用任意地图/场景进行多人对战游戏。由于玩家只能通过控制台命令来进行停火设置,这可能不如专门的对战场景方便。


* [https://forums.factorio.com/viewtopic.php?f=53&t=6393 不登录到路由器转发端口]
每个阵营都有独立的科技进度,不同阵营可能会相互攻击。
* [https://forums.factorio.com/viewtopic.php?f=53&t=7714 Evolve连接指南]
* [http://steamcommunity.com/sharedfiles/filedetails/?id=653628496 蛤蟆吃连接指南]


== 游戏类别 ==
创建和设置阵营的控制台命令如下:


=== Coop ===
<pre>
game.create_force("Name")
--创建名称为"Name"的阵营


Coop-game runs without any further preparation ( http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6501 )
game.players["Player_name"].force = game.forces["Name"]
--将名称为"Player_name"的玩家划分到名称为"Name"的阵营


=== PvP ===
game.forces["Name"].set_cease_fire("Other_force_name", true)
--为阵营设置停火设置为"other force"(其它阵营)


* [http://www.factorioforums.com/forum/viewtopic.php?f=14&t=8352 PvP with craftable biters]
game.forces["Name"].set_spawn_position({x = 10, y = 20}, game.surfaces[1])
--设定阵营出生点


== Technical Implementation ==
game.print(#game.forces)
--输出阵营的玩家数目


* [http://www.factorio.com/blog/post/fff-76 Friday facts article]
for name, force in pairs (game.forces) do
  game.print(name)
end
--输出所有阵营的名称
</pre>


== More Tools/Infos ==
一个阵营的玩家/实体与非友好阵营的实体的互动是受到限制的,但某些互动仍然可以进行:
* use mods for planning. See [http://www.factorioforums.com/forum/viewtopic.php?f=14&t=6788 basic planner], [http://www.factorioforums.com/forum/viewtopic.php?f=14&t=4022 Planning-Tool-Mod]...
* look into [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer forum], most other questions are answered there.


''And always remember that Factorio in v0.11 isn't intended to work well on internet connections, so keep patient. ;)
;手动拾取
: 玩家可以拾取敌方阵营的传送带上的物品。注意:这种拾取不是自动的,机械臂不能从敌方传送带上拾取物品。
;传送带连接
: 传送带的连接是不分阵营的。因此玩家可以将己方传送带连接到敌方传送带上,从中获取物品。或者也可以将物品(使用机械臂)放置到敌方阵营的传送带上。
;流体连接
: 管道(以及储液罐、管道泵等)的连接是不分阵营的,因此玩家可使用管道泵将敌方储液罐中的流体送入己方储液罐中。反之亦然。
;电力汲取
: 玩家可以在敌方电线杆的覆盖范围内建造电线杆以汲取敌方电力。在敌方电线杆旁边放置的电线杆会自动接入敌方电网,但玩家无法手动连接或断开连接。


== More Guides ==
== 更新概述 ==


* [http://youtube.com/watch?v=MqsqRWNsbPM How To set up a Factorio Multiplayer Server | Guide | Tutorial], by Teaspoon
由于地图上可能存在大量活动,游戏引擎使用了[https://www.factorio.com/blog/post/fff-76 锁步架构]。所有客户端都会进行整个游戏世界的完整模拟,只有玩家活动在网络中传输。
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6585 Dedicated Multiplayer Server Guide], by Icecube45
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6720 Tips to connect in multiplayer], by Nondre


== Miscellaneous tips ==
多人游戏在0.11.0版本加入游戏。当时唯一可用的连接方式是点对点模式,这意味着每个玩家都需要直接连接服务器并与其它所有玩家通信。在0.12.4版本时引入了客户端-服务器通讯模式,其中服务器(无论是专用服务器还是托管服务器)都会将数据转发给所有对等节点,这意味着玩家之间不再需要直接连接。截至0.13版本,P2P连接已被完全移除。
* the key for [[Console commands]] will now initiate a chat in MP. To execute commands you need to type '/c' before the command!
* Set the player's color using the command
/c game.players[x].color = {r=0.7, g=0.5, b=0.1, a=0.9}
Where x is the player number. r, g and b are for red, green and blue respectively (possible values are between 0 and 1, use the right-most column on http://prideout.net/archive/colors.php). a is alpha channel aka Transparency of the color to the base texture. For single player, leave off the "[x]" to set the color.


== Software for routing / establishing connection ==
在0.12.0版本中,游戏引入了“延迟隐藏”机制,游戏将在本地模拟玩家的部分操作,使一些常见交互(例如玩家角色的移动)更加流畅。并非所有动作都采用了延迟隐藏机制——最明显的是,驾驶汽车或火车,以及射击不采用延迟隐藏机制。


* http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6393
{{C|Main}}
* http://www.factorioforums.com/forum/viewtopic.php?f=53&t=6386
* http://www.factorioforums.com/forum/viewtopic.php?f=49&t=7690
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&t=7714 A guide for connecting with evolve]

Latest revision as of 15:51, 27 May 2025

虽然异星工厂是一款单机游戏,但它也支持多人游戏,允许玩家们在游戏中合作互助,或在对战模式中相互竞争。本页面会介绍如何创建多人游戏、如何加入多人游戏,以及管理其他用户和服务器时的需要的管理员功能。默认情况下,玩家们可以在标准模式游戏中进行合作,以获取游戏胜利。更多场景(包括对战地图)可以在官方论坛的地图和场景区下载。

创建多人游戏

玩家可以加入多人游戏,或以本机为主机创建多人游戏,亦或由专用服务器托管。多人游戏可以在局域网或整个互联网范围内公开,允许其它玩家加入游戏。

要创建多人游戏,可以在主菜单中选择“多人游戏”,然后选择以下选项之一来创建游戏:

  • 搭建服务器-创建游戏:选择所需场景,地图生成器设置,并设置服务器可见性。服务器可见性决定它被哪些玩家搜索到。玩家可以进行如下设置:
    • 互联网:游戏将在互联网大厅列表中列出。
    • Steam:启用或禁用Steam的“加入游戏”功能。
    • 局域网:你的游戏将在局域网大厅列表中列出。
  • 搭建服务器-载入存档:从列表中选择一个存档,并设置服务器可见性。

要加入多人游戏,可以选择以下选项之一:

  • 互联网大厅:根据玩家要求搜索服务器并加入游戏。
  • 局域网大厅:加入本地局域网上的服务器。
  • 服务器直连:通过服务器的IP地址加入服务器。该选项可以加入未设置任何可见性的服务器。

注意与提示:

  • 服务器中所有玩家的游戏版本和模组必须完全一致。
  • 服务器使用端口34197。端口可以在配置文件中更改。
  • 异星工厂仅支持UDP协议。请确保路由器正确配置。(游戏基于UPD构建自己的“可靠通信层”,以解决丢包和重组问题。)
    • 确保路由器转发端口正确配置,端口为34197。
    • 确保路由器不会对34197端口发送的数据包进行端口随机化(一些路由器默认会执行此操作)。玩家需要进行额外设置以避免此类情况发生。
    • 确保防火墙或杀毒软件不会阻止UDP数据包传输。
  • 服务器联机人数的理论上限是65535,然而,实际的上限要低得多。一些热门主播已经成功尝试过一百人以上同时在线。

专用/无头服务器

专用或无头(Headless,指不配备键鼠、显示器等外设,仅通过网络进行操作的设备)服务器可以通过--start-server命令行选项启动。玩家可以运行factorio --help命令以获取游戏支持的所有命令行参数的列表。任何版本的游戏都可以在无头模式下运行,尽管Linux服务器可能更倾向于使用无头版本(不含图像资源)的游戏以减少下载量。无头版本的游戏可在官方下载页面下载。

在无头模式下:

  • 图形界面不会初始化。(启动速度更快,内存使用量更少,适用于无头服务器)
  • 在键入命令后,游戏立即启动,并按照给出的参数(存档名)加载存档。
  • 服务器在游戏中没有对应角色。
  • 在没有玩家连接的情况下,游戏会暂停。(尽管可以使用server-settings.json中的no-auto-pause选项覆盖此设置)
  • 退出时保存游戏。(并正常执行自动保存)

从0.13版本开始,--start-server命令后需要加上存档文件的路径。

玩家需要在启动服务器之前创建存档文件,因为专用服务器需要一个存档文件。这可以通过--create命令行参数轻松完成。例如:

./bin/x64/factorio --create ./saves/my-save.zip       # 建立新存档文件,等效于在游戏中点击“创建游戏”按钮
./bin/x64/factorio --start-server ./saves/my-save.zip # 启动服务器并使用上一行中创建的存档文件

有数个JSON配置文件可用于更改服务器和地图设置:

  • map-gen-settings:用于设置地图生成器使用的参数,例如地图的宽度和高度,资源的分布情况和规模大小等。
  • map-settings:设置污染扩散、敌人扩张进化因子等参数。
  • server-setting:将多行命令合并到单个文件中。

每个参数的示例文件都保存在其data子目录中,也可从官方的Github项目上找到。

创建新地图时,--map-gen-settings--map-settings选项必须与--create选项一起使用。例如:

./bin/x64/factorio --create saves/my-save.zip --map-gen-settings my-map-gen-settings.json --map-settings my-map-settings.json

服务器在启动时需要指定 server-settings.json 文件的位置。默认情况下,该文件位于游戏的data文件夹中。例如,要使用最近保存的地图启动游戏,可以运行:

./bin/x64/factorio --start-server-load-latest --server-settings ./data/server-settings.json

在Windows系统中,使用bat批处理命令启动服务器会很有用,其内容如下:

start /wait .\bin\x64\factorio.exe --start-server-load-latest --server-settings .\data\server-settings.json

请参阅命令行参数以获取更多信息。

创建Linux服务器

注意:异星工厂现在需要2.31版本的glibc运行库,但 CentOS/RHEL 7仅附带2.17版本的运行库,因此本指南在没有手动编译glibc 2.31的情况下将不再适用。

以下内容已在全新安装的CentOS 7和RHEL 7环境下进行了验证,同时在大多数Linux发行版中几乎不需要进行任何更改。

本指南假设您将在 /opt/factorio 目录下安装无头服务器,玩家可以根据自己的设置改变安装路径。此外建议玩家以单独的用户身份运行游戏服务器,以增强设置的安全性。

请注意,有两种不同的Linux游戏版本适用于无头服务器。首先是标准的Linux版本,包含完整的游戏内容。另一种是特殊的无头版本。无头版本不包含与服务器运行无关的其它文件,例如图像和声音资源;它也不与服务器上不存在的运行库链接,如Xlib、libGL或libasound。如果在第三方托管服务器中运行,应选择此选项。

本指南不涉及防火墙/端口转发,因为这可以通过Linux系统以多种方式进行(玩家需要掌握在自己的Linux系统中以管理员身份执行这些操作的方法)。

安装游戏

  • 下载游戏安装包(完整版或无头版均可),并将下载的 tar.gz 或 tar.xz 文件包上传到服务器的 /tmp 目录中。
  • 将 /tmp 目录中的文件包解压到 /opt/factorio 目录中:
$cd /opt/

$sudo tar -xzf /tmp/factorio.tar.gz # 请使用正确的文件名称,包含游戏版本号
$sudo tar -xJf /tmp/factorio.tar.xz # 如果下载的是.tar.xz文件,请使用此命令(0.15.x 版本)
  • 在Linux系统中创建新用户,并为其分配 factorio 目录的所有权(请勿以root用户身份运行,可能需要sudo权限)
$useradd factorio
$chown -R factorio:factorio /opt/factorio
  • 尝试运行服务端二进制可执行文件
$su factorio
$/opt/factorio/bin/x64/factorio --start-server savename

如果运行失败,并提示无法找到或打开 savename.zip 文件,则游戏实际上就安装成功了。此时玩家只需上传一个自己的存档文件,并将其保存在 /opt/factorio/saves 目录中,或者使用--create ./saves/newgame.zip命令创建一个存档文件即可。

如何在匹配服务器中列出服务器托管的游戏

要把游戏发布到匹配的服务器,除了保存文件的位置以外,还需一些额外的信息。这些信息需要在服务器配置文件中设置。

要创建服务器配置文件,请查看游戏应用程序目录中的 data/server-settings.example.json 示例文件。建议复制该文件后进行编辑。

以下值可以更改:

Name
服务器在游戏大厅中显示的名称。
Description
服务器简要说明,最多包含5000个字符,参见多人服务器描述
Tags
游戏标签列表。
Max Players
同时连接到服务器的最大玩家数量。如果不想限制此数量,只需将 max_players 设置为0即可。
  • 服务器可见性:可在公开(Public)、局域网(LAN)和隐藏(Hidden)三者中选择。
    • 公开:服务器将在互联网大厅列表中展示。需要填写用户凭证。
    • 局域网:服务器不在互联网大厅列表中展示,但可通过“局域网游戏”选项访问。
    • 隐藏:客户端必须使用服务器的IP地址进行连接。
  • 用户凭证,使用用户名和密码,或身份验证令牌(可在官方网站或player-data.json中找到):如果要公开服务器,则需要填写用户凭证。否则可以留空。
    • 出于安全考虑,建议使用身份验证令牌,因为此文档以纯文本形式存储。应该指出,身份验证令牌也是敏感信息,因此玩家最好 将其保密。
  • 服务器密码
    • 字段名称为 game_password
  • 是否验证用户身份

(在0.14版本中还有其他值。)

技术细节

开发团队在周五工厂报中公布了多人游戏的一些技术细节:

DNS SRV 记录

异星工厂从1.1.67版本起支持DNS SRV记录

此服务使玩家可以在单台主机上更容易地运行多个游戏服务器,同时允许用户通过不同的子域名连接服务器,而非必须输入端口号。

服务名称为_factorio,该服务仅支持_udp协议。

示例:

Domain: subdomain.domain.tld
IP:     192.0.2.2
Port:   10002

DNS records:
subdomain.domain.tld     IN A   192.0.2.2 
_factorio._udp.subomain.domain.tld IN SRV 0 0 10002 subomain.domain.tld.

此时,连接到subdomain.domain.tld的客户端实际上会连接到subdomain.domain.tld:10002

Cloud Flare配置示例:

日志条目:

  • 游戏将在找到指定域的SRV记录时记录"DNS SRV lookup returned [...]"(DNS SRV查找返回[...])信息
  • 当没有找到SRV记录时,游戏将记录"DNS SRV lookup for [domain] didn't return any usable records"(DNS SRV查找[域名]未返回可用记录)的详细日志。

其它

  • 开启控制台命令的快捷键也用于在多人游戏中发起聊天。要执行命令而不是发起聊天,需要在命令前输入/c。执行的命令对所有玩家都是可见的。此外,多人游戏必须启用“允许命令工作”设置。
  • 设置玩家角色的颜色:
/color r g b

r、g和b分别代表红色,绿色和蓝色(输入0和1之间的数字,可使用此网站将颜色转换为RGB数值)。

  • 要给自己赋予管理员权限,玩家需要在 factorio-current.log 所在的目录中创建 server-adminlist.json 文件。该文件应当包含所有管理员的用户名,例如:[ "user1", "user2" ]

此文件将在管理员通过控制台提升玩家权限时创建。

加入多人游戏

从0.13版本开始,端口转发不再是玩家加入多人游戏的唯一方式。现在玩家还可以通过Steam服务加入多人游戏,或者直接加入已经通过端口转发的主机。

玩家可以通过多种方式加入多人游戏:

  • 直接输入公开服务器的IP地址和端口。
  • 在互联网大厅中选择活动服务器。
  • 通过Steam服务加入游戏。
  • 通过局域网进行联机游戏。

IP地址和端口

要使用IP地址加入多人游戏,玩家需要知道有效的服务器公网IP。可以通过社交媒体,网站或口耳相传来获取这些信息。知道IP和端口后,只需进入开始游戏 ->多人游戏 ->连接服务器,并提供所需的IP以及端口即可加入游戏。

如果服务器设置正确并允许公共连接,玩家应该可以正常加入游戏。

服务器列表

异星工厂的开发者维护着一个包含所有公开服务器的列表,这些服务器允许玩家通过互联网大厅直接加入。大多数服务器需要密码,但同时也有许多完全公开的服务器可以无密码连接。要通过服务器列表加入多人游戏,请转到开始游戏 ->多人游戏 ->互联网游戏。如果需要,玩家需要提供官网账号名,然后会显示公共服务器列表。只需选择一个并加入就可以开始游戏。

Steam服务

Steam提供了一个“游戏邀请”系统,使用它即可加入多人游戏。玩家可以在Steam文档中找到更多关于如何使用此功能的信息。这是普通玩家与朋友一起进行多人游戏的最简单(可能也是最佳)方式,因为Steam会替玩家处理所有问题。

局域网游戏

如果玩家与朋友使用相同的互联网连接(例如在同一幢建筑或同一个学校中),就可以通过局域网进行游戏。只需转到开始游戏 - >多人游戏 - >局域网游戏即可。

使用NAT穿透连接服务器

异星工厂要求服务器(在客户端 - 服务器模式下)具有公网IP地址,或者所有玩家都在同一局域网内。如果玩家的网络位于NAT设备后方,就必须设置端口转发(请参阅上文的端口号)或使用虚拟局域网软件,例如蛤蟆吃(Hamachi)。

多人游戏将以客户端 - 服务器模式启动(也被称为多人转发模式)。在此模式下,所有客户端都会将数据包发送到服务器,然后服务器再将数据包转发给其他客户端。这种模式的优点是同时允许局域网和公网中的玩家加入游戏;缺点是由于数据包必须经过额外的转发(通过服务器),因此可能造成些许延迟。

对战模式

在对战模式中,玩家可以选择不同的阵营。每个阵营可以由一名(自由对战)或多名(团队合作)玩家组成。每个阵营都有各自独立的科研进度。此外,每个阵营的军事单位和建筑都会将其它阵营的玩家视为敌人并自动开火,除非进行了停火设置。注意,根据场景的不同,停火可能是单方面的——将其它阵营设置为停火并不能保证他们也将己方阵营设置为停火。

要创建一个多人对战游戏,玩家可以在“开始游戏”界面中选择“对战模式”场景,或下载一个支持对战模式的自定义场景。

下载对战场景后,玩家需要将其移动到应用程序目录中,并使用该场景创建多人游戏。

  1. 下载游戏场景文件,并将场景文件夹移动到用户数据目录下的 /scenarios 目录中。
  2. 启动游戏
  3. 点击 开始游戏
  4. 点击 多人游戏
  5. 点击 场景
  6. 选择需要的对战场景,并点击 创建
  7. 选择延迟和其它设置,然后点击 开始游戏
  8. 其它玩家现在可以加入游戏

阵营

可以通过控制台手动创建阵营。这允许使用任意地图/场景进行多人对战游戏。由于玩家只能通过控制台命令来进行停火设置,这可能不如专门的对战场景方便。

每个阵营都有独立的科技进度,不同阵营可能会相互攻击。

创建和设置阵营的控制台命令如下:

game.create_force("Name")
--创建名称为"Name"的阵营

game.players["Player_name"].force = game.forces["Name"]
--将名称为"Player_name"的玩家划分到名称为"Name"的阵营

game.forces["Name"].set_cease_fire("Other_force_name", true)
--为阵营设置停火设置为"other force"(其它阵营)

game.forces["Name"].set_spawn_position({x = 10, y = 20}, game.surfaces[1])
--设定阵营出生点

game.print(#game.forces)
--输出阵营的玩家数目

for name, force in pairs (game.forces) do
   game.print(name)
end
--输出所有阵营的名称

一个阵营的玩家/实体与非友好阵营的实体的互动是受到限制的,但某些互动仍然可以进行:

手动拾取
玩家可以拾取敌方阵营的传送带上的物品。注意:这种拾取不是自动的,机械臂不能从敌方传送带上拾取物品。
传送带连接
传送带的连接是不分阵营的。因此玩家可以将己方传送带连接到敌方传送带上,从中获取物品。或者也可以将物品(使用机械臂)放置到敌方阵营的传送带上。
流体连接
管道(以及储液罐、管道泵等)的连接是不分阵营的,因此玩家可使用管道泵将敌方储液罐中的流体送入己方储液罐中。反之亦然。
电力汲取
玩家可以在敌方电线杆的覆盖范围内建造电线杆以汲取敌方电力。在敌方电线杆旁边放置的电线杆会自动接入敌方电网,但玩家无法手动连接或断开连接。

更新概述

由于地图上可能存在大量活动,游戏引擎使用了锁步架构。所有客户端都会进行整个游戏世界的完整模拟,只有玩家活动在网络中传输。

多人游戏在0.11.0版本加入游戏。当时唯一可用的连接方式是点对点模式,这意味着每个玩家都需要直接连接服务器并与其它所有玩家通信。在0.12.4版本时引入了客户端-服务器通讯模式,其中服务器(无论是专用服务器还是托管服务器)都会将数据转发给所有对等节点,这意味着玩家之间不再需要直接连接。截至0.13版本,P2P连接已被完全移除。

在0.12.0版本中,游戏引入了“延迟隐藏”机制,游戏将在本地模拟玩家的部分操作,使一些常见交互(例如玩家角色的移动)更加流畅。并非所有动作都采用了延迟隐藏机制——最明显的是,驾驶汽车或火车,以及射击不采用延迟隐藏机制。