2 releases
0.0.2 | Jan 3, 2024 |
---|---|
0.0.1 | Dec 30, 2023 |
#1286 in Game dev
31KB
575 lines
A Petri net plugin for Bevy Engine. 🍾
About
petnat
equips you with Petri nets to use in your Bevy projects.
It's a powerful way to model states, processes, resources, and more.
This is a very experimental project, and I mostly started it because I wanted to play with Petri nets and improve my Rust. I am not sure about the possible usefulness of this plugin, but I hope to discover how I can improve it with time and usage.
Rough idea
- Build a model using places and transitions.
- Define a
PetriNet<NetId>
resource. - Add a
Token<NetId>
component to an entity. - Mark some (probably initial) places with the
Token
according to the model. - Fire transitions when it makes sense according to the model.
- Implement game logic based on the current marking of the
Token
.
Examples
Check out this example demonstrating a simple Petri net in action, as well as the tests here for more Petri net instances.
Dependencies
~11MB
~192K SLoC