前言
主要讲主流插件端始祖bukkit,spigot,paper的诞生以及分割,paper的衍生purpur,leaves以及leaf,folia的原理以及luminol的来历。
插件端的开始
先放个链接
bukkit是最早诞生的插件端之一,后续成为了spigot服务端的基础,不久后,spigotmc项目成立,在不破坏原版特性和bukkit特性得到一度好评,但是后来有出现内存泄露等严重的性能表现,让腐竹们苦不堪言。
papermc团队
链接
papermc团队最初基于spigotmc服务端开发了paper服务端,以牺牲原版特性为代价,提升了不少性能表现。
papermc的兼容性强,几乎兼容来自spigotmc的所有api(接口),因此社区发展迅速。
papermc团队没有停下脚步,他们开始专注性能表现的同时,开发新的api(接口),Paper 在去年(2024)年底已经和 Spigot 发生了硬分叉(hard-fork),这意味着两者之间不再存在继承关系,因此,开发者们需要在二者之间做一个抉择。
然而,paper有公认的缺点,牺牲原版特性,让生电玩家苦不堪言。
papermc的衍生端
-
leavesmc - 基于paper,专注于修复被破坏的原版特性服,其次有很强的性能表现和地毯模组,地图模组等辅助模组的兼容性,想在插件端生电的不二之选。
-
purpurmc - Purpur基于Paper,面向bukkitapi,spigotapi和paperapi的拓展以及提供更多的可配置性,玩法类服务器可以考虑选择purpur。
-
leafmc - 基于paper,专注更NB的性能表现优化和稳定性表现,如果你只考虑性能表现,可以考虑选择leaf。
folia的出现,原理和衍生端
服务端再怎么优化,都有一个公认的问题,那就是单线程负责所有玩家和实体的处理工作。
于是,papermc团队开发了一个全新的项目-folia。
原理
官方描述
官方描述过于专业,简单来说就是以一个玩家为中心分配线程,而不是原本一个核心处理所有事件,同样的,对原版特性的破坏也是严重的。