9 ms·
Some years ago i experimented with using springs for game physics[0] but while it looked nice with a single dynamic object against a static environment, collisi
by badsectoracula 4y ago
Some years ago i experimented with using springs for game physics[0] but while it looked nice with a single dynamic object against a static environment, collisions between dynamic objects quickly fell apart - objects intersected each other in weird ways and something as simple as stacking two boxes with imperfect placement (like a player would do, not the perfect stacking shown in the GIFs in the linked page) wasn't possible.
I did consider using convex volumes for the collision mesh and making checks against the spring ends (point-in-convex is trivial to check) but then i realized that in 3D space convex objects can collide even if both have their vertices outside of each other (consider two cubes that are not aligned to each other having two of their edges touch with one edge being almost perpendicular to the other). The code was already getting too hairy and at that point might as well drop the whole spring idea and do full convex shape collisions with rotation (big can of worms).
Though truth be told, the simplicity of using just springs and spheres is alluring and the issues might be solvable with a large number of spheres (IIRC Nvidia at some point years ago had a physics engine running on GPU where they modeled everything using small spheres). It does help avoid a bunch of stupid bugs that you can easily get with trying to do angular physics [1] :-P
[0] https://www.youtube.com/watch?v=_dnveLj96xQ https://www.youtube.com/watch?v=_dnveLj96xQ
[1] https://i.imgur.com/UVS4TYv.gif https://i.imgur.com/UVS4TYv.gif