Verlet integration for GMS2.3+
A downloadable asset pack for Windows
------------------ About ------------------
Verlet integration for Gamemaker: Studio 2.3+ by Sarek Lambert
------------------ Features ------------------
- Set up simulations in less then 5 lines of code!
- Create verlet systems with different physics settings
- Choose one of the verlet group templates or create your own
- Functions for creating textured ropes, textured boxes and textured cloth simulations
- Attach a vertex to an object
- Attach an object to a vertex
- Force fields
- Wireframe mode
- Vertex weights
- Rip apart structures
------------------ Credits ------------------
You can use it for free if you credit me like this:
"Verlet integration by Sarek Lambert. https://twitter.com/Fluffi404"
Download
Click download now to get access to the following files:



Comments
Log in with itch.io to leave a comment.
Great plugin! Is there any way to stop the textured rope from stretching the image (instead just spacing out the individual sprites)? I was trying to use a rope in the style of the example chain, but with the two objects moving quite far from each other, the texture can get very stretched. I've done some looking around in the functions and it seems like it could be quite a difficult change. Either way, great work!
Thank you! I think I added an option to change the 'stiffness' of the verlet system so it doesn't stretch so much. You should be able to manipulate it either in the rope function or the function which sets up the verlet system. But do note that increasing the stiffness draws a lot of performance, as this basically multiplies how many times per frame the whole physics simulation gets updated.
Thanks for the quick response! I did mess around with stiffness, but I realized I was straying to far from the intended purpose of verlets. So instead I just break the verlet chain and replace it with a line renderer in some edge cases lol
Whatever works :D Glad you found a workaround!
Works great, great work. One question, is there any way to adjust the depth?
Thank you :) The verlet system is drawn using the VerletSystem() struct's Draw() function. The depth would be equal to the object which calls the Draw() function. By changing either that object's layer, or where you call the Draw() function (depending on your case), you can control the depth at which it is drawn. There is however no functionality to sort different verlet groups within the same verlet system after they are created. Groups within a system will be drawn in the order in which you added them with the VerletGroupCreateRope() or other functions. If you need to change them dynamically, you could either create multiple verlet systems, or write a new function inside the VerletSystem() constructor, which rearanges the "verletGroups" ds_list. Hope this helps!
Thank you for the quick and detailed answer! It works perfectly now. I didn't even think of that :D