泰拉瑞亚:自由度极高的沙盒游戏,与新加坡朋友联机却遇卡顿难题

    棋牌游戏开发 1年前 214浏览 0评论

    众所周知,《泰拉瑞亚》是一款像素风格的沙盒游戏,自由度极高,玩法丰富。

    你可以选择成为一名战士,征服这个地点的世界;你可以选择成为一名建筑师,各种各样独特的建筑将一一呈现;你可以选择成为一名电工,极其精通电路,建造复杂的机关和陷阱。没有比你建造的设施更安全的地方了;你可以成为一名炼金术士,各种奇怪的材料可以让你制作出各种效果的药剂;你可以成为一名合成师,你的大脑就是最完整的合成表。只要告诉我你想要什么,我就能为你制作出来。

    虽然游戏很有趣,但当我和新加坡的朋友想一起玩 Terraria 时,发现系统服务器无法满足我们的需求。如果我做主机,他就要被困在新加坡,反之亦然。于是,作为计算机专业的我决定做自己该做的事情——自己搭建 Terraria 服务器。

    服务器能做的有:最大程度降低你和好友之间的延迟,中国和新加坡之间的延迟大概在30ms左右,低于英雄联盟的正常延迟;24小时在线,你不用一直开着电脑也能保持服务器运行;自动备份游戏存档等等。

    如果您有以下要求,则需要服务器教程:

    1. 你和好友相距遥远,身处世界不同角落,即使使用加速器,你们连接时传送也会卡住。

    2、作为房主的好友,你不可能24小时在线,因为房主下线后其他人就无法继续“玩”(偷偷开发),这时候服务器24小时在线的作用就体现出来了。

    3.你想要学习新的知识,比如搭建Terraria服务器(由此你可以衍生出其他服务器的搭建方法,都是类似的)。

    如果你有上述想法或其他原因,并决定遵循本教程,那么这里还有另一个温馨提醒:

    1. 本教程大概需要2个小时(根据你的基础可以长一点也可以短一点),毕竟万事开头难,要勇敢去挑战哦。

    2.本教程是一个比较完整的一步步教程,如果你认真看完,按照步骤一步步来,一定可以成功搭建自己的服务器。

    3.搭建服务器需要一定的资金支持,具体数额取决于第四步选择哪个分支,分支一是包年,需要一百多元,分支二是按小时计费,一个月需要一百多元,但可以随时关闭,非常方便。

    4.有问题可以进群:636826971(梓宇游戏基地),@梓宇zy,对,就是我,我会把我知道的都告诉你,帮你们解决你们的难题。

    1.准备阶段:

    搭建游戏服务器最重要的是什么?服务器。综合以上比较,这里我们选择ECS云服务器。

    为什么我应该使用ECS服务器而不是VPS云虚拟主机?让我解释一下:

    ==不看这段也没关系↓↓↓==

    ECS全称为弹性计算服务,当然也可以简单归类为云服务器,VPS则称为云虚拟主机。

    两者的区别可以简单概括为:

    VPS 是一种从一台物理服务器虚拟出多台虚拟服务器的技术,因此很容易对同一台物理服务器上的其他 VPS 造成资源挤占,造成服务器性能的波动。

    VPS的扩展性不如ECS,因为受到单台物理服务器的瓶颈限制,毕竟是物理服务器的虚拟机,不可能超越物理服务器。

    同等配置的VPS租用价格比ECS低,更加实惠。

    还有几点我就不在这里列举了,因为如果真的比较的话,就变成一篇千字论文了。(笑)所以综合以上几点,我们可以判断,ECS 更适合做游戏服务器,稳定又安全。VPS 好像更适合做小型个人博客,价格方面也会更划算。那就开始吧!

    2.配置阶段

    ECS云服务器推荐配置:

    CPU: 单核或以上

    内存:2G及以上

    带宽:2M及以上

    如果配置低于这个,内存不小于1的话,是可以正常运行的,但是可能会导致配置过程非常慢或者游戏进行到一半就断线。因为上面的配置组合是我亲自尝试过的,所以如果想要特别稳定的话,建议大家还是按照我的方法操作。

    那么哪里可以买到ECS云服务器呢?我慢慢给大家解释一下(别打我别打我,我才不会这么文艺,我来告诉你好不好),我们需要在阿里云上购买一台ECS云服务器。(嘘,这手真的重了)。

    这里提醒一下,购买服务器的时候可能会被要求注册,不用怕,这跟实名认证差不多,如果要注册的话,按照步骤注册一下,然后按照本教程继续就可以了。

    步骤1:在百度上搜索阿里云,点击进入。

    第二步:点击网站右上角注册阿里云账号或者登录。

    步骤3:用鼠标在首页上方导航栏左侧找到产品选项,找到弹性计算里的云服务器ECS点击进入。

    第四步分支1:这里可以灵活选择购买,因为会有各种活动,比如下面这个是大学生优惠,如果你只是想在国内搭建一个Terraria服务器,而且你是大学生,那么直接买这个就可以了,但是不要买轻量级的应用服务器,记得点击切换到云服务器ECS。(如果使用分支1的方式,购买后可以直接跳到第六步)

    如果你和我一样想搭建一个国内国外都能玩的国际服,或者想购买更灵活的小时费,随时删除停服的服务器,可以跳过这一步,继续往下看。(毕竟上面是包年套餐,但是好便宜啊!)

    步骤4的分支2:忽略该事件,直接点击一开始的“立即购买”即可。

    第五步:进行自定义选择配置(第四步分支2详细解释)

    1.选择自定义购买,根据需求选择计费方式,这里我选择的是按量付费,刚开始尝试的朋友也推荐这个,如果不喜欢可以直接删除服务器再选择重新购买。

    2.区域根据自己服务器需求来定,我想和新加坡的好朋友一起玩,所以选择了香港服务器,作为我们两个梦想的起点。

    3.这里过滤实例,CPU为1vCPU,内存为2GiB。

    4、经过筛选,下面众多选项中只剩下三台服务器,我们选择的是共享计算n4服务器,1核CPU,2G内存,5M带宽。

    5.选择公共镜像的CentOS7.4镜像

    6、不要动存储系统磁盘,使用默认设置。

    7. 选择完成后,点击右下角的下一步。

    8.本页面只需修改一处,将“按固定带宽计费”改为“按流量计费”,其余保持默认即可。

    这里解释一下,因为游戏数据的传输不需要频繁流量,所以只要你认为你半天平均传输数据的时间少于一千兆字节,就可以选择“按流量计费”。(这里的“所有时间”包括你睡觉和外出等空闲时间。)

    9.单击下一步:系统配置

    10.设置密码

    这里选择登录凭据为密码,并设置登录密码,密码必须包含大写字母、小写字母和数字。

    11. 实例名称和主机名不是必选,可以自定义。只要你想改就行。只是不要写中文。

    12.点击确认排序,分组设置无需设置,直接跳过即可。

    13.确认信息无误后,勾选底部的服务条款,点击创建实例。

    14.创建成功后游戏搭建,点击管理控制台。

    15.这里我们可以看到刚刚购买的服务器实例,不用担心,状态是启动状态,几分钟后会自动变绿运行,等状态变绿运行后就可以开始下一步了,此时不要关闭这个页面。

    步骤6:下载Putty

    这个是远程管理软件,因为阿里云网页管理在修改文件的时候经常会卡死。

    Putty的官网下载地址是:~sgtatham/putty/latest.html

    1.进入官网后,点击此处。

    2、根据系统位数选择下载(如果你是32位系统就选择32位的下载,如果你是64位系统就选择64位的下载),点击图片箭头指向的蓝色字样即可下载。

    3、下载完成后打开下载的文件,安装putty,安装过程会默认继续,直到安装完成。

    4.打开安装好的Putty。

    如果找不到快捷方式。

    64 位版本位于路径 C:\Program Files\PuTTY

    32 位版本位于路径 C:\Program Files(x86)\PuTTY。

    打开之后你会看到这样的界面。

    在进行正常操作之前,我们首先设置一个选项,让我们的远程管理保持在线。

    点击左侧目录中的Connection,在第一个文本框中将数字0改为60。

    这样会每60秒发送一个空数据包来维持链接,如果不这样做,每隔几分钟如果没有操作,远程接口就会自动断开连接。

    5、点击左侧目录的Session,回到初始界面,在Host Name处填入你云服务器的公网地址,就是我让你不要关闭的那个页面,port处填入22,如果默认填写的话,就不用管了,全部填完之后,点击右下角的open。

    6.启动远程链接后,会弹出警告框,请点击“是”。

    6.然后输入账号和密码登录,默认账号为root,密码为之前设置的密码,如果出现Welcome开头的字样,则表示登录成功。

    如果忘记密码,可以进入控制台,在公网地址末尾找到更多选项,重置密码。

    步骤 7:设置交换分区

    恭喜你,你已经连接到你购买的服务器了,那么接下来就是代码的部分了,我在这里给大家准备好代码,如果你按照我一步一步来的话,是不会有什么问题的,请不要慌,我们继续吧。

    Putty的粘贴功能是鼠标右键,也就是说你把代码复制到这里之后,只需要在putty里右键就可以了。

    由于ECS云服务器镜像安装的时候没有给系统分配软件交换分区,所以我们需要在这里手动分配一下,防止我们的Terraria在服务器挂掉的时候突然关闭。

    输入free -m可以看到swap分区为0。(此步骤仅作演示,无需操作)

    操作代码:请不要复制后续代码中出现的#号,它是用来区分代码表达和提示信息,例如# swapoff –a,则只需要复制swapoff –a即可。

    代码:

    1、删除原来的Swap分区
    # swapoff –a
    2、新建一个读写块大小为1M、块个数为1024的Swap分区
    # dd if=/dev/zero of=/root/swapfile bs=1Mcount=1024
    3、格式化创建好的Swap交换分区
    # mkswap /root/swapfile
    4、启动新建的Swap交换分区
    # swapon /root/swapfile
    5、将Swap交换分区添加到开机自启动挂载
    

    如何使用文本编辑器:(必需,否则复制可能不完整或无法保存)

    在进入第 5 步-自动挂载 Swap 之前,这里先简单介绍一下 vim 文本编辑器的使用。输入文本后,按键盘上的字母 i 进入编辑模式游戏搭建,按 esc 键退出编辑模式。如果不进入编辑模式就进行复制,复制将不完整,记住这一点。

    按i键进入编辑模式后,putty左下角会出现“INSERT”字样,代表现在可以编辑文本了,这时候右键点击复制我的代码,否则会出错。

    文本保存方法:按esc退出编辑模式(也就是非编辑模式),然后输入:wq保存退出。(请不要省略冒号,按了冒号才可以继续)(请不要开启中文输入法,否则会一直响)。

    按Esc退出编辑模式后,左下角的“INSERT”字样会消失,此时输入英文单词:wq。

    当你输入完毕后,putty软件左下角会出现输入:wq,代表你输入正确,此时按回车保存退出,如果不想保存退出,可以使用:q!强制退出。

    现在我们知道了如何使用 vim 编辑器,我们将继续设置 Swap 的启动。

    5、进入分区自动挂载配置文件
    # vi /etc/fstab
    6、在众多的文本最后添加一行:
    # /root/swapfile swap swap defaults 0 0
    

    效果如下:

    7、添加完毕后,按ESC退出编辑模式,使用:wq保存并退出。
    # :wq
    8、重启服务器:
    # reboot
    

    进去之后会有一个红色的警告框提示你连接中断,这是因为重启导致连接自然中断。

    20秒后,右键点击putty标题栏,选择Restart Session,重新输入账号和密码登录。

    9、检查Swap交换分区有没有增加。
    # free –m
    

    在上图中我们可以看到Swap已经有值了,这就说明添加成功了。

    第八步:在系统中安装必要的软件。

    1、 安装下载工具wget
    # yum install -y wget
    2、 安装解压工具unzip
    # yum install -y unzip
    3、 安装压缩工具zip
    # yum install –y zip
    

    在安装 zip 文件的过程中,会出现一个问题询问“可以吗”。在此处输入“y”表示同意并继续。

    4、 安装远程管理工具screen
    # yum install -y screen
    

    注:yum是一个自动下载并安装RPM包的命令,可以自动安装该工具所需的所有依赖软件,非常方便。

    第九步:下载Terraria官方服务器压缩包。

    1.为了后面管理和目录清晰,我们先为Terraria建立文件夹。

    2、在根目录下的opt文件夹下创建terraria文件夹
    # mkdir /opt/terraria
    3、继续在新创建的terraria文件夹创建bin,worlds,zip三个文件夹
    # mkdir /opt/terraria/{bin,worlds,zip}
    4、检查是否创建成功
    # ls /opt/terraria/
    

    我们可以看到下图中出现了三个蓝色的字,蓝色代表文件夹,代表创建成功。

    5、 进入zip文件夹
    # cd /opt/terraria/zip
    6、 下载最新版本1.3.5.3的泰拉瑞亚服务包(想知道其他版本服务包的下载地址可以去官网找,以后更新之后也就只需要改变代码后面的版本号即可。)
    # wget http://terraria.org/server/terraria-server-1353.zip
    

    出现进度条指示下载正在进行中。

    上图中的FINISHED代表下载完成。

    7、 将下载好的压缩包解压到bin文件夹
    # unzip terraria-server-1353.zip -d/opt/terraria/bin
    

    按下回车键之后,会出现一长串实时的解压信息,只需要等待解压完成即可,这个过程并不会花费很长时间。

    8、 将配置文件拷贝到泰拉瑞亚文件夹的根目录。
    # cp -p /opt/terraria/bin/1353/Windows/serverconfig.txt /opt/terraria/
    9、 编辑拷贝过来的配置文档。
    # vim /opt/terraria/serverconfig.txt
    

    10.进入配置文档后,将文件编码格式改为UTF-8(因为要把世界名改成中文)。把这行代码连同冒号一起复制,在ESC的非编辑模式下粘贴,注意不能在编辑模式下粘贴,因为这是命令。

    命令:

    :set fileencoding=utf-8
    

    如果你的操作正确的话,putty左下角会出现下面的情况,这时候按回车键就可以改变文件编码了。

    11. 将以下代码复制到文档的最后一行。(不要担心前面有多少个字,只需滚动到末尾并按 i 键进入编辑模式,然后复制并粘贴以下代码)。

    world=/opt/terraria/Worlds/世界的名字.wld
    worldname=世界的名字
    difficulty=0
    autocreate=2
    maxplayers=4
    password=设定一个密码
    worldpath=/opt/terraria/worlds
    

    详情如下:

    注意:世界的名称和密码是可自定义的。不要傻乎乎的就这样保存它们。记得更改世界的名称并设置你想要的密码。

    世界名可以是中文,但是密码不能是中文。

    difficity为游戏难度,对应0为普通,1为专家,如difficulty=0就是普通模式

    autocreate是自动生成的世界的大小,1是小世界,2是大世界,3是非常大的世界。

    maxplayers 是可以同时玩游戏的最大玩家数量。

    喜欢:

    这里我设置的是,保存文件名为Ziyuzy.wld、世界名是Ziyuzy、游戏难度为专家级、地图尺寸为超大、最大玩家人数为4人、密码为123456。

    至此Terraria服务器已经安装成功。

    第十步:启动服务器。

    1、 给运行文件赋予运行权限。
    # chmod777 /opt/terraria/bin/1353/Linux/TerrariaServer.bin.x86_64
    2、 启动服务器。
    cd /opt/terraria/bin/1353/Linux&& ./TerrariaServer.bin.x86_64 -config /opt/terraria/serverconfig.txt
    

    第一次启动世界将是一个漫长的过程,因此请耐心等待完成百分比。

    当世界生成后会出现下面的内容,表示世界已经构建完成。

    让我们在这里抑制住内心的喜悦,因为这说明你成功了,但是我们还要退一步,因为还有一步要做。

    3、退出服务器程序。(在冒号后面输入exit即可退出服务器程序,回到之前的命令界面)
    # exit
    4、再次编辑拷贝过来的配置文档。
    # vim /opt/terraria/serverconfig.txt
    5、将之前添加的一段话中三行代码前面加上#号,使其失效。
    (翻到最后找到这段代码,按i键进行编辑模式,用上下左右键把光标一上去加上#号即可)
    #worldname
    #difficulty
    #autocreate
    

    如下所示:

    6、按Esc键退出编辑模式,输入:wq保存。
    # :wq
    7、再次启动游戏。
    cd /opt/terraria/bin/1353/Linux && ./TerrariaServer.bin.x86_64 -config /opt/terraria/serverconfig.txt
    

    8.再次看到熟悉的服务器程序界面。

    根据提示我们知道输入help可以调出帮助页面,里面有常用的命令,比如save-保存等等,大家可以自行查看一下。

    如果您已经坚持到了这一步,那么恭喜您,您的配置过程已经接近结束,剩下的就是测试和完善部分。

    3.游戏测试

    1. 选择多人游戏模式。

    2.通过IP加入游戏

    3.输入你服务器的公网IP(你购买的阿里云服务器的公网IP)

    4.输入端口号7777

    5.输入服务器密码

    6. 游戏已完成。恭喜!您成功了!享受您的成就吧。

    7、每次有玩家加入,服务器上都会有反馈信息。

    此时你的服务器就可以正常运行Terraria服务器了,可以和朋友们开心的玩耍了。

    需要注意以下几点:

    1.只有在服务端输入保存命令后,服务器才会保存地图数据。

    # save
    

    2.尽量不要泄露服务器公网IP。如果你用的是公网服务器,那没关系,但这是私网教程,是用来分享给朋友的。如果公网泄露,很容易被攻击。就算知道密码,最后也是一张挖空的地图。(笑)

    如果喜欢本文请收藏并留言,你们的关注就是我最大的鼓励~

    如果文章反响良好,后续会加入以下优化功能:

    1. 服务器定期自动保存数据

    2.服务器定期自动备份数据

    3.导出和导入服务器地图数据。

    4.Terraria 会在服务器启动时自动启动。

    分享:

    支付宝

    微信