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