No, no, this is not going far, I would need help to fix that. I use Godot Engine and use the default language gdscript.
In relation to the semicircles problem, I use a rigidbody and the default physics system and have code to push the rigidbody closer to the mouse. all the movable blocks have the same movement code, but the semicircles are free to rotate. if i had all blocks free to rotate it might have the same issue.