godot_boids/README.md

31 lines
1.1 KiB
Markdown
Raw Normal View History

2024-08-30 18:19:26 +03:00
# boids
2024-08-19 16:53:54 +03:00
2024-08-30 18:33:58 +03:00
addon for Godot that adds 2D / 3D boids (flocking).
2024-08-19 16:53:54 +03:00
![boids](./resources/boids.gif)
2024-08-30 21:05:08 +03:00
it can handle about 2000 boids in a single flock at 11ms physics process tick on my PC (Ryzen 5600).
(keep in mind this is without any partitioning of sorts, so it's bound to get better)
2024-08-30 18:33:58 +03:00
## usage
2024-08-19 16:53:54 +03:00
2024-08-30 18:33:58 +03:00
clone the repository and copy over the `addons` folder into your project root.
check the examples for more info.
2024-08-19 16:53:54 +03:00
2024-08-30 18:33:58 +03:00
## development
it's just a standard rust project under `rust`, so make sure you have the latest stable rust toolchain installed.
also don't forget to have godot installed and available in your `PATH` (the extension currently targets 4.3).
- **cargo features**
- enable `stats` feature to let the extension log into godot console some times for how its processing the boids.
## todo
2024-08-19 16:53:54 +03:00
2024-08-30 18:19:26 +03:00
- [ ] memoize calculated distances
- [ ] implement avoidance (point avoidance, edge avoidance)
- [ ] implement nodes for these (for 2d, point and a rect node and 3d point and a cube node, circle / sphere too)
- [ ] implement partitioning (quadtree/octree)
2024-08-30 18:33:58 +03:00
- [ ] do we just use `spatialtree` crate?
2024-08-30 18:19:26 +03:00
- [ ] write better usage documentation