5 个不稳定版本
0.3.0 | 2024年6月24日 |
---|---|
0.1.0 | 2024年6月14日 |
0.0.6 | 2024年6月14日 |
0.0.3 | 2024年6月6日 |
0.0.1 | 2024年6月3日 |
#1522 in 游戏开发
120KB
3.5K SLoC
伊拉
通用、以代码为先的游戏引擎。
特性
- 使用
wgpu
进行 PBR 渲染和光照 - 使用
ira_drum
的简单打包系统用于游戏资源- 支持 glTF 2.0
- 支持 OBJ
- 使用
rapier
进行物理模拟 - 内置多玩家支持,并支持自定义数据包
- 无头服务器、客户端和服务器-客户端支持
示例
struct App {
car: InstanceRef,
}
impl ira::App for App {
fn on_init(_window: &mut Window) -> Drum {
Drum::from_path("car.drum").unwrap()
}
fn on_ready(ctx: &mut Context) -> Self {
Self {
car: ctx.add_instance(0, Instance::builder().up(Vec3::Z))
}
}
fn on_update(&mut self, ctx: &mut Context, delta: Duration) {
self.car.update(ctx, |i, p| i.rotate_y(p, delta.as_secs_f32() * PI * 0.25));
}
}
fn main() -> Result<(), EventLoopError> {
Game::<App>::default().run()
}
更多示例可以在 examples
目录中找到。
准备资源
可以使用 ira
工具将各种游戏资源(glTF 等)打包成单个 Drum。
有关更多信息,请参阅 ira_cli 文档。
屏幕截图
许可证
根据 MIT 许可证授权。
依赖关系
~16–52MB
~1M SLoC