I really liked this concept - we did a similar Boomerang mechanic in our game for the game jam! I wanted to know how you managed to create the ink area when the Pen intersects itself - we created a similar effect by creating a polygon2D and then checking the area, but how did you create the ink shader over this polygon2D? I've realised this is far more complex than I thought it would be :)
Hey! Yeah, it was tricky. For the outline I used a Line2D with the same shader as I was using for the rest of the line, which included some world-coordinate-based noise.
For filling the polygon, I had to generate the UV coordinates in addition to the positional coordinates for the Polygon2D (which involved determining the max and min x and y positions and then dividing each coordinate by that and multiplying by the texture dimensions, fun stuff). Then, I applied a shader to the texture to get the fill-in effect, which was based on the UV distance from (0.5, 0.5) combined with some world-coordinate-based cellular noise, plus a variable I passed into the shader so I could animate the circle closing.
The effect where the whole area bounces and shrinks uses the Geometry2D offset_polygon function. Geometry2D has a lot of useful utility functions for working with polygons.
You're amazing man, thanks so much for responding to my question! Yeh definitely as complicated (probably even more) as I thought haha, but this is more than enough for me to start tinkering with it on my side. You've also introduced me to some neat things in the Geometry2D class, thank you so much for the help!