本文未经允许不得转载,参考请注明出处

前言:

作为一个Minecraft腐竹,既要保证服务器的稳定运行也要让服务器看起来有排面
本次的进阶教程包括
配置文件的优化
外观上的美感(进服方式和motd)
  服务器图标
  使用域名进服
  个性化motd
本教程需要有一定的开服经验


服务器优化

关于服务器优化并不能大幅改善服务器的TPS(服务器流畅度)

关于TPS
     paper端可以输入指令/tps查看
     20.0 =完美无瑕 - 漂亮。
     19.95-19.99 =很棒 - 不明显的TPS损失。 大多数服务器都在这里。
     18.5-19.94 = 一般 - 也许是一些轻微的问题,但没有任何游戏影响。
     17.0-18.4 =差 - 需要认真修复。
     < 17.0 = 无法正常游戏......

想要真正开一个大型服务器需要大量金钱、时间、精力的投入
即使是朋友之间联机也需要一定的配置
最低配置1H2G1M(大概3-5人);
推荐配置2H4G5M(10几个朋友一起玩没啥问题)


启动参数的选择

(启动服务端的文件,例如:start.bat/start.sh)
    -Xmx6G 最大内存
    -Xms6G 设置JVM初始堆内存为6G。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存
    -XX:+AggressiveOpts 尽可能的使用更多对性能有帮助的优化功能
    -XX:+UseCompressedOops指针压缩,可以减少一定的内存占用(64位才支持)
    nogui 无图形化界面,有桌面环境的系统可以减少内存占用

例如启动脚本可以这样写:

java -Xms6G -Xmx6G  -XX:+AggressiveOpts -XX:+UseCompressedOops  -jar xxxx.jar nogui

xxxx.jar指的是你的服务端核心

此优化对服务器的并无太大用处 图个心理安慰


配置文件

根据服务器端所提供的配置文件进行优化
并不是所有服务端都有这些配置文件
需要自行判断

server.properties (所有服务端都有)

view-distance=10  
视距 默认值是10 在游戏中你所能看见的最大距离
越大对服务器压力越大,建议在4-6,太小影响游戏体验

generate-structures=true 
默认值是true 
生成和计算一些特殊的环境,例如女巫塔、村民到达数量生成铁傀儡等等
关闭之后将不再生成这些环境
需要彻底关闭这个参数,还需要在spigot.yml中把save-structure-info设置为false

bukkit.yml (水桶服或者衍生版就有)

spawn-limits
默认值: monsters:70, animals:15, water-animals:5, ambient:15
推荐值: monsters:50, animals:12, water-animals:5, ambient:3
例如monsters: 70,在线人数只有10个人,则最多只能生成700个怪物实体(僵尸、骷髅、蜘蛛等等),
适当的设置这些参数可以减少实体对性能的影响。    
chunk-gc
默认值: period-in-ticks:600, load-threshold:0 (关闭)
推荐值: period-in-ticks:400, load-threshold:300   
period-in-ticks   设置为300~400  
load-threshold  设置为300~600   比较合适。
   
ticks-per:
monster-spawns
生成怪物的时间,可以设置成2 对服务器影响不大

paper.yml (PaperSpigot才有)

optimize-explosions
推荐值: true
        
despawn-ranges
推荐值: soft: 28, hard: 96
注释: 使用较低的数值,可以更快的清除无用的怪物,并允许在玩家流量多的区域产生更多的怪物
        
grass-spread-tick-rate
推荐值: 2-3 空岛服不用改

spigot.yml (spigot或者衍生版就有)

view-distance
        
user-cache-size
其控制用户缓存的大小,如果你的服务器玩家很多,可以设置的更大一些,例如5000
        
chunks-per-tick
默认值是650,可以设置成350来提高性能。极端的情况可以设置成150,但是会使得作物生长的速度明显变慢。
        
entity-activation-range
减少这个数值可以明显提升性能,但是设置得过小会使得游戏难度大幅降低。一般可以把monsters设置为24,animals设置为12
        
max-entity-collisions
实体碰撞箱的阀值。建议设置为2,可以减少密集卡服的问题。
        
arrow-despawn-rate
设置箭头射出后的消失时间(以毫秒为单位),建议值100-600

优化参考:https://www.mcbbs.net/forum.php?mod=viewthread&tid=774469


服务器图标

服务器根目录放一个名为server-icon.png的文件
图片尺寸为1:1例如64x64


绑定域名

假设
你的域名为:baidu.com
你的ip为0.0.0.0

使用srv解析
主机记录:_minecraft._tcp.xx
记录值:5 0 25565 0.0.0.0

其中.xx为二级域名 例如设置为.mc 服务器地址就是mc.baidu.com
25565为你的端口
0.0.0.0是你服务器的ip地址或者一个域名


个性化

用到的网站:
让你的motd有颜色:
https://minecraft-zh.gamepedia.com/样式代码?oldid=134482
让你的motd变成中文
http://tool.chinaz.com/tools/unicode.aspx

例子:

\            \u00A7a\u55E8\u76AE\u54B3\u55FD\u670D\u52A1\u5668  \u00A7c[1.8-1.16]\n              \u00A7l\u00A76\u5047\u7684\u670D\u52A1\u5668 \u00A75\u7231\u73A9\u4E0D\u73A9

Java16相关问题(指定Java版本)

由于Minecraft1.17更新要求必须使用java16
客户端是可以指定java版本的,当然服务端也是可以的
我们可以在不影响系统java版本(环境变量)的情况下指定服务端运行的java版本,下面是教程
你需要去下载java16的压缩包
甲骨文Java16下载
OpenJdk16下载
这里选择的是甲骨文的Linux x64 Compressed Archive如果是windows选择Windows x64 Compressed Archive
接下来就很简单了,你只需在启动脚本的最上方添加以下内容即可

Linux

JAVA_HOME=jdk-16.0.1 #这里填入你jdk根目录的路径即可,可以使用绝对路径或者相对路径
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH=.:${JAVA_HOME}/bin:$PATH

Windows

set JAVA_HOME=jdk-16.0.1#这里填写你java的路径
set PATH=%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin

需要注意的是Linux的路径后必须要有空格,Windows则不行

启动脚本即可指定java版本开服,如果你还不会开服可以看看我的开服教程