11个版本 (破坏性)

0.9.1 2022年1月11日
0.9.0 2021年7月18日
0.8.1 2020年11月28日
0.6.0 2020年7月10日

#770 in 游戏开发

每月34次下载

MIT许可

98KB
1.5K SLoC

semeion

一个2D环境模拟器,允许您定义实体的行为和形状,同时处理事件生成。

docs.rs crates.io License: MIT

概述

为了了解您可以做什么,以及如何使用此库实现,最好的开始方式是阅读介绍性博客文章,或查看此项目附带的一些示例。这些示例旨在展示semeion功能集的子集,并给出如何充分利用它的示例。如果您想查看一个更完整的项目,该项目使用semeion作为其实体引擎,请查看formicarium

注意:如果您想克隆此存储库而不下载.gif资源,可以使用以下命令

git clone --single-branch https://github.com/gliderkite/semeion.git

可选功能

默认情况下,semeion使用一个环境引擎,它将所有实体回调调度在同一个单线程上,因此不需要同步(不需要将任何用户实现的Entity发送或共享在线程之间)。

然而,可能存在一些场景,您正在运行一个包括大量实体 并且 每个实体任务(用于进行下一代的处理)都相当消耗资源的模拟。对于这些情况,通过启动多个线程并并行运行模拟,可以显著提高效率(在做出最终决定之前始终建议对代码进行性能分析)。

目前,您只能在编译时通过在您的Cargo.toml中指定可选功能parallel来启用此(非附加)功能。

semeion = { version = "0.9", features = ["parallel"] }

唯一要求是所有实体都需要是SendSync

示例

  • Langton's Ant

    cargo run --release --example langton
    
  • 生命游戏

    cargo run --release --example life
    
  • 规则

    cargo run --release --example rule -- 161
    
  • Wireworld

    cargo run --release --example wireworld
    
  • Mandelbrot

    cargo run --release --example mandelbrot --features parallel
    
  • 相机

    cargo run --release --example camera
    

依赖项

~0–265KB