4个版本 (2个破坏性版本)

0.6.0 2020年5月4日
0.5.0 2019年10月6日
0.4.1 2019年9月4日
0.4.0 2019年9月1日

#653 in 游戏开发

2,427 stars & 54 watchers

1.5MB
36K SLoC

Feather

build Discord

用Rust编写的Minecraft服务器实现。

注意:此项目目前不活跃。请考虑为valence做出贡献。

支持的Minecraft版本

Feather支持1.16.5客户端和世界存档。我们目前没有同时支持多个版本的计划,但我们可能会考虑这一点。

目标

Feather项目旨在提供一款快速、模块化,并配备人性化的插件API的Minecraft服务器。

我们的中期目标是让Feather可用于中心服务器和迷你游戏服务器。Feather中可用的游戏功能有限,但对于需要一小部分原版功能的此类服务器来说,这不是问题。另一方面,Feather的模块化和性能适合这些类型的服务器。因此,我们目前的重点是构建丰富的插件API,以支持这些用例。

从长远来看,Feather可以用于更大、更具生存性的服务器,其性能应该允许许多玩家在同一世界中同时游戏,同时消耗非常少的资源。

生态系统

Feather生态系统由多个仓库组成

  • libcraft,一组提供Minecraft功能的Rust crate。
  • quill,我们的工作进度中的插件API。Quill插件用Rust编写,编译为WebAssembly。Feather在沙箱化的WebAssembly VM中运行它们。
  • feather,基于libcraftquill构建的服务器软件。

性能

与原版性能的比较将非常具有误导性,因为Feather实现的功能很少。但如果你真的想要它们

  • Feather可以处理插件生成的100万个实体,然后才开始达到CPU的最大值。原版服务器会在那时崩溃。
  • Feather可以处理500个并发玩家连接,每个玩家随机行走。

随着Feather实现更多功能,这些结果将会发生变化,所以请谨慎对待。

Feather的内存使用量与加载的区块数量成正比,而不是玩家数量。在500玩家测试中,服务器使用约40 MiB的RAM,直到玩家开始分散。在100万实体测试中,即使没有任何区块加载,它也使用400 MiB的RAM。

运行

我们在GitHub Actions上提供了Windows、Linux和macOS的预编译二进制文件,地址为GitHub Actions。注意:不要使用github发布版本,它们主要过时了。

要运行Feather

  • 解压缩下载的压缩包。
  • 运行二进制文件。
    • 在Linux和macOS上:在服务器目录中运行./feather-server
    • 在Windows上:双击feather-server.exe

服务器将创建一个配置文件(config.toml),您可以修改。

Feather默认会生成一个世界。如果您想加载原版世界,请将世界存档复制到服务器目录下的“world”名称下(默认)。

警告:Feather世界持久性相对较新,尝试在原版中打开Feather世界可能会出现问题。除非它们已经备份,否则不要让Feather接触您关心的世界。

编译

如果您在其他平台上,可以自己编译服务器以进行尝试。

git clone https://github.com/feather-rs/feather
cd feather
cargo build --release

从源代码编译需要最新稳定版本的Rust。较旧的Rust版本可能能够编译Feather,但它们不能保证持续工作。

服务器可执行文件将位于target/release

架构

对于贡献者,我们在这里提供了一个关于Feather架构的正在进行中的解释。

常见问题解答

  • Feather是否已准备好投入生产使用?

还没有。还有许多待解决的错误和缺失的功能,代码库还没有得到足够的测试,不能认为服务器已准备好投入生产使用。

  • 我如何进行贡献?

查看我们的问题跟踪器,了解需要完成的工作。随时加入我们的Discord并随时提问。感谢您对贡献的兴趣!

  • 我还有其他方式可以帮忙吗?

是的!我们一直在寻找测试服务器并寻找错误的人。如果您发现任何您认为不正确的事情,请请在问题跟踪器上提交问题。

依赖项

~1.5–2.3MB
~43K SLoC