2个版本
0.10.3 | 2022年1月17日 |
---|---|
0.10.0 | 2022年1月8日 |
#1940 在 游戏开发
68 每月下载量
在 7 个Crate中(直接使用4个)
230KB
6K SLoC
Ivy
是什么
Ivy 是一个模块化应用程序和游戏框架,用于Rust。
此Crate提供了多个 ivy
Crate的合并、重导出以及别名。
指南
提供了一本用户指南,以便用户快速熟悉引擎的基本用法。
功能
- Vulkan高级渲染
- PBR渲染和后期处理
- Rendergraph抽象
- 碰撞检测和真实物理响应
- ECS驱动架构
- 使用观察者模式进行延迟动态事件
- 任意凸形体的光线投射
- 基于句柄的动态存储
- 具有可组合矢量生成的输入系统
- 具有可配置小部件和对齐系统的UI系统
- ... 更多
画廊
如何工作
层
程序的核心是一个应用程序。[core::App
]. 它定义了更新循环和事件处理。
从那里,逻辑被提取到层中,并在每个迭代中运行。在层内,用户可以自由地进行任何操作,从读取套接字、使用vulkan进行渲染,或调度ECS工作负载。
由于分层设计,几个高级概念可以协同工作而不会相互干扰,同时可以根据不同的配置插入。
层可以被视为高级容器中的插件。
层的存在允许从其他Crate导入行为,而不必担心实现细节。
层间通信
应用程序公开了两种层可以相互影响的方式。
world
包含了所有实体和组件的ECS世界。resources
是通过句柄访问的 typed 存储空间。这对于存储要在层之间和层内共享的纹理、模型或单例很有用,并且可以进行动态借用检查。events
促进了一个广播通道,可以发送和监听事件。每个层都可以设置一个接收器并迭代特定类型的事件。这最好用于低频数据,以避免繁忙检查,如用户输入、状态更改等。
请参阅[core::Layer
]的文档
依赖关系
~20MB
~456K SLoC