开发者社区> 凌洛> 正文

记一次Minecraft游戏服务器搭建实践经历

简介: Minecraft是一款沙盒游戏,整个游戏没有剧情,玩家在游戏中自由建设和破坏,透过像积木一样来对元素进行组合与拼凑,轻而易举的就能制作出小木屋、城堡甚至城市。为了使玩家不再孤独地生存在我的世界里,我们可通过服务器搭建游戏联机平台来让我们共同在一个世界里玩耍。
+关注继续查看

Minecraft简介

Minecraft是一款沙盒游戏,整个游戏没有剧情,玩家在游戏中自由建设和破坏,透过像积木一样来对元素进行组合与拼凑,轻而易举的就能制作出小木屋、城堡甚至城市,玩家可以通过自己创造的作品来体验上帝一般的感觉。在这款游戏里,不仅可以单人娱乐,还可以多人联机,玩家也可以安装一些模组来增加游戏趣味性。
Minecraft几乎不包含任何目前流行的游戏元素。Minecraft使用Java编写,具有极强的适应性,而且功能强大,整个游戏画面就像回到了上个世纪,看上去各种模糊和马赛克,就连人物也是一个方块盒子而已,但是却可以给玩家带来像是玩乐高积木一样的永久乐趣。

需求分析:为了使玩家不再孤独地生存在我的世界里,我们可通过服务器搭建游戏联机平台来让我们共同在一个世界里玩耍。

配置

下面开始具体的服务器端搭建。

服务器选配

本文章采用阿里云云服务器 1 vCPU 1 GB (I/O优化);ecs.t5-lc1m1.small 5Mbps (峰值)进行实验配置。若应用于实际的游戏联机场景中,推荐采用“计算网络增强型实例规格族 sn1ne”(更多实例可参考:云服务器ECS实例规格族)。
_
有关服务器选配可参考:云服务器ECS,本文不再赘述。
此服务器可承载约2-5人同时在线。

