#ecs #multi-thread #gamedev #job-scheduler

crayon

一个小巧、便携且可扩展的游戏框架

17个版本 (7个重大更新)

0.7.1 2018年12月14日
0.7.0 2018年11月21日
0.6.0 2018年9月18日
0.4.0 2018年4月3日
0.0.1 2017年3月7日

⚠️ 已报告问题

#819 in 游戏开发

每月22次下载
crayon-audio中使用

Apache-2.0

1MB
13K SLoC

这是什么?

Build status Codecov Documentation Crate License

Crayon是一个小巧、便携且可扩展的游戏框架,它受到了bitsquidmolecularfloooh等一些优秀的博客的启发。

一些目标包括

  • 直观的、生命周期免费的接口,并通过外部代码模块进行扩展;
  • 从同一源代码在PC、移动设备和Web浏览器上运行;
  • 无状态的、分层的、多线程渲染系统,后端为OpenGL(ES) 3.0或WebGL 2.0;
  • 简化的资源工作流程和从各种文件系统异步加载数据;
  • 为跨平台处理输入设备提供统一的接口;
  • 从底层构建,以关注多线程友好性,并具有工作窃取作业调度器;
  • 等等。

此项目遵循语义版本化,所有显著的更改都将在此文件中记录。

快速示例

为了简洁起见,您还可以使用以下命令运行一个简单且快速的示例

git clone [email protected]:shawnscode/crayon.git && cd crayon/examples
cargo run --bin render_texture

您还可以查看示例文件夹中的截图。

资源工作流程

资源工作流程从版本0.5.0开始提供。在开发过程中,资源可以直接存储在能够由作者工具生成和编辑的格式中,并将其编译成某种高效的运行时格式(通常取决于平台和硬件设备)。

资源操作代码放置在crayon-tools下,请查看仓库以获取更多详细信息。

平台特定

WebAssembly支持基于wasm-bindgenweb-sys,您可以在文档中找到详细的构建说明。在工具文件夹中还有一个简单的wasm模板,可能有助于。

截图

ModelViewer

依赖关系

~3–7MB
~134K SLoC