Sign inSign up

thrimbda/factorio

By thrimbda

•Updated about 8 years ago

Image
1

402

thrimbda/factorio repository overview

⁠Factorio-异星工厂

标签描述

  • latest - 最新: 也许会不稳定.
  • stable - 最新的稳定版本.

##Factorio是什么?

“时光荏苒,我们开发团队已经在Factorio上奋战了四年。 为了能确保游戏能够长时间稳定地运行超大规模的工厂,我们为游戏做了深度优化,如今游戏已经十分稳定。 在过去的四年里,我们已经在我们的网站上卖出了超过 11 万份游戏。现在,我们决定把Factorio分享给更广大的玩家群体。”

Factorio⁠ 是一款建造工业生产流水线并保持其高效运转的游戏。

在游戏中,你可以抠矿、搞科研、盖工厂、建设自动生产流水线,同时还要与异星虫子们互相伤害。

你将从一无所有艰辛起步。挥斧砍树,抡镐抠矿,手搓机械臂和传送带,然而像这样一直搞下去并没有什么卵用。因此,你需要高效的大规模发电厂,庞大的石油化工体系,壮观的全自动化产业链,以及替你东奔西走的机器人大队,让你成为物资储备丰盈工业帝国的真正操控者!

然而,总有一群刁民想害你。这个星球上的土著虫群对你在自家后院里瞎折腾的行为很不爽,总有一天这群刁民会联合起来找你麻烦。因此,你要制造武器、建立防御、准备镇压,让它们知道谁才是真正的主宰者。

你可以在多人游戏中加入不同的阵营,在大触们的带领下与朋友们分工协作, 一起建设恢弘无比的工业园区。

Factorio的模组支持吸引了全世界的设计师参与到对游戏的完善和革新中来,从优化调整到游戏辅助,甚至对游戏的彻底翻新,日新月异的模组将为你不断提供新的乐趣。 除了游戏核心的自由模式和沙盒模式之外,任务包还提供了更多不同形式的游戏挑战,这已经作为一个免费的DLC提供给玩家了。

对随机生成的地图不满意?不满足于原生游戏任务?这都不是事儿。通过内置的地图编辑器,你可以任意修改地图,配置地形、建筑、敌人等各种元素。如果你是大触,还可以添加自定义脚本,让你的游戏更具独创性、更加阴吹思婷!

注意: 这个仓库仅包含游戏服务端. 游戏本体可以在factorio.com⁠和Steam⁠上找到。

⁠食用方法

注:以下服务端指游戏软件,服务器指运行服务端的主机。

⁠快速入门

运行服务端以在指定目录下生成必要的配置文件以及存档, /opt/factorio 也许是一个不错的选择。

⁠启动服务端
sudo mkdir -p /opt/factorio
sudo chown 845:845 /opt/factorio
sudo docker run -d \
  -p 34197:34197/udp \
  -p 27015:27015/tcp \
  -v /opt/factorio:/factorio \
  --name factorio \
  --restart=always  \
  thrimbda/factorio

这样一来, 服务端会使用 /opt/factorio/saves 中最新的存档。

你一定想知道上面那些咒语是什么意思:

  • -d - 以守护进程方式运行 ("detached")。
  • -p - 暴露宿主机 (host) 某些端口。
  • -v - 将宿主机中 /opt/factorio 目录挂载到docker容器的 /factorio 目录。
  • --restart - 在宿主重启或服务端运行崩溃后重启服务端。
  • --name - 将docker容器命名为 "factorio" (否则docker会给他随机起一个搞怪名字)。

chown 命令用来更改服务端所在目录的所有权用户以及用户组,为了安全起见我们并不希望游戏直接在root用户权限下运行,因此将用户id更改为845,从而服务器允许该用户在目录中进行读、写、运行操作。

查看日志以搞清楚发生了什么。

docker logs factorio

停止docker容器 (服务端)。

docker stop factorio

在运行过服务端之后可以在 /opt/factorio/config 目录中找到 server-settings.json 文件,修改改文件以定制你自己的服务端。

docker start factorio

现在试试连接服务器。如果没有正常运行的话请按照上面步骤查看日志。

⁠运行模式

我们有时候希望能在多个存档中来去自如,这样就能避免你不同的朋友们因为游戏进程的问题而感到自己被整个世界抛弃或者生气并且感到无所适从从而在游戏中大肆破坏了。

⁠运行最新存档(默认行为)

正如快速入门中所提到的,运行以下命令会让服务端载入最新存档:

sudo docker run -d \
  -p 34197:34197/udp \
  -p 27015:27015/tcp \
  -v /opt/factorio:/factorio \
  --name factorio \
  --restart=always  \
  thrimbda/factorio

但实际上你的确可以并应该手动指定模式为latest。

sudo docker run -d \
  -p 34197:34197/udp \
  -p 27015:27015/tcp \
  -v /opt/factorio:/factorio \
  --name factorio \
  --restart=always  \
  --env MODE=latest \
  thrimbda/factorio

####指定一个存档运行

然而更多时候我们需要指定载入某个存档:

sudo docker run -d \
  -p 34197:34197/udp \
  -p 27015:27015/tcp \
  -v /opt/factorio:/factorio \
  --name factorio \
  --restart=always  \
  --env MODE=normal \
  --env SELECTED=$NAME_OF_YOUR_SAVE_FILE # 在这里写所要载入的存档。
  thrimbda/factorio
⁠创建一个新存档并运行
⁠命令行

你当然可以选择定制性更强的命令行运行方式,连接到docker容器中并开始你的DIY,不过更强的可定制性意味着更高的学习成本,权衡咯。

docker run -d -it  \
    --name factorio \
    dtandersen/factorio
docker exec -it factorio sh
⁠更新

在更新之前最好备份存档,如果在运行命令中使用了上述的 -v 参数这将会非常容易。

注意, docker rm 命令会销毁整个docker容器,如果没有使用 -v 进行挂载,存档也会被删除。

销毁docker容器并更新镜像:

docker stop factorio
docker rm factorio
docker pull dtandersen/factorio

现在像之前那样启动服务端,然后你的服务端就会完全按照之前的样子运行啦。

⁠存档

在第一次按照默认方式启动服务端的时候,将会按照 /opt/factorio/config 中 map-gen-settings.json 和 map-settings.json 配置 (如果没有将会使用默认配置) 生成一个名叫 _autosave1.zip 的新地图。

使用其它存档的话可以按照上面有关运行模式的说明进行操作。

⁠Mods-模组

把相应的模组文件拷贝进你的Mods目录,然后重启docker容器 (服务端) 即可。

⁠RCON

在 config/rconpw 文件中设置RCON密码。 如果 rconpw 文件不存在,将会自动生成含有随机密码的该文件。

如果想要更改密码,请停止服务端,编辑rconpw文件并重启服务端。

如果想要禁用RCON,请不要在启动命令中加入 -p 27015:27015/tcp 参数,在宿主机(服务器)中停止暴露rcon端口,这时,RCON将继续在docker容器中运行,但不可达。

⁠白名单

创建文件 config/server-whitelist.json 然后将用户名加入到该json中。

[
	"you",
	"friend"
]

⁠贡献者

Tag summary

Content type

Image

Digest

Size

42.2 MB

Last updated

about 8 years ago

docker pull thrimbda/factorio