添加安全组规则:端口范围全部开放。(可参考文档:添加安全组规则

安装JAVA环境

MC是用Java写的就不再赘述了,由于服务器端的MC是一个jar包,我们在配置之后通过运行jar包来开启服务器端,同时我们在PC上打开后通过IP地址即可搜索并进入服务器。所以我们首先要先安装Java。一般来说默认安装的是有Java 8的,如果没有可以按照下面的方法来安装:
1.验证是否安装Java,如果安装就查看版本

java -version

下面是博主的Java版本:

[root@host ~]# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

如果不是Java 8或者没有安装,就用下面的方法安装:

sudo yum install java-1.8.0-openjdk

下载Minecraf服务器端

本文章采用Mineraft 1.13 的服务器端版本,服务器端版本需与客户端版本匹配,否则将会无法连接

所以不同的版本对应着不同的服务器端,所以我们要下载正确的版本。如何看MC版本呢,一般来说MC游戏左上角就写的有了,例如:Mineeraft 1.13。如果没有的同学可以启动MC游戏进入到开始界面即可。

_
输入命令安装1.13版本Minecraft服务器端:

sudo wget https://launcher.mojang.com/mc/game/1.13/server/d0caafb8438ebd206f99930cfaecfa6c9a13dca0/server.jar

其他服务器端版本可参考:

sudo wget https://s3.amazonaws.com/Minecraft.Download/versions/版本号/minecraft_server.版本号.jar

启动Minecraft

上面的jar包下载完成之后,我们稍作准备就可以开启了!这里还是提醒一下对Java不熟悉的同学。我们知道可执行文件是.exe。双击直接运行,那么Java可以生成jar包,就是.jar文件,在Windows上也是可以双击运行的。而我们下载的这个MC服务器端其实就是已经做好的jar包,所以我们在“双击”启动之前还是需要一些配置,以及用Linux的方法来启动。

首先,来看一下内存的使用,输入命令:

free -h

我们可以看到当前内存的使用情况,下面是我输入该命令后的显示:
_
根据free栏的内存数,我们可以确定该给MC服务器分配多大的内存(当然越多越好啦)。
之后,我们就可以使用命令来运行MC服务器了:

sudo java -Xms[初始启动分配内存] -Xmx[最大分配内存] -jar [jar包所在路径]/minecraft_server.[版本号].jar nogui

以本实践为例:

java -Xmx666M -Xms1024M -jar server.jar nogui

启动成功

上面的命令输入完成,理论上我们就能启动了!这里注意,我们现在如果在Windows下,等于说已经进入到这个程序中了,所以不能再使用Linux命令,等待参数由0%一直到100%就启动完成啦!下面给出博主启动完成的后几行显示:
_
这样就启动成功了,不要有顾虑,直接启动PC端连接服务器进入MC吧!(启动失败的情况下面有一个解决方法)

启动完成后当前这个窗口就可以不用管了。博主使用的Xshell,直接最小化。联机完毕之后其实直接关了Xshell就行,自动就断开了,当然也可以输入Ctrl+C,直接终止进程

意外状况处理

在进行安装的过程中,并不总是一帆风顺的,往往会出现意外状况。下面给出一些常见的意外状况解决方法。

启动失败-同意协议

我们在第一次运行完jar包后,无论是否运行成功,都能发现当前目录下多出了一堆文件,运行失败的时候其实就是配置除了一点问题。我们在当前目录找一下文件:eula.txt。
_
我们需要对这个文件进行一下小编辑:

vi eula.txt

按“i”键进入编辑模式,找到这一行:

eula=false

将false改成true即可。
退出vi编辑器:
1.按 esc
2.输入 :wq
这样就同意了那个“最终用户许可协议”。

PC端连接失败

这里是上面都启动成功之后,PC端也搜索到了服务器,但是就是连接失败,这样我们可以修改配置,先在jar包目录下找到文件server.propertices 并编辑:

vi server.propertices

找到这一行:

online-mode:true

将true改为false 即可。

游戏配置

关于MC服务器端的配置,我们就需要修改这个文件了,同样在jar包所在目录下:

vi server.propertices

可以看到,里面是对当前你创建的这个游戏的各种配置,像选择模式啦、世界生成的种子啦、是否有村民啦等等,就像PC创建世界时的各种选项一样。这里就不再介绍了,需要修改的同学自行百度。

Shell脚本启动

我们如果一直使用上面那一句启动的话是不是非常麻烦!每次都要复制粘贴,那么我们可以写一个简单的Shell脚本,放在jar包所在目录,每次启动的时候直接启动脚本就能进入游戏了,完全不需要Shell编程基础,直接复制粘贴即可!

vi start.sh

进入编辑模式后输入代码:

#!/bin/sh
java -Xmx666M -Xms1024M -jar server.jar nogui;

这其实就是让脚本帮你搓启动命令,而你仅需要运行一下脚本即可:

bash start.sh

最后,在PC端添加Minecraft服务器配置(Server name任意;Server Address填写阿里云服务器的公网IP),并连接。开始享受Mineraft联机的乐趣吧!
_

后期运维

可以看到(如下图),选择 1 vCPU 1 GB (I/O优化);ecs.t5-lc1m1.small 5Mbps (峰值)的配置,并不满足多人实时在线的流量请求。因此,在选配云服务器中,应选择2 vCPU 4 GB配备5-10Mbps带宽或以上最为合适,可承载20-40人同时在线。
image
在后期,配备阿里云负载均衡SLB和弹性伸缩等产品,可实现在突发大流量、高并发的场景下的服务支持,使玩家拥有更好的游戏体验。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Zookeeper注册中心和Dubbo-Admin管理平台的搭建
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/69567840   ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
1031 0
ubuntu12.04上搭建darwin streaming server6.03
个人建议:使用DarwinStreamingSrvr5.5.5,因为DarwinStreamingSrvr6.0.3安装过程中有很多问题需要解决!而且安装只需执行./Install就可以! 1:下载darwin源代码DarwinStreamingSrvr6.
969 0
centos7使用Minikube"快速搭建"出Kubernetes本地实验环境(踩坑集锦及解决方案)
centos7使用Minikube"快速搭建"出Kubernetes本地实验环境(踩坑集锦及解决方案)
2346 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
17990 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24799 0
搭建 Http Dynamic Streaming 点播/直播服务器
1.        HTTP Origin Module的处理数据流: a)         客户端发送媒体索引请求到Apache。例如: http://www.example.com/media/ sample.f4m b)        Apache处理请求到HTTP OriginModule c)         HTTP Origin Module返回 F4M文件到客户端 d)        客户端接收F4M,根据 bootstrap中的信息中的传送时间,组成一个segment#/fragment#对。
1750 0
+关注
凌洛
专注于分布式系统与计算、云存储技术、云安全技术。
43
文章
45
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载