以下链接更适合供人阅读和学习使用cuberite服务端,如有需求可以使用以下链接:
cuberite官网
cuberite文档
peg195个人博客
前言
自从paper团队爆冷发布了尚未完成的folia服务端的仓库供大家自行打包jar文件运行,再加上paper本身在bukkit圈知名度很高,以及folia优异的性能表现,很多服主和开发者开始更多的关注folia服务端,并且希望有一天能代替paper,spigot服务端以减轻服务端负担。
然而,在folia之前,也曾出现许多优化逆天的服务端。比如glowstone,cuberite,lantern等很多类似的服务端。这类服务端的一大特点是不基于mojang源代码,即不基于vanilla服务端,自行实现的一类特例(这类特例不包括folia)。而现在,我们将要介绍这其中的cuberite服务端。
那么,什么是Cuberite?
Cuberite是一个兼容我的世界Java版1.81.12.2连接游玩的一个免费开源的C++编写的服务端。能以很小的性能代价运行对于常规服务端而言很大的负荷甚至硬抗压测,(这点我们后面再聊)有一个较好的插件实现的系统以允许你运行lua后缀的插件,(插件安装比较麻烦)
直至今天,Cuberite仍然存在并且活跃。(尽管这个服务端已经不太可能有大型更新,基本上是小修小补)甚至你仍然可以给官方发邮件并且得到他们的答复!
Cuberite存在的历史(搬运自peg195的博客)
Cuberite由FakeTruth于2010年底创建,原名“MCServer”,作为原版服务器的替代品,旨在提供更好的性能和可配置性。它后来是开源的,其他开发人员开始做出贡献。
2013年夏天,MCServer的主存储库从Google Code迁移到GitHub,并引入了新的构建系统。大约在那个时候,几个新的开发人员也加入了该项目,该项目的成员和受欢迎程度开始增加。
截至 2014 年底,MCServer 拥有一支由 10 多名常规开发人员组成的团队,代码库已增长到 125,000 多行(不包括注释、空白行和外部库)。2014 年还引入了许多新功能:
块稀疏(减少 RAM 使用量)
新的红石模拟器
新的水和熔岩模拟器
新发电机(和改进的速度)
2015年,许多新开发人员加入了该项目,社区决定采用Cuberite的当前名称。 截至2015年底,Cuberite在GitHub上拥有超过1000颗星。
2020年是Cuberite成立10周年。作为一个长期存在的项目,Cuberite的生命周期经历了几次起伏。尽管有一段时间的冬眠和忙碌的开发人员生活,Cuberite的开发仍然继续,这要归功于新老贡献者。
cuberite优缺点
优点:历史悠久,社区较活跃(虽然人不是很多),能获得问题解答,插件编写容易,运行效率很好,支持多核,自带完备的多世界和权限管理,插件种类丰富。
缺点:插件数量少,入门偏难,支持版本少,不支持原版红石,用于生存会出现非常多匪夷所思的现象,比如怪物ai呆傻,怪物生成在墙里光速窒息之类的。
如何在简幻欢使用Cuberite?
安装cuberite步骤如下
1.从https://cuberite.org下载Windows的x86 64bit文件,会得到一个zip文件,再下载我修改过的start.cmd脚本(如果无法下载下面会有下载链接,cmd脚本只有下载链接)
2.创建简幻欢服务器实例
实例类别是MinecraftBE
实例服务端是BDSonWindows(反正后面也会删除)
实例版本随便
实例规格自己选个顺眼的(反正cuberite不吃性能)
(这里提一嘴,使用基岩版实例是因为方便教学和服主学习,不是因为cuberite是基岩服务端,请注意这个误区,即cuberite是Java版服务端)
3.创建完实例后在文件-文件管理把所有默认提供的文件全部删除,然后再把cuberite.zip和start.cmd都扔进去,解压cuberite.zip后启动。
修改cuberite配置
cuberite自带了一个功能即网页管理,但是简幻欢不让搭建网站,且实在没有那么多端口供你使用,因此我就只说一些常规方法。
修改setting.ini
你打开这个文件后,重要内容是这些(我没有复制全部文本内容,所以不要问某某内容是什么)
这个图片链接包含了cuberite的基础配置内容,我挑几个重要的讲
[Authentication]
Authenticate=1
这个是是否开启正版验证,1为是,0为否,下同
AllowBungeeCord=0
是否允许bungeecord连接
OnlyAllowBungeeCord=0
是否仅允许来自bungeecord的连接
Server=sessionserver.mojang.com
Address=/session……(太长了)
可以修改为
littleskin.cn
/api/yggdrasil
实现littleskin第三方验证(不会显示皮肤)
(目前,我们仍未研究出让cuberite正确进行第三方登录的方法)
[Server]
Description=Cuberite - in C++!
服务器的motd
maxplayers=100
最大玩家数量
HardcoreEnabled=0
极限模式开启或者关闭
Ports=25565
服务器端口,必须修改成简幻欢实例端口
以上就是cuberite主要配置项
插件安装
cuberite的插件安装有点特殊,他不是把lua文件扔进plugins文件夹就能读取,他需要激活,由于简幻欢不能用网页,我说一下手动激活方法:
下载cuberite插件后,您需要将其放入plugins文件夹然后解压,然后修改setting.ini激活
不懂?假设你有一个Essential插件,你应该把Essential.zip插件扔根目录/plugins/文件夹里面,解压之后,文件结构是./Plugins/Essential/(里面还有个lua)
然后在setting.ini修改[plugins]配置
[Plugins]
Core=1
ChatLog=1
Essential=1
(Essential=0那一栏就是假设我们安装essential插件的plugins文件夹的essential目录名称)
照猫画虎应该也能安装其他插件,实在不会尝试网页管理面板,在webadmin.ini修改ports=8080为面板端口,但是改完设置之后必须把enabled=1把1改成0!这只是应急之需但是不能长时间开放!
cuberite性能表现
非常强悍……
我朋友曾经用了个我忘了是赛扬处理器还是奔腾处理器的vps安装cuberite上假人压测。结果混压了一宿服务器毛事没有,攻击用的电脑先被卡蓝屏的离谱状况出现了……当时压测峰值接近500假人,tps仍然在19以上,带上系统总运存占用2gb,总处理器占用20%,服务器系统是win7/2008。
为了验证这数据没有错,我用我的服务器测了一遍(e5 2690),差不多的假人峰值下cuberite稳如泰山,做到了假人硬抗的奇迹……
(就离谱,听说folia实现千人单端用了高端处理器时候,cuberite用亲民的低端机路线达到了半个千人)
测试时候恍惚中听到一句话:遥遥领先(是不是走错片场了)
cuberite的误区
1.cuberite是c++写的,他不应该是Java服务端而是基岩服务端
回答:基岩版服务端nukkit还是Java写的呢他一样是基岩版服务端
2.cuberite可以套用常规服务端方法开服
回答:不行
3.这类实现一定没有官方的好
回答:看你需求喽
跨版本或互通?
由于cuberite本身游戏内容更新已被搁置,因此停留于1.8到1.12.2,有需要可以用RaphiMC大佬的viaproxy代理软件和修改版geyser-viaproxy插件,github可搜
鸣谢:
peg195(1255060361)提供了中文文档
qingfong1234(文件托管)
文件下载链接:
https://pan.qingfong.com:666/s/QRxSX
cuberite服务端zip
https://pan.qingfong.com:666/s/oq4iM
替换用start.cmd脚本下载