v0.2.0

用 Rust 写游戏
模块化,高性能。

AnvilKit 是一个模块化的 Rust 游戏引擎。把渲染、物理、ECS 这些拆成独立 crate,用多少拿多少,不用的不编译。

核心设计

不是黑盒,是工具箱

每个功能都是独立的 crate。想用完整引擎?一行 use anvilkit::prelude::*。只想用渲染?单独引 anvilkit-render。不会拖进来你不需要的东西。

独立 Crate

渲染、物理、资产各自独立,按需组合。

编译期零开销

Rust 的零成本抽象 + 内存安全,不牺牲性能。

crate_graph
┌─────────────────────────────┐
│        anvilkit (facade)    │
└──────────────┬──────────────┘
               ▼
┌──────────────┴──────────────┐
│      anvilkit-ecs (bevy)    │
└──────┬──────────────┬───────┘
       ▼              ▼
┌──────┴──────┐ ┌─────┴──────┐
│anvilkit-    │ │anvilkit-   │
│render (wgpu)│ │physics     │
└──────┬──────┘ └─────┬──────┘
       ▼              ▼
┌──────┴──────┐ ┌─────┴──────┐
│anvilkit-    │ │anvilkit-   │
│assets (gltf)│ │input       │
└─────────────┘ └────────────┘
写代码

上手就三行

use 一下,创建 App,注册系统,run。不需要配置文件,不需要代码生成。Rust 编译器就是你的类型检查器。

Terminal$ cargo run --release
</>src/main.rs
use anvilkit::prelude::*;

fn main() {
    App::new()
        .add_plugins(RenderPlugin::default())
        .add_systems(Startup, setup)
        .add_systems(Update, game_logic)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn((
        CameraComponent::default(),
        Transform::from_xyz(0.0, 2.0, -5.0),
    ));
}
内置功能

开箱即用的 8 大模块

🌳

ECS 架构

基于 Bevy ECS,并行调度、原型存储、变更检测,开箱即用。

🎨

渲染

PBR、HDR 泛光、SSAO、级联阴影——全部基于 wgpu。

物理

内置 AABB 碰撞检测,可选集成 Rapier3D。

🔊

音频

基于 Rodio 的 3D 空间音频,支持 WAV/Vorbis/MP3。

📦

资产

glTF 加载、热重载、程序化网格生成。

🎮

输入

键盘、鼠标、手柄——统一的输入抽象。

🖥

UI

Flexbox 布局引擎,支持文字渲染和层级排序。

🔧

开发工具

帧分析器、调试控制台、线框渲染器。

Technical_能力

REF_ID: #4492-X

多线程
ECS 管线

系统默认并行跑。调度器自动把工作分到所有 CPU 核心,不用你操心锁和竞争条件。

ECS
LOCK_FREE
AUTO_THREADED

wgpu 渲染

一套代码跑 Vulkan、Metal、DX12。不用写平台特定代码,每个平台都是原生性能。

🎨
零成本抽象

抽象在编译时全部内联,运行时零开销。

🛡
内存安全

没有段错误,没有内存泄漏。编译器帮你兜底。

实战项目

用 AnvilKit 做的游戏

Craft
CRAFT

Craft — 体素沙盒

程序化地形生成、方块建造破坏、昼夜循环、后处理滤镜。

cargo run -p craft
Billiards
BILLIARDS

Billiards — 台球模拟

完整 PBR 渲染、自定义碰撞物理、瞄准射击、计分系统。

cargo run -p billiards
命令行

Anvil CLI

一个命令创建项目,一个命令跑起来。自动处理项目结构和依赖,你只管写游戏逻辑。

$anvil new my-game
$cd my-game
$anvil run

环境要求

  • Rust (latest stable)
  • Git
  • C 编译器 (构建原生依赖)
v0.2.0

三步跑起来

01

装 CLI

一行装好脚手架工具。

cargo install anvil-cli
02

建项目

生成项目模板。

anvil new my_game
03

跑起来

编译并启动。

cargo run

完全开源

MIT / Apache 2.0 双许可。站在这些优秀项目的肩膀上:

bevy_ecswgpuwinitglamrodiorapier