#ecs #component #entity #systems #youtube #builds #dod

sceller

基于 Brooks Builds 在 YouTube 上的教程系列编写的 Rust ECS(实体组件系统)库

6 个版本

0.3.0 2022 年 11 月 12 日
0.2.1 2022 年 7 月 16 日
0.1.2 2022 年 7 月 14 日

#807 in 游戏开发

MIT 许可证

87KB
1K SLoC

SCELLER: 在 Rust 中用系统、组件、实体列表实现 Ekindled

该实体组件系统没有被命名为 SECS,因为有人已经使用了 SECS。

SCELLER 是一个基于 YouTube 上 Brooks Builds 的教程编写的 Rust 实体组件系统。该系列教程介绍了如何创建一个实体组件系统(用 Rust 实现)。

Sceller 基于 DOD(面向数据的设计)。这意味着你的代码不是围绕对象编写的,而是编写具体的 数据 代码,围绕访问这些数据编写 系统。如果你想了解更多,建议在 Google(或如果你 真的 想)上搜索 ECS

该项目目前没有任何图形、音频、视频等。它只是一个实体组件系统。如果你在寻找真正有用的东西,尝试 bevy,它真的非常酷。

如果你想安装并自己尝试代码,如果你在 Windows 上,请运行以下命令

首先,你需要创建一个新目录:(你可以命名文件夹,我命名为 sceller_test。)不用说,你需要在设备上安装 cargo

重要!

Windows 用户需要 Visual studio build tools 2012、2017、2019、2022 或其他(如果你想要编译这个 crate 的依赖项 eyre 和 thiserror),如果你觉得需要查看糟糕的代码,可以克隆仓库并删除这些 crate。别以为我对需要微软的 C 东西感到高兴,因为他们不让人们正常使用 C++。

回到我们之前做的事情

C:\...> mkdir sceller_test\
C:\...> cd sceller_test\
C:\...> dir
C:\...> 

然后,将仓库克隆到该目录中,确保在命令末尾添加一个 '.'(句点),以确保克隆到当前目录。

C:\...> git clone https://github.com/loafoflead/sceller .
Cloning into 'sceller'...
remote: Enumerating objects: 78, done.
remote: Counting objects: 100% (78/78), done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 78 (delta 32), reused 78 (delta 32), pack-reused 0
Receiving objects: 100% (78/78), 22.99 KiB | 2.87 MiB/s, done.
Resolving deltas: 100% (32/32), done.
C:\...> 

然后,你可以键入 'dir' 检查文件夹内容,看看是否都齐全。

C:\...> dir
12:19                src
12:19                tests
12:19             22 .gitignore
12:19            279 Cargo.toml
12:19              0 README.md
C:\...>

它应该看起来像上面的样子,只是有点杂乱。

如果你想用 Rust 测试这段代码,请运行

C:\...> cargo test canary
Updating crates.io index...
    fetch [=>               ] 12/101
...
C:\...>

然后等待它完成。你也可以简单地运行 cargo test 来查看是否所有测试都通过。

如果您想找到一些crate的实际实现,请查看examples文件夹中的示例。要运行这些示例,请执行以下操作:

C:\...> cargo run --example resource_example

如果您使用的是Mac或Linux,我非常确信这个过程类似,尽管可能不太繁琐。我恐怕不知道在GNU/Linux上确切需要哪些依赖项,但如果你是Rust程序员,你可能已经安装了它们,比如libc和类似的东西,或者Ubuntu上的build-essential

我可能在某个时候测试它,我的笔记本电脑上有WSL。

注意

这个库有一些限制,主要与查询函数相关。不用说,你不应该用这个crate来制作一个真正的项目,但你仍然应该查看查询函数文档,因为它显示了限制。

祝您ecs-ing愉快!

依赖项

~0.5–1MB
~21K SLoC