WIP - Juicing
1 / 4
DESCRIPTION

Hey all! I wanted to release a new dev build before the end of this month, but looks like it's gonna take another week or so for that to happen. In the meantime, let me share the progress I've made and an unforeseen challenge that made this a lot trickier than I thought.

I made some great progress on blueberry growth and the juicing machine. You can control how far the juicer squishes and even rotate or raise it to squish the character in different ways. But then I realized there was a problem. The blueberry growth worked fine when the character is stuck in one place, but when rolling around in the wider world, a big issue cropped up.

To preface, the softbody physics system does not support growing or shrinking a softbody. To get around this, I've been using a really sneaky hack. Instead of scaling the softbody, I scale the entire physics simulation, which is represented by an invisible object called the solver. The softbody lives inside the solver, which allows the solver to "solve" all the physics calculations needed to run the softbody. This mostly works, but it starts to break down if the softbody moves away from the solver.

You can see the issue here. If the softbody is far away from the solver, scaling the solver also pushes and pulls the softbody relative to their distance from each other. The farther away from the solver, the more the softbody gets pushed and pulled. To fix this, I detect if the softbody has moved away from the solver. Then I decouple the softbody from the solver, reposition the solver to the softbody's center, then recouple them. This results in a small twitch with the softbody (which you may have noticed from time to time) but it's typically hard to see because it happens so quick.This has worked fine so far because the character only ever grows in short spurts when swallowing food or gulping from the tube. If the character is growing constantly while rolling around the map, (like with blueberry growth) the decoupling/recoupling has to happen almost constantly, which causes a lot of twitching.

But what if I moved the solver while it's being scaled to compensate for this push and pull effect? It took a while to get the math right, but in the end, it worked. Now I can scale the character fluidly regardless of distance from the solver, because the solver moves to compensate for any offset.

This is working great, but now I have to rework a lot of old code to use this improved scaling method. I still have a few more features to implement as well, including a slider for growth speed, options to enable/disable popping and custom colors for the juice and blueberry skin. Thanks for your patience while I figure these things out and I'll see you again soon!

blobygon PATREON 1k favs
VIEWS1
FILES4 files
POSTEDJun 27, 2025
ARCHIVEDJun 10, 2026