实验和进行工作的C ++ 14多线程编译时实体 - 组件系统仅库库。
成功开发复杂的实时应用程序和游戏需要灵活,高效的实体管理系统。随着项目变得更加复杂,至关重要的是找到一种优雅的构成对象的方法,以防止代码重复,改善模块化并打开强大的优化可能性。
实体 - 组件系统架构模式旨在通过将数据与逻辑分开,以实现上述优势。
实体可以由小型,可重复使用和通用组件组成。
组件可以存储在连续的存储区域中,从而改善数据位置和缓存友好性。
应用逻辑可以轻松并行化并从对象本身及其存储策略中抽象。
该应用程序的状态可以在网络上序列化和共享,并以更少的精力进行。
更模块化,通用和易于测试的代码库。
“ ECST”是我的BCS毕业项目开发的。
建立说明
代码样本
执照
伴随论文
幻灯片
实体:由亚当·马丁(Adam Martin)定义为系统的“基本概念构建块”,该系统代表具体应用程序对象。他们没有特定应用程序的数据或逻辑。
组件:小型,可重复使用的类型组成实体。同样,援引亚当·马丁(Adam Martin )(参见论文)的援引组件类型“将实体标记为拥有特定方面”。组件存储数据,但不包含任何逻辑。
系统:具有特定组件类型的实体实施逻辑提供者。
外部并行性: ECST中使用的术语,该术语定义了运行多个不依赖对方并联的多个系统的概念。其实施细节将在第10章中进行分析(请参阅论文) 。从概念上讲,由于系统依赖性的了解,在编译时创建了隐式定向的无环图。隐式DAG的执行由设置定义期间指定的系统调度程序类型处理。
内部并行性:其他在同时运行单独的系统的,ECST支持将单个系统拆分为多个子任务,这些系统可以在单独的线程上执行。许多系统,例如代表功能纯粹的组合的系统,不包含修改其自己状态或定义订阅实体之间相互作用的副作用:这些是“令人尴尬的并行”计算的主要示例。
“我在哪里可以找到API的文档?”
“我们可以有默认构造的组件吗?”
“我正在尝试从组件中读/写入/写信,但是我遇到了汇编错误。发生了什么? ”
“在不在系统过程功能的情况下,是否可以迭代附带的组件?”
“如何控制我的系统是并行运行还是单个线程? ”
“使我的系统单线读取与禁用内部副词有什么区别?”