#game #game-engine #server-client #packet #physics #pbr #code-first

nightly ira

通用、以代码为先的游戏引擎

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 游戏开发

MIT 许可证

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