docs.rs failed to build anvilkit-ecs-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
AnvilKit 🔨
一个基于 Rust 的现代化模块化游戏基础设施框架
🎯 项目愿景
AnvilKit 致力于为 Rust 游戏开发者提供一套优雅、高性能且可自由组合的核心工具集。它支持无缝构建 2D 和 3D 游戏,同时保持对整个技术栈的完全透明和深度控制。
✨ 核心特性
- 🏗️ 统一但非均一架构 - 统一的 API,针对性能优化的底层实现
- 🧩 模块化组合 - 通过 Cargo features 实现按需编译
- 🚀 现代化技术栈 - 基于
bevy_ecs、wgpu、rapier等顶级库 - 🎮 2D/3D 混合支持 - 在同一项目中无缝使用 2D 和 3D 功能
- 🛠️ 开发者体验优先 - 清晰的 API、丰富的示例、快速编译
🏛️ 架构设计
核心模块
anvilkit/
├── anvilkit-core/ # 核心类型、数学库、时间系统
├── anvilkit-ecs/ # Bevy ECS 封装和扩展
├── anvilkit-render/ # 统一渲染引擎 (2D/3D)
├── anvilkit-physics/ # 可切换物理引擎 (rapier2d/3d)
├── anvilkit-assets/ # 异步资源加载和管理
├── anvilkit-audio/ # Kira 音频引擎集成
├── anvilkit-input/ # 跨平台输入系统
├── anvilkit-devtools/ # 开发者工具套件
└── anvilkit/ # 主 crate 和插件系统
技术栈
| 模块 | 核心依赖 | 选型理由 |
|---|---|---|
| ECS | bevy_ecs |
社区标杆,性能卓越,人体工程学设计一流 |
| 渲染 | wgpu |
现代、安全、跨平台的图形 API 抽象层 |
| 物理 | rapier2d/3d |
功能强大、性能出色的纯 Rust 物理引擎 |
| 音频 | kira |
表现力强,专为游戏设计 |
| 数学 | glam |
简单、快速,为游戏和图形设计 |
🚀 快速开始
依赖配置
AnvilKit 使用 Cargo workspace,各模块独立引用:
[]
= { = "crates/anvilkit-core", = ["bevy_ecs"] }
= { = "crates/anvilkit-ecs" }
= { = "crates/anvilkit-render" }
= { = "crates/anvilkit-input" }
基础示例
use *;
use *;
use AnvilKitSchedule;
完整 PBR 渲染示例参见 examples/showcase.rs。
📋 开发路线图
当前状态:Phase G 完成 (M12c)
已完成的里程碑:
- M0-M1: 核心地基 — ECS + 数学/时间系统
- M2-M3: 渲染系统 — wgpu 管线 + 3D 渲染验证
- M4a-M4d: 资源系统 — glTF 加载 + 纹理 + Blinn-Phong + PBR
- M5-M6: ECS 多物体架构 + PBR 统一 + 法线贴图 + HDR + IBL
- M7: 多光源 + 阴影 + 完整材质 + MSAA
- M8: Frustum Culling + GPU Instancing + 多 Submesh
- M9: 场景图 + 资产管线 + 2D 渲染栈
- M10: 输入系统 + 物理集成 + 音频集成
- M11: 骨骼动画 + UI 系统 + 粒子系统
- M12: 调试工具 + 性能分析 + 文档
示例游戏:
games/craft— Minecraft 风格体素沙盒(地形生成、方块交互、昼夜循环)games/billiards— 台球模拟(2D 物理、碰撞、开球规则)
性能目标
- ECS 性能: >1M entities @ 60FPS
- 渲染性能: 60FPS @ 1080p (PBR 场景)
- 编译时间: <30s 增量编译
📚 文档和示例
- 📖 在线文档 — 完整的中英双语文档站点(基于 Fumadocs)
- 🎮 Showcase 示例 - PBR 全功能演示(DamagedHelmet)
- 🏗️ AnvilKit CLI - 项目脚手架工具
本地运行文档
# 访问 http://localhost:3000
🤝 贡献指南
AnvilKit 是一个开源项目,欢迎社区贡献!
开发环境设置
# 克隆仓库
# 安装 Rust (如果尚未安装)
|
# 构建项目
# 运行测试
# 运行示例
贡献流程
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'feat(core): 添加惊人的新特性') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
📄 许可证
本项目采用双许可证:
您可以选择其中任一许可证使用本项目。
🙏 致谢
AnvilKit 站在巨人的肩膀上,感谢以下优秀的开源项目:
📞 联系方式
用 Rust 锻造游戏的未来 🔨