8个版本
0.2.5 | 2024年7月8日 |
---|---|
0.2.4 | 2024年7月8日 |
0.1.0 | 2024年3月2日 |
0.0.1 | 2023年8月12日 |
676 在 游戏开发
每月205次下载
125KB
2.5K SLoC
bevy_sparse_tilemap
一个针对Bevy游戏引擎的瓦片地图Crate,专注于大型地图大小和ECS稀疏地图
特性
ECS稀疏瓦片地图
bevy_sparse_tilemap
仅生成必要的最少实体,并不将瓦片与实体一对一映射。这允许它避开当前与渲染相关的Bevy性能问题,并解锁对额外大型地图的显著更高的基线性能。
bevy_sparse_tilemap
中的瓦片在每个块上使用自定义存储。当您真的需要保存额外的信息或需要访问ECS以获取特定瓦片类型时,bevy_sparse_tilemap
支持随意生成映射到特定瓦片的实体。
bevy_sparse_tilemap
内置API来处理生成、销毁和访问瓦片可选实体以及瓦片数据。内部支持稀疏和密集内部存储。两者都是ECS稀疏(生成的实体数量最少),但稀疏地图不需要用户为每个瓦片提供数据。
多种地图类型
bevy_sparse_tilemap
使用基于泛型特质的系统支持不同的地图类型,这提供了极大的灵活性,以支持许多不同的地图类型。当前支持
- 六边形
- 正方形
巨型地图大小
由于Crate的ECS稀疏性质,
bevy_sparse_tilemap
避开了与渲染性能问题相关的Bevy当前的限制。这些限制是其他瓦片地图Crate遇到并阻碍其性能的原因。这使得bevy_sparse_tilemap
在基线性能方面表现出色,允许使用类似 bevy_fast_tilemap 的智能渲染轻松处理高达15k x 15k的地图。
仅瓦片地图逻辑
此Crate专注于瓦片地图逻辑,并将渲染留给用户。
示例
有关如何使用 bevy_sparse_tilemap
以及简短示例的文档,请参阅 Docs.rs。
有关Crate每个功能的更长时间示例,请参阅 Github示例。
关于 bevy_ecs_tilemap
呢?
bevy_ecs_tilemap
是一个极好的Crate,可能将满足您的所有需求,您应首先考虑使用它。
如果您需要使用,请使用 bevy_ecs_tilemap
- 您不需要非常大的地图(在我的测试中,
bevy_ecs_tilemap
在200x200左右遇到性能问题) - 您希望每个瓦片都是一个独立的实体,以便进行ECS集成(此crate试图避免不必要的实体,并使用类似Voxel的方法)
- 您希望有一个更成熟且功能更丰富的插件
- 您希望瓦片地图渲染由您处理
如果您需要使用,请使用 bevy_sparse_tilemap
- 您需要非常非常大的地图,与
bevy_ecs_tilemap
相比,bevy_sparse_tilemap
可以达到更大得多的地图尺寸。(bevy_fast_tilemap_example当前生成一个15000x15000的瓦片地图,运行在约900 fps) - 您愿意自己实现瓦片地图渲染(此crate提供了一个与
bevy_fast_tilemap
集成的示例,但该功能目前不是此crate的原生支持功能)
Bevy 版本
BST 版本 | Bevy 版本 |
---|---|
0.3 | 0.14 |
0.2 | 0.13 |
0.1 | 0.13 |
依赖项
~24–63MB
~1M SLoC