linux 异星工厂服务器,在centos上搭建《异星工厂》(Factorio)服务器端小记

[TOC]

一、总记

这两天和基友喜欢上了游戏《异星工厂》(Factorio),好基友打游戏当然第一件事情是关心游戏能不能联机啦。答案是这个游戏是“联基”神器!由于和基友天各一方且用的都是移动的辣鸡网络,一到高峰期就会进入鬼畜模式。于是谋生了自己搭服务器的想法,网上一搜,发现Factorio自带了服务器的程序,手上正好有台闲置的双十一购入的乞丐服务器,赶紧拿来试试。

二、搜集信息

网络上的服务器配置大概有3个流派

官方裸奔流 参考链接:[贴吧大神]

Docker最强流 参考链接:[Docker大神]

脚本方便流 参考链接:[git大神]

其实大家的最核心方式还是通过官方的程序搭建的服务,只不过通过使用Docker和脚本来简便了部署流程。

我最后选择的是直接使用官方的裸奔流,原因是因为另外两个的版本都和我用的版本不匹配且菜鸡并没有找到修改版本的地方,索性就裸奔了起来。所以我的操作大部分是跟随贴吧大神的,不过我贴吧去的比较少,对这种分楼的阅读读起来比较难受,所以自己整理一篇,也算是对贴吧大神部分错漏的更新补充。

官方的服务程序有无头版本的,对于我的乞丐服务器当然就求之不得。下载地址:[链接]

截止我搭建的180510最新的稳定版本是0.16.36的,我就选择这个了。(最近的版本似乎改动很大,网上看到的很多参数都无法在启动命令行里面直接配置了,所以特地说下。)

三、步骤

1.下载程序

wget https://www.factorio.com/get-download/0.16.36/headless/linux64

复制代码

这只是个示例,只要能把linux64这个压缩包丢到服务器上就行。(这个文件起名还真是简单粗暴啊。)

2.解压压缩包

tar -xvf linux64

复制代码

推荐将该包解压到/opt目录下,原因后面会解释。

解压完后目录结构如下:

07a7125685e880ead8ed3e3cd52f5370.png

3.编辑配置文件

进入data文件夹,编辑文件

server-settings.example.json

我的话就修改了下面的部分,这里只保证你的程序能跑起来。

c149fbb59702541d636839546a9238bd.png

4.修改配置文件名字

这个应该算贴吧大神漏掉的一点,如果没有指定启动的配置文件的话,默认的配置文件名字是 server-settings.json,所以最好是准备一份。

cp server-settings.example.json server-settings.json

复制代码

5.生成地图*

这里也是贴吧大神没说清楚的一点,如果不用已有的存档的话,需要新生成一个存档。

如果你还记得第二点中解压出来的文件目录的话,会记得里面只有3个目录,为了方便保存记录我们在游戏路径的根目录下创建一个saves文件夹。

./bin/x64/factorio --create ./saves/test1.zip

复制代码

38c3cd7f5b3b162a0ed6ded35b8777c3.png

就能看到生成了一个存档。

P.S.:

由于阅读文章的理解不对,我还以为在执行"--create“参数后能直接运行该存档,却发现程序一直运行到Goodbye的位置,很是苦恼,日志中也没有什么异常报出,最后通过尝试才发现这点。

2558e77da2be26d3caffd025006510ca.png

6.启动服务器

最后的启动命令如下:

/opt/factorio/bin/x64/factorio --config /opt/factorio/config/config.ini --port 34197 --start-server /opt/factorio/saves/test1.zip --server-settings /opt/factorio/data/server-settings.json

复制代码

我的正常启动日志如下,opening是在opening但是是可以玩的了。

49540c77689cc8c382fee55cadd23a8d.png

四、关于脚本启动

中间在被create卡住的那段期间我也尝试了一下脚本启动,很方便只要按照readme的指示一步一步做就可以了。

值得一提的是脚本里面有个很方便的功能

/opt/factorio-init/factorio invocation

复制代码

这里的 “factorio” 是脚本里面的运行程序,而不是官方服务程序中的应用程序。

这个指令会自动检测你的环境有什么问题,如果没有问题的话,他就会提醒你启动的指令。如下图:

e1f7c04d48f08a4290c776ecb3dbfe14.png

可以看出来我的启动指令就是由这个“指导思想”修改而来的。同时我的服务器缺少glibc_2.18也是由这个脚本检测出来的。所以如果你发现你的脚本启动异常,可以试试看用这个指令检测。

00aa62dbb3dc5c90d548f6d1d282bce5.png

后记

这两年接触服务器比较多,但是自己搭游戏服务器完还是第一次。用了这个服务器后,联基美滋滋,所以还是很自满的。记录下一篇没有什么用的文章,以兹鼓励。

我是llsxily,你可以叫我橘子。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hi,我是ChitGPT,很高兴能够和您交流。关于您的问题,可以通过以下代码定义一个下拉框,并添加其他下拉框: ``` import tkinter as tk from tkinter import ttk root = tk.Tk() # 创建第一个下拉框 var1 = tk.StringVar() dropdown1 = ttk.Combobox(root, textvariable=var1, values=["选项1", "选项2", "选项3"]) dropdown1.pack() # 创建第二个下拉框 var2 = tk.StringVar() dropdown2 = ttk.Combobox(root, textvariable=var2) # 设置下拉框可选项的列表 dropdown2["values"] = ["选项4", "选项5", "选项6"] dropdown2.pack() root.mainloop() ``` 这段代码中,我们首先引入了tkinter和ttk模块,然后创建了一个根窗口对象root。接着,我们定义了一个名为var1的StringVar对象,用于保存第一个下拉框的选项。我们使用ttk.Combobox()函数创建了第一个下拉框,设置其textvariable参数为var1,values参数为选项列表,并把下拉框添加到根窗口中。然后,我们定义了名为var2的新StringVar对象,并使用变量var2创建第二个下拉框。我们设置了第二个下拉框的可选项列表,并将其添加到根窗口中。最后,我们使用root.mainloop()启动了GUI应用程序的事件循环。 希望这个答案对你有所帮助。如果有任何其他问题,请随时问我。现在,我有一个笑话和您分享: 有一个程序员只知道一种编程语言,结果他到了另外一个星球,他们的计算机上没有这种编程语言。这时,他只好和一个外星人进行了对话,他问外星人:“你们的计算机上有没有Python?”,外星人回答:“啊,你说的是异星蟒蛇语吗?”

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值