This is a webassembly plugin that is getting a bit of colludium flavor in the ACEs: it'll have more features than the standard physics plugin and will also give you more control over particles than the standard LFJS files on github. Learning to use Emscripten with box2d was fun, sort of...!
Here's an example of where I'm at so far (i5 laptop & intel HD4000).
I'll update this list as more features are completed:
- Variable or fixed timestep. Select the world step rate to be not in sync with the monitor. Thus high refresh rate monitors don't cause massive cpu use. I recommend using 50 Hz (like Unity) but there are other choices available. Solid objects move the same at all fixed timestep rates, but particle systems behave differently at the different update speeds (just for info).
- World Step Trigger. All forces and impulses should be applied under a World-Step trigger condition because they accumulate. This happens in normal Physics but is more likely here. For example, if you select a world steprate of 30 Hz and have a 60 Hz monitor, then each event sheet will try to apply impulses twice before the world steps.
- AABB particle selection, or selection using the UID of the particle display sprite.
- For particles: apply force or apply impulse.
- Collisions. No particle-particle or particle-fixture collisions for now. More testing required: the perf overhead might not be worth it (you can do AABB or particle sprite overlap checks).
- The usual physics ACEs.
- Create particles in a polygon, box or circle shape. Also create them using the collision polygon of any sprite, at the sprite's position.
- Create multiple instances of shapes as part of the same particle group.
- Might not fully support game-save. Saving a particle system may be impossible (but I have one idea to try before it's definitely off the list).
- More to follow.