Evolution of module: now its time to link boids with a shader reading animate baked into textures. There is still quite a lot of work to have correct speeds and contact with ground...
videolog: polymorph.cool/wp-content/uplo


it's starting to become interesting in module: after hours of debugging of memory management, it's possible to explain to yellow cubes to follow spheres, and to spheres to avoid yellow cubes.
To have something smooth, there is a lot to params to adapt: inertia (affects acceleration), steer (affects rotation) and so on
video devlog: polymorph.cool/wp-content/uplo

Evolution of module in : i finally managed to master the memory creation in a consistent way => no more hard crashes (double free, malloc_consolidate & other funny stuff). Result: i'm now able to construct complex reaction of boids, with modification of plenty of parameters depending on the environment

just finished a serialisation of behaviours: [{"class":"test" , "active"1, "after":0, "attr":0, "eval":0, "event":0, "jumpto":1, "param_bool":0, "repeat":1,,...
It's possible to copy/paste the object + generate + edit it manually, I think it's a cool feature, even if documentation is necessary...


The integration of new objects in is quite tricky: there is no documentation of the editor classes and process (why & when "_node_removed" is called for example), so integration is a lot of trial & errors + searching in full text in sources. It's time consuming, but i start to have a better idea of how things works. Today i turned behaviours from spatial nodes to resources, and here is the result.

Working on a naming convention to quickly read the logic of the behaviour. This behaviour describes a boid randomly linked to 1 of 2 targets, afraid of anything in group 11 & 12. If in neghborhoud of group 11&12, a timer is set to 5 seconds, boid accelerates and runs. When timer stops, the speed is reset to default (5)
If you have advices on pseudocode langages that would make this "better" or easier read, please comment!

behaviour editor on its way!
@crickxson ce dont je te parlais l'autre jour: l'organisation de panneaux de contrôle, un gros kif :)

in module, i'd like to be able to define the way agents reacts. To do so, i defined a test/action chain (a behaviour)
the test editor is almost done, i think that previewing the actual code executed is useful for developers :)

is just marvellous: to develop the boid's behaviour, i have to design a new panel with a custom creation logic (using a tree is overkill). To preview and organise the , i just opened a new scene, built a mockup and place it above the editor. And voilà! Compared to QTdesigner and other UI tools, it fast and super simple to style.


a good-level nightmare in module: make several particle system interact together
lots to be done till the end of this month, but i'm happy that performances are not so bad


update on module for : you can use a "layer" system to group them with attractors, colliders and targets -> if not in the same group, boids do not floow each other, don't "see" colliders, etc.
in video, there are 3 groups: red, green & cyan
the big shaking dots are the barycenter of each group


a bit of tech p*rn to finish the day: code is getting more and more ready to perform intensive setup
scene #1: pushing everybody in a tube
**meaning of labels in top left corner**:
- frame per seconds
- time to solve the frame (CPU side)
- number of collisions to solve in current frame
- active boids count


optimisation of collisions is on its way in module: the domain is now able to locate the cells occupied by colliders, attractors and targets (all objects that require collision tests). The "holes" (red dots) visible in the first image are easily fixed by adjusting subdivision param for each collider.
Next step is to link this step into the linear processing of boids

just finished a demo of boids with all major modifiers showcased: sources, targets & ... colliders!!! it's not yet the level of performance i'm aiming at, but the drop in fps is due to shadow processing, not to my code (ouf!)


eventually! i have a decent algorithm to register a box in a grid: starting at the first point, a serie of positions are generated in the box depending on the size of the box and size of cells
No more 3d collisions, just a simple value to adjust (subdivision) to increase the quality (and increase the cpu load...) - this step is finished! yiipiiieeeee

OMG! the new version of will rock! We have tested this example today at (github.com/Calinou/godot-refle). V4, the master branch of godot repository, is sure not ready for production, but the evolution of the render quality is already mesmerizing.
(there are jpeg compression glitches, see hd here: polymorph.cool/2021/02/20/volu)

Show more

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!