Nukkit

From Minecraft基岩版开发Wiki
Nukkit.png

核动力级的Minecraft基岩版服务端软件。

——Nukkit

Nukkit(简称NK)指由MagicDroidX[注 1]发起的,使用Java编写的基岩版服务端及其分支和开源社区。初版Nukkit的GitHub仓库于2015年5月23日首次提交,现已停止维护。Cloudburst Nukkit是被原Nukkit团队官方认可并由CloudburstMC团队积极维护的分支版本。

此外,Nukkit还有相当丰富的社区分支版本,如PowerNukkit分支、PM1E分支、花雨庭分支EaseCation分支等。它们自携带版0.12更迭至今,共同成就了灿烂辉煌的Nukkit社区。

特点[edit]

优势[edit]

  • 作为老牌开源服务端,Nukkit拥有强大的社区支持和良好的社区生态;
  • Nukkit提供完善、便捷、强大的插件支持[1],目前公开发布的插件已多达数千个[2][3]
  • Nukkit适于大型服务器的搭建,其可靠地支撑了诸如花雨庭、EaseCation等玩家众多的知名基岩版服务器;
  • Nukkit的大多数分支仍在迅速更新维护,庞大的社区帮助开发者及时有效解决问题,第一时间跟进游戏版本;
  • Nukkit提供PocketMine风格API,却有更大的性能优势;
  • 相较于其他服务端,在Linux上使用Nukkit有极大的性能优势,在Windows上同样表现优异。

劣势[edit]

  • Nukkit最初为小游戏服务器设计,抛弃了很多原版游戏特性[注 2]
  • Java版本兼容性差[注 3]
  • Java多线程的优势并未得到充分利用。

社区历史[edit]

时间 事件
2014-2015年 MDX开始策划开发API与PocketMine、Bukkit相似,性能比PocketMine更高的服务端。
2015年5月17日 MDX主导的团队[4]创建了Nukkit开源仓库并开始开发Nukkit。
2016年2月 Nukkit初步定型,Nukkit社区也蓬勃发展起来。
2017年10月 Nukkit开源版本不再进行内容更新,并标注“Inactive(不活跃)”。此后,社区将精力放在NukkitX的开发上,NukkitX也成为了Nukkit官方推荐的继承者。[5]
2020年1月23日 NukkitX开发组宣布,因Nukkit内核历史遗留问题太多,他们决定重写一个新的Nukkit,最初命名为Nukkit2.0。
2020年5月2日 NukkitX并入CubeCraft团队,成为CubeCraft团队的一部分。[6]
2020年7月3日 NukkitX团队名更名CloudburstMC,NukkitX的java包名也由cn.nukkit改为org.cloudburst。[7]
2020年7月5日 CloudburstMC抹去了NukkitX分支后缀“X”,使用Nukkit的名称继续维护,但社区通常仍称呼为NukkitX以进行区分。[8]

社区团队与分支[edit]

官方团队[edit]

官方团队的Nukkit仓库最后提交于2019年6月,随后便被归档,宣告Nukkit官方版本停止维护。许多社区开发者自行组建团队,继续为Nukkit做新游戏版本的维护工作。

CloudburstMC团队[edit]

CloudburstMC团队是原Nukkit团队官方认可的继承者,隶属于CubeCraft Games[9],拥有着可靠的后方支持和可观的发展前景。他们目前维护着以下两个分支:

  • Nukkit[注 4]:以维持版本更新与修复稳定性为主的分支,不对游戏新功能进行添加。
  • Cloudburst:原名Nukkit2.0,是Nukkit基础上的重构版本。目前不推荐在生产环境中使用。

PowerNukkit[edit]

Powernukkit.png

PowerNukkit由外国团队维护,目标是提供完整的Minecraft游戏体验。它持续添加了游戏的新特性,如含水方块、红石、副手槽等,支持几乎所有方块和物品,且兼容大部分Nukkit插件;然而缺少一定的稳定性。同时,PowerNukkit地图文件中的物品ID与Nukkit略有不同,二者地图无法完美转换。

PowerNukkitX[edit]

PowerNukkitX BANNER.png

PowerNukkitX是由包括BlocklyNukkit团队在内的中国Nukkit开发者们负责开发维护的分支,它修复了PowerNukkit的众多BUG,提高了性能,添加了LiteLoader插件的支持,内置Terra地形生成器;并且及时跟进新版本支持、支持1.18所有新方块和新物品、支持新版下界。在这些大更改的情况下,PowerNukkitX仍然保持了良好的插件兼容性,Nukkit生态中的数千个插件仍然可以良好运行。得益于完全开源的代码,开发者在遵守开源协议的情况下使用PowerNukkitX没有任何法律风险,内部的数十万API可以随意调用,也可以深入查看实现,通过JVM生态中的各种工具及其方便地进行开发、调试、注入、拦截。

目前,PowerNukkitX正在积极开发维护。

PetteriM1Edition[edit]

NukkitPetteriM1Edition是Cloudburst核心开发者PetteriM1为其服务器SuomiCraft PE制作的分支。内置生物AI和生成,实现更多的方块、物品和命令(地图、盾牌、弩、更多红石方块等)。

中国版团队[edit]

网易代理我的世界中国版后,联合EaseCation开发组等国内团队持续为中国版手游网络游戏服务器维护特殊版本的闭源Nukkit。目前已知的是,他们为Nukkit添加了ModAPI的接入能力。

评价[edit]

如果你是PC插件开发者,或许你可以很快适应NK的API;如果你是PE插件开发者,或许你可以很快适应Java的语法。NK它的很多API和PM差不多,所以PE可以很快上手。[10]

——zmdd

Nukkit社区是一个非常友善的社区,即使你是新手,也能在社区帮助下快速学习和上手。同时这也是一个开放包容的技术社区,可以通过很多方式来使用丰富的NKAPI创建插件,这里从不排斥新想法。[11]

——超神的冰凉

余谈[edit]

  • 知名小游戏服务器EaseCation[12]便采用Nukkit和Nemisys构建群组服,承载千位玩家共同在线游玩,其主要开发人员也是Nukkit的核心贡献者之一。
  • Nukkit创建前期,因其与Bukkit的API相似,存在可将Bukkit插件移植到Nukkit上的可能性,Pokkit项目也因此发起。Pokkit吸引了很多JE开发者加入,然而后续随着Nukkit停更夭折。
  • NukkitX开发团队被CubeCraft收购后,主要开发Geyser,国外众多开发者也纷纷进入JE圈子,Nukkit开发强度从此急剧下降,也逐渐不再能跟上基岩版社区发展的步伐。[13]

注释[edit]

  1. 简称MDX,下同。
  2. 实际上也不乏有解决该问题较好的分支,如PowerNukkitPowerNukkitX
  3. 指jvm环境版本。
  4. 这里只是延用了官方的名称,原分支名是“NukkitX”(NKX),与MDX团队无关。

参考资料[edit]