原版MC服务端如果使用Ryzen 9 9950X,在非生电玩法的生存模式下假设其他硬件没有瓶颈,理论能200+玩家同时在线,如果玩生电或模组玩法或许只能承载几十人同时在线
在这么多人在线的情况下,TPS(每秒刻数)通常也很难稳定维持在20满值,服务端的主进程只能运行在单个CPU核心上,只有光照计算被拆分,区块生成等少数任务实现了多线程并行,所以用服务器CPU或工作室U之类的一些暴力堆核的U提升效果有限
不过不要小瞧社区开发者的实力和玩家之间的羁绊啊,所以我们有了两种方向的完善解决方案
简单粗暴,一个服务端吃一个核,那我开10个不就能打10个了
说干就干,这也是MC原版最早的超大型服务器(甚至是市面上各种主流网游)的实现方式,比如Hypixel的数万人甚至峰值时期十数万人同时在线的规模就是这么实现的,如果你在Hypixel的一个模式大厅尝试点击过切换大厅,你就会发现光一个模式的大厅就有几十个,更别说数不胜数的对战房间了
这种原始也好用的方案是目前的主流,大部分的多人服务器都会考虑这个方案,模块化,方便管理控制,也有着更高的兼容性与上限
这个大方案也有两种小方案
比较经典的是通过一个代理转发数据包到子服务器实现对玩家的完全控制,比如Velocity、Bungeecord、Waterfall之类的代理端,这种代理端本质上是先接收玩家的连接,再替玩家连接到子服务器上(比如Hypixel的对战房间),这样可以实现很丝滑的切换,感觉就像只是跨了一个维度一样,但本质上玩家已经进入了一个船新的服务端(一般这样的多个服务端会存在于同一台机器或者同一个机房内,这样与代理之间的信息传输代价就会比较小)
还有另一种比较新现在没人用,但验证过可行的实现方式是,不要代理,把玩家实实在在丢到另一个服务器上,与上个服务器再无瓜葛,比如1.20.5+原版增加的/transfer命令,或者server-redirect模组,不通过转发代理的方式实现跨服,对多地多机器的群组服较为友好/transfer命令其实挺方便的,但就是如果用server-reditect怎么让玩家装上这个mod是个问题
如果你说,“我就是要和一堆人在同一个服务器里玩,谁也不能将我们分开”那么群组服这种每个子服务器分别隔绝的方案就没那么合适了
但有解决方案,其中现在其中一个比较受欢迎的方案是Folia
这是PaperMC发布(...暂未发布)的一个极具创新性的服务端,他将一个服务端切成多个块,但是这多个块儿还是运行在同一个服务端下,所以说玩家本质上还是在同一个服务器里游玩的
和群组服的完全割离不同,在Folia(以及其发行版)下,玩家实实在在地在同一个存档游玩,也可以与其他玩家交互(但若是所有玩家聚在一个块也会导致那个块运行迟缓)
在这个方案下,一个服务端能容纳的玩家数量是理论无限的

这是一张不知道谁的图,某FoliaFork的交流群里分享的

你可以看到在有2000多个bot的情况下服务器依然丝般顺滑
但是,凡事都有但是,用Folia也是有代价的
Folia虽然基于原版服务端开发,但是改动太大出现了生殖隔离,也就是说以往社区里开发的资源,那些以往的bukkit插件在Folia全部失效(大概),原版数据包也是失效了一半,只有一部分能用
目前Folia还有几个分支,国内现在比较出名的有两个,一个叫Luminol ,提供更好的监控与性能,还有个叫LightingLuminol的分支试图在Folia的基础上兼容回bukkit插件(草)。这个服务端的特点是,能用命令方块。
还有一个叫Lumina(氧化铝(悲)),由Leaves团队开发,目标是在Folia的基础上还原更多生电特性(草),看来这个团队很执着于在paper玩生电啊。这个服务端的特点是,能刷地毯。
然后还有魔改程度夹个在Paper和Folia之间的东西叫Purpur,兼容Paper的所有插件,但没做到将主线程并行化
不像Folia一样以实现超大型多人在线服务器为目标,Purpur提供了非常多的自定义功能,让服务端能被更精细的控制,从而实现比原生Paper更好的性能(这名真难记)。这个服务端的特点是没有真正做到并行化处理主线程,优化能力有限。
还有另一个叫MultiPaper的东西,走的是另一个路线
Folia是把一个服务端魔改出更多线程,MultiPaper则是在更上层进行魔改,尽可能少魔改服务端底层,实现思路是将多个服务端的内容同步,也能让玩家互相看见,本质上还是多个服务端的集群,所以能同时兼容各种插件。这个服务端的特点是,不兼容最新版本,而且更新特别慢
目前我在整的一个群组服就使用了velocity,这个群组下就包含一个Luminol服务端,甚至还带一个forge模组端,但听说Velocity对Forge的支持不好,即使真的不好也可以用transfer解决,具体不知道具体啥情况,Forge模组子服务器的项目黄了,负责人摆烂了,反正Luminol端和Purpur端是在Velocity下跑起来了。
Copyright © 2022-2023 sxyaq.com. All Rights Reserved. 上信云 版权所有 上海上信云互联网科技有限公司 沪ICP备2023011366号-1