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
用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
,基于libcraft
和quill
构建的服务器软件。
性能
与原版性能的比较将非常具有误导性,因为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
- 在Linux和macOS上:在服务器目录中运行
服务器将创建一个配置文件(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