2 个不稳定版本
| 0.2.0 | 2024年1月24日 |
|---|---|
| 0.1.0 | 2024年1月17日 |
#287 in 渲染
245KB
6K SLoC
Rezcraft
- 使用 wgpu 编写的 Rust Voxel 引擎
- 支持原生目标和 wasm
截图

特性
- 并行化世界和网格生成
- 使用 贪婪网格 高效网格
- 易于添加自定义纹理和方块,在运行时修改方块类型
- 彩色光照系统,日光
- 可通过应用程序设置进行配置
- 透明度(仅原生)
- 存档系统(仅原生)
如何
安装
-
运行无需安装的 网页版本
-
预编译的二进制文件可以在 发布 中找到,这些二进制文件已将所有资产烘焙到自身中,因此您无需资源目录
-
或者,如果您在未启用
portable功能的情况下编译rezcraft,则设置您的文件结构如下- 确保二进制文件
rezcraft(或 Windows 上的rezcraft.exe)和res目录位于同一目录中 - 您的目录树应如下所示
- 确保二进制文件
├── res
│ ├── block
│ │ └── ...
│ ├── icon.png
│ ├── shader
│ │ └── ...
│ └── texture
│ └── ...
└── rezcraft (rezcraft.exe on windows)
-
- 存档和资源目录的位置(默认为
./saves和./res)可以通过设置SAVES_PATH和RESOURCE_PATH环境变量进行更改
- 存档和资源目录的位置(默认为
添加自定义纹理和方块
纹理
- 将
.png图像添加到./res/texture/,它将在程序重启后加载 - 所有纹理必须是正方形,并且所有纹理必须具有相同的分辨率
方块
- 在
./res/block/目录下添加一个描述文件的.yaml块,使用现有文件之一作为模板 - 块及其纹理、光源以及透明度和坚固度等属性也可以在运行时进行编辑(暂停时
编辑块菜单)
控件
| 按键 | 动作 |
|---|---|
| 鼠标移动 | 旋转相机 |
| W / 上箭头 | 向前移动 |
| S / 下箭头 | 向后移动 |
| A / 左箭头 | 向左移动 |
| D / 右箭头 | 向右移动 |
| 空格 / K | 向上移动 |
| Shift + L / J | 向下移动 |
| X / 鼠标右键 | 删除方块 |
| C / 鼠标左键 | 放置方块 |
| V / 鼠标中键 | 选择方块 |
| M | 在玩家位置重新加载区块 |
| F5 | 保存 |
| F9 | 加载 |
| F11 | 切换全屏 |
| F12 | 从配置文件重新加载设置 |
| Tab | 暂停/继续 |
| Esc | 退出 |
使用 cargo 构建
- 安装rust,或者可选地使用包含的开发外壳:
nix develop - 选择特性
| 特性 | 描述 | 备注 |
|---|---|---|
| 便携式 | 不读取资源(纹理、着色器...)从磁盘,而是将它们烘焙到二进制文件中 | 当编译为wasm时必须启用 |
| save_system | 允许保存和加载世界 | 与wasm不兼容 |
| rayon | 加载和保存世界时的额外并行性 | 与wasm不兼容 |
- 手动
- 构建 -
cargo build --no-default-features --release --features "Feature1 Feature2" - 运行 -
cargo run --no-default-features --release --features "Feature1 Feature2" - 构建为 wasm -
wasm-pack build --release --no-default-features --features portable --target web --features wasm_thread/es_modules
- 构建 -
- 使用构建脚本 f
- 为本地目标构建 - run_native.sh
- 为 wasm 构建 - run_wasm.sh
链接
- 源代码库 - https://github.com/Shapur1234/Rezcraft
- Crate.io - https://crates.io/crates/rezcraft
未来更新可能的计划
- 改进世界生成
- 可编辑的控件
- 物理引擎,改进碰撞检测
- 可选地将资产烘焙到二进制文件中
- 华丽的着色器效果
- 多人游戏
依赖项
~28–68MB
~1M SLoC