13 个版本 (破坏性更新)
0.15.3 | 2020年8月23日 |
---|---|
0.10.1 | 2020年8月17日 |
0.10.0 | 2020年3月23日 |
0.8.1 | 2019年10月4日 |
0.1.0 | 2017年12月30日 |
#39 在 #gltf
每月172 次下载
用于 amethyst
800KB
18K SLoC
非活跃维护!
Amethyst 游戏引擎已停止开发。请阅读此帖子了解详情: https://amethyst.rs/posts/amethyst--starting-fresh
对于 0.15.3 及更早版本,必须使用以下 Rust 版本才能编译成功。
rustup覆盖设置 1.47
什么是 Amethyst?
Amethyst 是一个数据驱动且面向数据的游戏引擎,旨在快速且尽可能配置灵活。
原则
这些原则使 Amethyst 在游戏引擎的世界中独树一帜,具有竞争力
为什么选择 Amethyst?
极端多线程
Amethyst 基于一个非常强大的并行 ECS,称为 Specs。这使得使用 Amethyst 构建的游戏能够最大限度地利用可用处理能力,以尽可能平稳和快速地运行,无需多线程编程的烦恼。
简洁
按照设计,Amethyst 引擎鼓励用户编写简洁且可重用的代码来处理行为和数据结构。这使得引擎用户可以轻松共享有用的组件,从而减少开发时间和成本。
使用 ECS 架构,游戏的代码可以清晰地区分数据和行为,即使游戏在运行于强大的 64 核处理器上,也容易理解其运行原理。
社区
- Discord - 公告、帮助、有用信息、一般讨论。
特性
请访问特性页面,了解Amethyst提供的特性列表。
导航
使用说明
虽然有时引擎难以使用,但我们制作了大量文档,这些文档会教你如何舒适地使用Amethyst。
如果你不理解文档中的某个部分,请告诉我们。加入我们的Discord或打开一个问题;我们总是乐于提供帮助!
入门指南
开始之前
此存储库使用Git LFS处理示例中的一些文件。如果你打算运行示例,请在克隆之前确保你的系统中已安装LFS。你可以在Git LFS主页下载它并阅读安装说明。
示例
要编译任何示例,请运行
$ cargo run -p name_of_example
所有可用的示例都列在示例目录下。
要查看一个完整的“Hello World”教程,请查看书中入门指南章节。
展示游戏
我们的官方展示游戏展示了使用Amethyst制作的更大、持续开发的游戏项目。
- Evoli - 3D,生态系统模拟器
- Space Menace - 2D,动作平台游戏
更多示例,请参阅社区论坛上的用Amethyst制作的游戏主题,那里有灵感的良好来源。
依赖项
如果你在Linux上编译,请确保安装以下依赖项。
Arch Linux
pacman -Syu grep gcc pkgconf openssl alsa-lib cmake make python3 freetype2 awk libxcb
Debian/Ubuntu
apt install gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev libfontconfig1-dev
Fedora
dnf install pkgconfig gcc openssl-devel alsa-lib-devel cmake make gcc-c++ freetype-devel expat-devel libxcb-devel libX11-devel
openSUSE
zypper install gcc pkg-config libopenssl-devel alsa-devel cmake gcc-c++ python3 freetype2-devel libexpat-devel libxcb-devel
Nix/NixOS
在你的项目根目录下,创建一个包含以下内容的文件shell.nix
let
mozilla = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz);
nixpkgs = import <nixpkgs> { overlays = [ mozilla ]; };
in
with nixpkgs;
mkShell {
buildInputs = [
alsaLib
cmake
freetype
latest.rustChannels.stable.rust
expat
openssl
pkgconfig
python3
vulkan-validation-layers
xlibs.libX11
];
APPEND_LIBRARY_PATH = lib.makeLibraryPath [
vulkan-loader
xlibs.libXcursor
xlibs.libXi
xlibs.libXrandr
];
shellHook = ''
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$APPEND_LIBRARY_PATH"
'';
}
其他
查看你特定发行版的安装过程,了解相应的依赖项。
请注意,你需要安装一个功能齐全的图形驱动程序。如果你在尝试运行示例时遇到渲染器无法创建上下文的恐慌,可能是因为驱动程序安装有误。
构建文档
你可以使用以下命令在本地构建书籍
cargo install mdbook
mdbook build book
如果你正在积极编辑书籍,最简单的方法是运行
mdbook serve book
并导航到http://localhost:3000
。文本本身可以在book/html/index.html
中找到。有关更多信息,请参阅mdBook项目。
要本地生成API文档,请执行以下操作
$ cargo doc
API参考可以在target/doc/amethyst/index.html
中找到。
问题/帮助
Amethyst仅支持Rust的最新稳定版本。使用此项目时,请自行承担使用nightly和beta通道的风险。
如果你有疑问,请在提问之前查看常见问题解答。很可能会发现,你问题的解决方案已经存在那里。如果你仍然需要帮助,请随时在我们的Discord服务器上提问。
您可能还想查看的其他地方包括 r/rust_gamedev 和 #rust-gamedev IRC。
贡献
注意:与 Amethyst 项目的任何互动都受我们 行为准则 的约束。
Amethyst 是一个基于社区的开放项目,欢迎任何人的贡献。如果您有兴趣帮忙,请在开始之前阅读 贡献指南。
我们有一个 良好入门问题 类别,其中包含所有无需深入了解 Rust 或 Amethyst 也能提出的 issue 或功能请求。处理这些问题是学习的好方法,如果不是最好的话。
如果您认为自己还没有准备好编写代码,您仍然可以通过审阅其他社区成员编写的代码来做出贡献。代码审查确保合并到 Amethyst 中的代码质量尽可能高。可供审阅的拉取请求可以在 这里 找到。
如果我们没有待审的 PR 或良好的入门 issue(那将是一个好事),您可以随时查阅我们的 问题跟踪器。
支持者
感谢所有支持者!🙏 成为支持者
赞助商
Amethyst 由以下组织支持
许可
Amethyst 是免费和开源软件,根据 MIT 许可证和 Apache 许可证 2.0 分发。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的旨在包含在本作品中的任何贡献,都将按照上述方式双重许可,不附加任何额外条款或条件。
lib.rs
:
一个用于将 GLTF 格式场景加载到 Amethyst 中的 crate
依赖项
~43MB
~670K SLoC