Flecs 发布 3.2 版本,轻量级实体组件系统

Flecs 是用于 C 和 C++ 的实体组件系统,有助于构建游戏等模拟场景。

Flecs 现已发布 3.2 版本,此版本具有多项新的功能,下面介绍其中部分功能:

发布亮点

关系性平铺 Relationship flattening

Flecs 3.2 扩展了实体关系可以与关系扁平化一起使用的用例!此功能将具有不同父级的实体存储在同一个表中,可以显着减少内存碎片。现有系统无需更新即可支持关系扁平化,广度优先排序和关系遍历等功能仍然有效!展平表中的实体仍然可以以完全支持(自动)矢量化的 CPU 缓存友好方式进行迭代。

这是一个实验性功能,将来会有很多改进。

flattening 后,这个场景的桌子数从46000张减少到960张。

新的图形查询引擎

 Flecs 3.2 包含一个完全从头开始编写的新规则引擎,比以前的引擎快 4 个数量级!新引擎获得许多改进,例如改进的运行时、用于图形遍历的记忆缓存、更好地利用新数据结构以及改进查询计划的生成。

 

Assemblies - 程序集

程序集是一项新功能,可以创建程序资产。程序集是 Flecs 脚本的一个片段,在执行时会根据多个输入参数生成实体和组件。程序集可以轻松组合成更大、更复杂的资产。

在新的交互式 Flecs Script 教程中学习如何编写程序集。

 

Opaque types - 不透明类型

Flecs 反射框架得到了扩展,能够序列化和反序列化不透明类型!不透明类型是一种布局不为反射框架所知的类型。这带来的一大好处是现在可以使用反射框架完全序列化和反序列化具有 STL 类型(例如 std::string  std::vector )的组件!

 

World serialization

反射框架的另一项改进:现在可以从 JSON 序列化和反序列化整个 ECS 世界!这是一个非常受欢迎的功能,可以更轻松地保存和加载游戏状态。

 

Fuzzy Name Matching - 模糊名称匹配

新的规则引擎引入了对(模糊)实体名称匹配的支持!

 

核心性能改进

3.1.4 版本是 Flecs 自 v2.0 以来最大的性能改进之一。几乎所有 ECS 操作的速度都提高了两位数。

 

资源管理器中的 3D 画布

资源管理器有许多改进,其中包括一个新的 3D 画布小部件!这个小部件显示了 emscripten 画布的内容,而 REST API 的改进使资源管理器可以直接与 Web 应用程序通信!

这意味着现在可以编辑组件、更改 Flecs 脚本并实时查看结果,而无需编写任何 C/C++ 代码。

 

Flecs-hub 更新

flecs-hub 中的模块进行了一系列更新,从在 flecs-game 中添加时间系统和网格布局,到在 flecs-systems-sokol 中支持阴影、大气渲染、改进的光晕和着色器文件。 flecs-hub 的目标是提供常见游戏系统的示例实现,并探索如何在现实生活中使用新的 ECS 功能。

 

更新公告:https://ajmmertens.medium.com/flecs-3-2-is-out-8feb44d37e3

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/234704/flecs-3-2-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。