一款完全无锁的游戏引擎,使用 C++20 编写
Peredvizhnikov 引擎是一款完全无锁的游戏引擎,使用 C++20 编写。它在语言的协程原语基础上实现了并发计算的 * 行为者模型*。通过 * 行为者模型* 的抽象,可以开发复杂的并行逻辑,而完全不需要关注线程同步的细节。该模型的完全无锁实现带来了许多优势,即即使在任意线程终止的情况下也能保证进度,免受死锁影响,在响应关键事件时延可预测,以及容错性。
事实上,Peredvizhnikov 引擎的容错能力非常强大,即使其中一个工作线程被异步杀死,引擎也会保证继续运行。您可以 亲自验证。
实现基于锁自由编程中经典和新颖的思想的混合。它包括 软件事务性内存的新颖实现、 一种新型的锁自由队列、 原创的锁自由序列化原语、 锁自由的 std::atomic_shared_ptr、 锁自由的调度器、 锁自由的内存分配器、 编译时 DAG 以及更多内容!
如果想详细了解实现引擎的所有无锁算法、设计的理由、基准测试等,请参阅随附的文档:Peredvizhnikov Engine: Design and Implementation of a Completely Lock-Free Scheduler。为了进一步促进基于数据导向设计的开发,Peredvizhnikov Engine 实现了一个内存数据库,该数据库针对按组件方式访问进行了优化,并支持大型数据集。它基于性能良好的 平面哈希映射 和 带位图的位运算树 数据结构。
目前,唯一支持的平台是 Linux。需要使用 Clang++ 16 来构建源代码。
暂无开放 Issues,或尚未同步最近议题。